<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://wiki.bsdhowto.ru/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Igor</id>
	<title>BSD Howto - Вклад [ru]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.bsdhowto.ru/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Igor"/>
	<link rel="alternate" type="text/html" href="https://wiki.bsdhowto.ru/index.php?title=%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/Igor"/>
	<updated>2026-04-17T15:46:22Z</updated>
	<subtitle>Вклад</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://wiki.bsdhowto.ru/index.php?title=FreeBSD_Update&amp;diff=267</id>
		<title>FreeBSD Update</title>
		<link rel="alternate" type="text/html" href="https://wiki.bsdhowto.ru/index.php?title=FreeBSD_Update&amp;diff=267"/>
		<updated>2025-12-16T18:08:15Z</updated>

		<summary type="html">&lt;p&gt;Igor: /* Обновление FreeBSD с версии 14.3-RELEASE до версии 15-RELEASE */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Подготовка к установке обновлений безопасности FreeBSD ==&lt;br /&gt;
&lt;br /&gt;
Проверка текущей версии ОС:&lt;br /&gt;
&lt;br /&gt;
 # freebsd-version -ku&lt;br /&gt;
 14.2-RELEASE&lt;br /&gt;
 14.2-RELEASE&lt;br /&gt;
&lt;br /&gt;
Перед скачиванием и установкой обновлений безопасности FreeBSD следует сделать резервную копию файлов конфигурации ОС.&lt;br /&gt;
&lt;br /&gt;
 # cp -Rp /etc /etc.backup&lt;br /&gt;
&lt;br /&gt;
== Скачивание и установка бинарных обновлений безопасности FreeBSD с последующей перезагрузкой ==&lt;br /&gt;
&lt;br /&gt;
Скачивание бинарных обновлений ОС:&lt;br /&gt;
 # freebsd-update fetch&lt;br /&gt;
&lt;br /&gt;
Установка бинарных обновлений ОС: ==&lt;br /&gt;
 # freebsd-update install&lt;br /&gt;
 src component not installed, skipped&lt;br /&gt;
 Creating snapshot of existing boot environment... done.&lt;br /&gt;
 Installing updates...&lt;br /&gt;
 Restarting sshd after upgrade&lt;br /&gt;
 Performing sanity check on sshd configuration.&lt;br /&gt;
 Stopping sshd.&lt;br /&gt;
 Performing sanity check on sshd configuration.&lt;br /&gt;
 Starting sshd.&lt;br /&gt;
 Scanning /usr/share/certs/untrusted for certificates...&lt;br /&gt;
 Scanning /usr/share/certs/trusted for certificates...&lt;br /&gt;
  done.&lt;br /&gt;
&lt;br /&gt;
Перезагрузка FreeBSD после установки бинарных обновлений безопасности ОС:&lt;br /&gt;
 # reboot&lt;br /&gt;
&lt;br /&gt;
== Проверка установленной версии FreeBSD ==&lt;br /&gt;
&lt;br /&gt;
 # freebsd-version -ku&lt;br /&gt;
 14.2-RELEASE-p1&lt;br /&gt;
 14.2-RELEASE-p7&lt;br /&gt;
&lt;br /&gt;
Сравнение списков предыдущих и обновлённых файлов конфигурации после обновления ОС:&lt;br /&gt;
 # diff -rq /etc /etc.backup&lt;br /&gt;
 Only in /etc.backup/ssl/certs: 08063a00.0&lt;br /&gt;
 Only in /etc.backup/ssl/certs: 18856ac4.0&lt;br /&gt;
 Only in /etc.backup/ssl/certs: 57bcb2da.0&lt;br /&gt;
 Only in /etc.backup/ssl/certs: 5e98733a.0&lt;br /&gt;
 Only in /etc/ssl/certs: 616816f6.0&lt;br /&gt;
 Only in /etc/ssl/certs: 6a9bdba3.0&lt;br /&gt;
 Only in /etc/ssl/certs: 878d9bca.0&lt;br /&gt;
 Only in /etc/ssl/certs: a09a51ae.0&lt;br /&gt;
 Only in /etc/ssl/certs: b8d25de6.0&lt;br /&gt;
 Only in /etc/ssl/certs: ba8887ce.0&lt;br /&gt;
 Only in /etc/ssl/certs: ffdd40f9.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 03179a64.0&lt;br /&gt;
 Only in /etc/ssl/untrusted: 08063a00.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 080911ac.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 157753a5.0&lt;br /&gt;
 Only in /etc/ssl/untrusted: 18856ac4.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 2c543cd1.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 2e5ac55d.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 3e45d192.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 4a6481c9.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 5273a94c.0&lt;br /&gt;
 Only in /etc/ssl/untrusted: 57bcb2da.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 5c44d531.0&lt;br /&gt;
 Only in /etc/ssl/untrusted: 5e98733a.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 76cb8f92.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 861a399d.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 9c2e7d30.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: d853d49e.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: f3377b1b.0&lt;br /&gt;
&lt;br /&gt;
С 01 октября 2025 года срок поддержки FreeBSD 14.2-RELEASE истёк. И проблемы безопасности, обнаруженные после этой даты, исправляться не будут.&lt;br /&gt;
&lt;br /&gt;
 # freebsd-update fetch&lt;br /&gt;
 src component not installed, skipped&lt;br /&gt;
 Looking up update.FreeBSD.org mirrors... 3 mirrors found.&lt;br /&gt;
 Fetching metadata signature for 14.2-RELEASE from update1.freebsd.org... done.&lt;br /&gt;
 Fetching metadata index... done.&lt;br /&gt;
 Inspecting system... done.&lt;br /&gt;
 Preparing to download files... done.&lt;br /&gt;
 &lt;br /&gt;
 No updates needed to update system to 14.2-RELEASE-p7.&lt;br /&gt;
 &lt;br /&gt;
 WARNING: FreeBSD 14.2-RELEASE HAS PASSED ITS END-OF-LIFE DATE.&lt;br /&gt;
 Any security issues discovered after Wed Oct  1 03:00:00 MSK 2025&lt;br /&gt;
 will not have been corrected.&lt;br /&gt;
&lt;br /&gt;
Вывод команды сообщает об этом. Потребуется повышение версии ОС.&lt;br /&gt;
&lt;br /&gt;
== Обновление FreeBSD с версии 14.2-RELEASE до 14.3-RELEASE ==&lt;br /&gt;
&lt;br /&gt;
Повышение младшей версии ОС:&lt;br /&gt;
&lt;br /&gt;
 # freebsd-update upgrade -r 14.3-RELEASE&lt;br /&gt;
 src component not installed, skipped&lt;br /&gt;
 Looking up update.FreeBSD.org mirrors... 3 mirrors found.&lt;br /&gt;
 Fetching metadata signature for 14.2-RELEASE from update1.freebsd.org... done.&lt;br /&gt;
 Fetching metadata index... done.&lt;br /&gt;
 Fetching 1 metadata files... done.&lt;br /&gt;
 Inspecting system... done.&lt;br /&gt;
 &lt;br /&gt;
 The following components of FreeBSD seem to be installed:&lt;br /&gt;
 kernel/generic kernel/generic-dbg world/base world/lib32&lt;br /&gt;
 &lt;br /&gt;
 The following components of FreeBSD do not seem to be installed:&lt;br /&gt;
 world/base-dbg world/lib32-dbg&lt;br /&gt;
 &lt;br /&gt;
 Does this look reasonable (y/n)?&lt;br /&gt;
&lt;br /&gt;
Вывод команды спросит согласие на установку компонентов ОС.&lt;br /&gt;
 To install the downloaded upgrades, run &#039;freebsd-update [options] install&#039;.&lt;br /&gt;
&lt;br /&gt;
Вывод команды предложит сделать продолжение обновления ОС:&lt;br /&gt;
 # freebsd-update install&lt;br /&gt;
 src component not installed, skipped&lt;br /&gt;
 Creating snapshot of existing boot environment... done.&lt;br /&gt;
 Installing updates...&lt;br /&gt;
 Kernel updates have been installed.  Please reboot and run&lt;br /&gt;
 &#039;freebsd-update [options] install&#039; again to finish installing updates.&lt;br /&gt;
&lt;br /&gt;
Вывод команды предложит сделать перезагрузку ОС и продолжить обновление ОС:&lt;br /&gt;
 # reboot&lt;br /&gt;
&lt;br /&gt;
 # freebsd-update install&lt;br /&gt;
&lt;br /&gt;
Сравнение списков предыдущих и обновлённых файлов конфигурации после повышения версии ОС:&lt;br /&gt;
 # diff -rq /etc /etc.backup&lt;br /&gt;
 Files /etc/autofs/special_media and /etc.backup/autofs/special_media differ&lt;br /&gt;
 Files /etc/defaults/periodic.conf and /etc.backup/defaults/periodic.conf differ&lt;br /&gt;
 Files /etc/defaults/rc.conf and /etc.backup/defaults/rc.conf differ&lt;br /&gt;
 Files /etc/devd/iwmbtfw.conf and /etc.backup/devd/iwmbtfw.conf differ&lt;br /&gt;
 Only in /etc/devd: rtlbtfw.conf&lt;br /&gt;
 Files /etc/mtree/BSD.debug.dist and /etc.backup/mtree/BSD.debug.dist differ&lt;br /&gt;
 Files /etc/mtree/BSD.include.dist and /etc.backup/mtree/BSD.include.dist differ&lt;br /&gt;
 Files /etc/mtree/BSD.tests.dist and /etc.backup/mtree/BSD.tests.dist differ&lt;br /&gt;
 Files /etc/mtree/BSD.usr.dist and /etc.backup/mtree/BSD.usr.dist differ&lt;br /&gt;
 Files /etc/pkg/FreeBSD.conf and /etc.backup/pkg/FreeBSD.conf differ&lt;br /&gt;
 Files /etc/rc.d/iovctl and /etc.backup/rc.d/iovctl differ&lt;br /&gt;
 Files /etc/rc.d/ipfilter and /etc.backup/rc.d/ipfilter differ&lt;br /&gt;
 Files /etc/rc.d/kld and /etc.backup/rc.d/kld differ&lt;br /&gt;
 Files /etc/rc.d/sendmail and /etc.backup/rc.d/sendmail differ&lt;br /&gt;
 Files /etc/rc.d/var_run and /etc.backup/rc.d/var_run differ&lt;br /&gt;
 Files /etc/regdomain.xml and /etc.backup/regdomain.xml differ&lt;br /&gt;
 Files /etc/services and /etc.backup/services differ&lt;br /&gt;
 Files /etc/ssh/moduli and /etc.backup/ssh/moduli differ&lt;br /&gt;
 Files /etc/ssh/sshd_config and /etc.backup/ssh/sshd_config differ&lt;br /&gt;
&lt;br /&gt;
Все файлы конфигурации ОС, которые не редактировались вручную, обновлены автоматически.&lt;br /&gt;
&lt;br /&gt;
== Обновление FreeBSD с версии 14.3-RELEASE до версии 15.0-RELEASE ==&lt;br /&gt;
&lt;br /&gt;
Повышение старшей версии ОС:&lt;br /&gt;
 # freebsd-update upgrade -r 15.0-RELEASE&lt;br /&gt;
 src component not installed, skipped&lt;br /&gt;
 Looking up update.FreeBSD.org mirrors... 3 mirrors found.&lt;br /&gt;
 Fetching metadata signature for 14.3-RELEASE from update1.freebsd.org... done.&lt;br /&gt;
 Fetching metadata index... done.&lt;br /&gt;
 Inspecting system... done.&lt;br /&gt;
 &lt;br /&gt;
 The following components of FreeBSD seem to be installed:&lt;br /&gt;
 kernel/generic world/base&lt;br /&gt;
 &lt;br /&gt;
 The following components of FreeBSD do not seem to be installed:&lt;br /&gt;
 kernel/generic-dbg world/base-dbg world/lib32 world/lib32-dbg&lt;br /&gt;
 &lt;br /&gt;
 Does this look reasonable (y/n)?&lt;br /&gt;
&lt;br /&gt;
 To install the downloaded upgrades, run &#039;freebsd-update [options] install&#039;.&lt;br /&gt;
&lt;br /&gt;
 # freebsd-update install&lt;br /&gt;
 src component not installed, skipped&lt;br /&gt;
 Creating snapshot of existing boot environment... done.&lt;br /&gt;
 Installing updates...&lt;br /&gt;
 Kernel updates have been installed.  Please reboot and run&lt;br /&gt;
 &#039;freebsd-update [options] install&#039; again to finish installing updates.&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://wiki.bsdhowto.ru/index.php?title=FreeBSD_Update&amp;diff=266</id>
		<title>FreeBSD Update</title>
		<link rel="alternate" type="text/html" href="https://wiki.bsdhowto.ru/index.php?title=FreeBSD_Update&amp;diff=266"/>
		<updated>2025-12-16T17:28:41Z</updated>

		<summary type="html">&lt;p&gt;Igor: /* Обновление FreeBSD с версии 14.3-RELEASE до версии 15-RELEASE */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Подготовка к установке обновлений безопасности FreeBSD ==&lt;br /&gt;
&lt;br /&gt;
Проверка текущей версии ОС:&lt;br /&gt;
&lt;br /&gt;
 # freebsd-version -ku&lt;br /&gt;
 14.2-RELEASE&lt;br /&gt;
 14.2-RELEASE&lt;br /&gt;
&lt;br /&gt;
Перед скачиванием и установкой обновлений безопасности FreeBSD следует сделать резервную копию файлов конфигурации ОС.&lt;br /&gt;
&lt;br /&gt;
 # cp -Rp /etc /etc.backup&lt;br /&gt;
&lt;br /&gt;
== Скачивание и установка бинарных обновлений безопасности FreeBSD с последующей перезагрузкой ==&lt;br /&gt;
&lt;br /&gt;
Скачивание бинарных обновлений ОС:&lt;br /&gt;
 # freebsd-update fetch&lt;br /&gt;
&lt;br /&gt;
Установка бинарных обновлений ОС: ==&lt;br /&gt;
 # freebsd-update install&lt;br /&gt;
 src component not installed, skipped&lt;br /&gt;
 Creating snapshot of existing boot environment... done.&lt;br /&gt;
 Installing updates...&lt;br /&gt;
 Restarting sshd after upgrade&lt;br /&gt;
 Performing sanity check on sshd configuration.&lt;br /&gt;
 Stopping sshd.&lt;br /&gt;
 Performing sanity check on sshd configuration.&lt;br /&gt;
 Starting sshd.&lt;br /&gt;
 Scanning /usr/share/certs/untrusted for certificates...&lt;br /&gt;
 Scanning /usr/share/certs/trusted for certificates...&lt;br /&gt;
  done.&lt;br /&gt;
&lt;br /&gt;
Перезагрузка FreeBSD после установки бинарных обновлений безопасности ОС:&lt;br /&gt;
 # reboot&lt;br /&gt;
&lt;br /&gt;
== Проверка установленной версии FreeBSD ==&lt;br /&gt;
&lt;br /&gt;
 # freebsd-version -ku&lt;br /&gt;
 14.2-RELEASE-p1&lt;br /&gt;
 14.2-RELEASE-p7&lt;br /&gt;
&lt;br /&gt;
Сравнение списков предыдущих и обновлённых файлов конфигурации после обновления ОС:&lt;br /&gt;
 # diff -rq /etc /etc.backup&lt;br /&gt;
 Only in /etc.backup/ssl/certs: 08063a00.0&lt;br /&gt;
 Only in /etc.backup/ssl/certs: 18856ac4.0&lt;br /&gt;
 Only in /etc.backup/ssl/certs: 57bcb2da.0&lt;br /&gt;
 Only in /etc.backup/ssl/certs: 5e98733a.0&lt;br /&gt;
 Only in /etc/ssl/certs: 616816f6.0&lt;br /&gt;
 Only in /etc/ssl/certs: 6a9bdba3.0&lt;br /&gt;
 Only in /etc/ssl/certs: 878d9bca.0&lt;br /&gt;
 Only in /etc/ssl/certs: a09a51ae.0&lt;br /&gt;
 Only in /etc/ssl/certs: b8d25de6.0&lt;br /&gt;
 Only in /etc/ssl/certs: ba8887ce.0&lt;br /&gt;
 Only in /etc/ssl/certs: ffdd40f9.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 03179a64.0&lt;br /&gt;
 Only in /etc/ssl/untrusted: 08063a00.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 080911ac.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 157753a5.0&lt;br /&gt;
 Only in /etc/ssl/untrusted: 18856ac4.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 2c543cd1.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 2e5ac55d.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 3e45d192.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 4a6481c9.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 5273a94c.0&lt;br /&gt;
 Only in /etc/ssl/untrusted: 57bcb2da.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 5c44d531.0&lt;br /&gt;
 Only in /etc/ssl/untrusted: 5e98733a.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 76cb8f92.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 861a399d.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 9c2e7d30.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: d853d49e.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: f3377b1b.0&lt;br /&gt;
&lt;br /&gt;
С 01 октября 2025 года срок поддержки FreeBSD 14.2-RELEASE истёк. И проблемы безопасности, обнаруженные после этой даты, исправляться не будут.&lt;br /&gt;
&lt;br /&gt;
 # freebsd-update fetch&lt;br /&gt;
 src component not installed, skipped&lt;br /&gt;
 Looking up update.FreeBSD.org mirrors... 3 mirrors found.&lt;br /&gt;
 Fetching metadata signature for 14.2-RELEASE from update1.freebsd.org... done.&lt;br /&gt;
 Fetching metadata index... done.&lt;br /&gt;
 Inspecting system... done.&lt;br /&gt;
 Preparing to download files... done.&lt;br /&gt;
 &lt;br /&gt;
 No updates needed to update system to 14.2-RELEASE-p7.&lt;br /&gt;
 &lt;br /&gt;
 WARNING: FreeBSD 14.2-RELEASE HAS PASSED ITS END-OF-LIFE DATE.&lt;br /&gt;
 Any security issues discovered after Wed Oct  1 03:00:00 MSK 2025&lt;br /&gt;
 will not have been corrected.&lt;br /&gt;
&lt;br /&gt;
Вывод команды сообщает об этом. Потребуется повышение версии ОС.&lt;br /&gt;
&lt;br /&gt;
== Обновление FreeBSD с версии 14.2-RELEASE до 14.3-RELEASE ==&lt;br /&gt;
&lt;br /&gt;
Повышение младшей версии ОС:&lt;br /&gt;
&lt;br /&gt;
 # freebsd-update upgrade -r 14.3-RELEASE&lt;br /&gt;
 src component not installed, skipped&lt;br /&gt;
 Looking up update.FreeBSD.org mirrors... 3 mirrors found.&lt;br /&gt;
 Fetching metadata signature for 14.2-RELEASE from update1.freebsd.org... done.&lt;br /&gt;
 Fetching metadata index... done.&lt;br /&gt;
 Fetching 1 metadata files... done.&lt;br /&gt;
 Inspecting system... done.&lt;br /&gt;
 &lt;br /&gt;
 The following components of FreeBSD seem to be installed:&lt;br /&gt;
 kernel/generic kernel/generic-dbg world/base world/lib32&lt;br /&gt;
 &lt;br /&gt;
 The following components of FreeBSD do not seem to be installed:&lt;br /&gt;
 world/base-dbg world/lib32-dbg&lt;br /&gt;
 &lt;br /&gt;
 Does this look reasonable (y/n)?&lt;br /&gt;
&lt;br /&gt;
Вывод команды спросит согласие на установку компонентов ОС.&lt;br /&gt;
 To install the downloaded upgrades, run &#039;freebsd-update [options] install&#039;.&lt;br /&gt;
&lt;br /&gt;
Вывод команды предложит сделать продолжение обновления ОС:&lt;br /&gt;
 # freebsd-update install&lt;br /&gt;
 src component not installed, skipped&lt;br /&gt;
 Creating snapshot of existing boot environment... done.&lt;br /&gt;
 Installing updates...&lt;br /&gt;
 Kernel updates have been installed.  Please reboot and run&lt;br /&gt;
 &#039;freebsd-update [options] install&#039; again to finish installing updates.&lt;br /&gt;
&lt;br /&gt;
Вывод команды предложит сделать перезагрузку ОС и продолжить обновление ОС:&lt;br /&gt;
 # reboot&lt;br /&gt;
&lt;br /&gt;
 # freebsd-update install&lt;br /&gt;
&lt;br /&gt;
Сравнение списков предыдущих и обновлённых файлов конфигурации после повышения версии ОС:&lt;br /&gt;
 # diff -rq /etc /etc.backup&lt;br /&gt;
 Files /etc/autofs/special_media and /etc.backup/autofs/special_media differ&lt;br /&gt;
 Files /etc/defaults/periodic.conf and /etc.backup/defaults/periodic.conf differ&lt;br /&gt;
 Files /etc/defaults/rc.conf and /etc.backup/defaults/rc.conf differ&lt;br /&gt;
 Files /etc/devd/iwmbtfw.conf and /etc.backup/devd/iwmbtfw.conf differ&lt;br /&gt;
 Only in /etc/devd: rtlbtfw.conf&lt;br /&gt;
 Files /etc/mtree/BSD.debug.dist and /etc.backup/mtree/BSD.debug.dist differ&lt;br /&gt;
 Files /etc/mtree/BSD.include.dist and /etc.backup/mtree/BSD.include.dist differ&lt;br /&gt;
 Files /etc/mtree/BSD.tests.dist and /etc.backup/mtree/BSD.tests.dist differ&lt;br /&gt;
 Files /etc/mtree/BSD.usr.dist and /etc.backup/mtree/BSD.usr.dist differ&lt;br /&gt;
 Files /etc/pkg/FreeBSD.conf and /etc.backup/pkg/FreeBSD.conf differ&lt;br /&gt;
 Files /etc/rc.d/iovctl and /etc.backup/rc.d/iovctl differ&lt;br /&gt;
 Files /etc/rc.d/ipfilter and /etc.backup/rc.d/ipfilter differ&lt;br /&gt;
 Files /etc/rc.d/kld and /etc.backup/rc.d/kld differ&lt;br /&gt;
 Files /etc/rc.d/sendmail and /etc.backup/rc.d/sendmail differ&lt;br /&gt;
 Files /etc/rc.d/var_run and /etc.backup/rc.d/var_run differ&lt;br /&gt;
 Files /etc/regdomain.xml and /etc.backup/regdomain.xml differ&lt;br /&gt;
 Files /etc/services and /etc.backup/services differ&lt;br /&gt;
 Files /etc/ssh/moduli and /etc.backup/ssh/moduli differ&lt;br /&gt;
 Files /etc/ssh/sshd_config and /etc.backup/ssh/sshd_config differ&lt;br /&gt;
&lt;br /&gt;
Все файлы конфигурации ОС, которые не редактировались вручную, обновлены автоматически.&lt;br /&gt;
&lt;br /&gt;
== Обновление FreeBSD с версии 14.3-RELEASE до версии 15-RELEASE ==&lt;br /&gt;
&lt;br /&gt;
Повышение старшей версии ОС:&lt;br /&gt;
 # freebsd-update upgrade -r 15.0-RELEASE&lt;br /&gt;
 src component not installed, skipped&lt;br /&gt;
 Looking up update.FreeBSD.org mirrors... 3 mirrors found.&lt;br /&gt;
 Fetching metadata signature for 14.3-RELEASE from update1.freebsd.org... done.&lt;br /&gt;
 Fetching metadata index... done.&lt;br /&gt;
 Inspecting system... done.&lt;br /&gt;
 &lt;br /&gt;
 The following components of FreeBSD seem to be installed:&lt;br /&gt;
 kernel/generic world/base&lt;br /&gt;
 &lt;br /&gt;
 The following components of FreeBSD do not seem to be installed:&lt;br /&gt;
 kernel/generic-dbg world/base-dbg world/lib32 world/lib32-dbg&lt;br /&gt;
 &lt;br /&gt;
 Does this look reasonable (y/n)?&lt;br /&gt;
&lt;br /&gt;
 To install the downloaded upgrades, run &#039;freebsd-update [options] install&#039;.&lt;br /&gt;
&lt;br /&gt;
 # freebsd-update install&lt;br /&gt;
 src component not installed, skipped&lt;br /&gt;
 Creating snapshot of existing boot environment... done.&lt;br /&gt;
 Installing updates...&lt;br /&gt;
 Kernel updates have been installed.  Please reboot and run&lt;br /&gt;
 &#039;freebsd-update [options] install&#039; again to finish installing updates.&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://wiki.bsdhowto.ru/index.php?title=FreeBSD_Update&amp;diff=265</id>
		<title>FreeBSD Update</title>
		<link rel="alternate" type="text/html" href="https://wiki.bsdhowto.ru/index.php?title=FreeBSD_Update&amp;diff=265"/>
		<updated>2025-12-16T16:54:31Z</updated>

		<summary type="html">&lt;p&gt;Igor: /* Обновление FreeBSD с версии 14.3-RELEASE до версии 15-RELEASE */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Подготовка к установке обновлений безопасности FreeBSD ==&lt;br /&gt;
&lt;br /&gt;
Проверка текущей версии ОС:&lt;br /&gt;
&lt;br /&gt;
 # freebsd-version -ku&lt;br /&gt;
 14.2-RELEASE&lt;br /&gt;
 14.2-RELEASE&lt;br /&gt;
&lt;br /&gt;
Перед скачиванием и установкой обновлений безопасности FreeBSD следует сделать резервную копию файлов конфигурации ОС.&lt;br /&gt;
&lt;br /&gt;
 # cp -Rp /etc /etc.backup&lt;br /&gt;
&lt;br /&gt;
== Скачивание и установка бинарных обновлений безопасности FreeBSD с последующей перезагрузкой ==&lt;br /&gt;
&lt;br /&gt;
Скачивание бинарных обновлений ОС:&lt;br /&gt;
 # freebsd-update fetch&lt;br /&gt;
&lt;br /&gt;
Установка бинарных обновлений ОС: ==&lt;br /&gt;
 # freebsd-update install&lt;br /&gt;
 src component not installed, skipped&lt;br /&gt;
 Creating snapshot of existing boot environment... done.&lt;br /&gt;
 Installing updates...&lt;br /&gt;
 Restarting sshd after upgrade&lt;br /&gt;
 Performing sanity check on sshd configuration.&lt;br /&gt;
 Stopping sshd.&lt;br /&gt;
 Performing sanity check on sshd configuration.&lt;br /&gt;
 Starting sshd.&lt;br /&gt;
 Scanning /usr/share/certs/untrusted for certificates...&lt;br /&gt;
 Scanning /usr/share/certs/trusted for certificates...&lt;br /&gt;
  done.&lt;br /&gt;
&lt;br /&gt;
Перезагрузка FreeBSD после установки бинарных обновлений безопасности ОС:&lt;br /&gt;
 # reboot&lt;br /&gt;
&lt;br /&gt;
== Проверка установленной версии FreeBSD ==&lt;br /&gt;
&lt;br /&gt;
 # freebsd-version -ku&lt;br /&gt;
 14.2-RELEASE-p1&lt;br /&gt;
 14.2-RELEASE-p7&lt;br /&gt;
&lt;br /&gt;
Сравнение списков предыдущих и обновлённых файлов конфигурации после обновления ОС:&lt;br /&gt;
 # diff -rq /etc /etc.backup&lt;br /&gt;
 Only in /etc.backup/ssl/certs: 08063a00.0&lt;br /&gt;
 Only in /etc.backup/ssl/certs: 18856ac4.0&lt;br /&gt;
 Only in /etc.backup/ssl/certs: 57bcb2da.0&lt;br /&gt;
 Only in /etc.backup/ssl/certs: 5e98733a.0&lt;br /&gt;
 Only in /etc/ssl/certs: 616816f6.0&lt;br /&gt;
 Only in /etc/ssl/certs: 6a9bdba3.0&lt;br /&gt;
 Only in /etc/ssl/certs: 878d9bca.0&lt;br /&gt;
 Only in /etc/ssl/certs: a09a51ae.0&lt;br /&gt;
 Only in /etc/ssl/certs: b8d25de6.0&lt;br /&gt;
 Only in /etc/ssl/certs: ba8887ce.0&lt;br /&gt;
 Only in /etc/ssl/certs: ffdd40f9.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 03179a64.0&lt;br /&gt;
 Only in /etc/ssl/untrusted: 08063a00.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 080911ac.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 157753a5.0&lt;br /&gt;
 Only in /etc/ssl/untrusted: 18856ac4.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 2c543cd1.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 2e5ac55d.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 3e45d192.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 4a6481c9.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 5273a94c.0&lt;br /&gt;
 Only in /etc/ssl/untrusted: 57bcb2da.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 5c44d531.0&lt;br /&gt;
 Only in /etc/ssl/untrusted: 5e98733a.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 76cb8f92.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 861a399d.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 9c2e7d30.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: d853d49e.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: f3377b1b.0&lt;br /&gt;
&lt;br /&gt;
С 01 октября 2025 года срок поддержки FreeBSD 14.2-RELEASE истёк. И проблемы безопасности, обнаруженные после этой даты, исправляться не будут.&lt;br /&gt;
&lt;br /&gt;
 # freebsd-update fetch&lt;br /&gt;
 src component not installed, skipped&lt;br /&gt;
 Looking up update.FreeBSD.org mirrors... 3 mirrors found.&lt;br /&gt;
 Fetching metadata signature for 14.2-RELEASE from update1.freebsd.org... done.&lt;br /&gt;
 Fetching metadata index... done.&lt;br /&gt;
 Inspecting system... done.&lt;br /&gt;
 Preparing to download files... done.&lt;br /&gt;
 &lt;br /&gt;
 No updates needed to update system to 14.2-RELEASE-p7.&lt;br /&gt;
 &lt;br /&gt;
 WARNING: FreeBSD 14.2-RELEASE HAS PASSED ITS END-OF-LIFE DATE.&lt;br /&gt;
 Any security issues discovered after Wed Oct  1 03:00:00 MSK 2025&lt;br /&gt;
 will not have been corrected.&lt;br /&gt;
&lt;br /&gt;
Вывод команды сообщает об этом. Потребуется повышение версии ОС.&lt;br /&gt;
&lt;br /&gt;
== Обновление FreeBSD с версии 14.2-RELEASE до 14.3-RELEASE ==&lt;br /&gt;
&lt;br /&gt;
Повышение младшей версии ОС:&lt;br /&gt;
&lt;br /&gt;
 # freebsd-update upgrade -r 14.3-RELEASE&lt;br /&gt;
 src component not installed, skipped&lt;br /&gt;
 Looking up update.FreeBSD.org mirrors... 3 mirrors found.&lt;br /&gt;
 Fetching metadata signature for 14.2-RELEASE from update1.freebsd.org... done.&lt;br /&gt;
 Fetching metadata index... done.&lt;br /&gt;
 Fetching 1 metadata files... done.&lt;br /&gt;
 Inspecting system... done.&lt;br /&gt;
 &lt;br /&gt;
 The following components of FreeBSD seem to be installed:&lt;br /&gt;
 kernel/generic kernel/generic-dbg world/base world/lib32&lt;br /&gt;
 &lt;br /&gt;
 The following components of FreeBSD do not seem to be installed:&lt;br /&gt;
 world/base-dbg world/lib32-dbg&lt;br /&gt;
 &lt;br /&gt;
 Does this look reasonable (y/n)?&lt;br /&gt;
&lt;br /&gt;
Вывод команды спросит согласие на установку компонентов ОС.&lt;br /&gt;
 To install the downloaded upgrades, run &#039;freebsd-update [options] install&#039;.&lt;br /&gt;
&lt;br /&gt;
Вывод команды предложит сделать продолжение обновления ОС:&lt;br /&gt;
 # freebsd-update install&lt;br /&gt;
 src component not installed, skipped&lt;br /&gt;
 Creating snapshot of existing boot environment... done.&lt;br /&gt;
 Installing updates...&lt;br /&gt;
 Kernel updates have been installed.  Please reboot and run&lt;br /&gt;
 &#039;freebsd-update [options] install&#039; again to finish installing updates.&lt;br /&gt;
&lt;br /&gt;
Вывод команды предложит сделать перезагрузку ОС и продолжить обновление ОС:&lt;br /&gt;
 # reboot&lt;br /&gt;
&lt;br /&gt;
 # freebsd-update install&lt;br /&gt;
&lt;br /&gt;
Сравнение списков предыдущих и обновлённых файлов конфигурации после повышения версии ОС:&lt;br /&gt;
 # diff -rq /etc /etc.backup&lt;br /&gt;
 Files /etc/autofs/special_media and /etc.backup/autofs/special_media differ&lt;br /&gt;
 Files /etc/defaults/periodic.conf and /etc.backup/defaults/periodic.conf differ&lt;br /&gt;
 Files /etc/defaults/rc.conf and /etc.backup/defaults/rc.conf differ&lt;br /&gt;
 Files /etc/devd/iwmbtfw.conf and /etc.backup/devd/iwmbtfw.conf differ&lt;br /&gt;
 Only in /etc/devd: rtlbtfw.conf&lt;br /&gt;
 Files /etc/mtree/BSD.debug.dist and /etc.backup/mtree/BSD.debug.dist differ&lt;br /&gt;
 Files /etc/mtree/BSD.include.dist and /etc.backup/mtree/BSD.include.dist differ&lt;br /&gt;
 Files /etc/mtree/BSD.tests.dist and /etc.backup/mtree/BSD.tests.dist differ&lt;br /&gt;
 Files /etc/mtree/BSD.usr.dist and /etc.backup/mtree/BSD.usr.dist differ&lt;br /&gt;
 Files /etc/pkg/FreeBSD.conf and /etc.backup/pkg/FreeBSD.conf differ&lt;br /&gt;
 Files /etc/rc.d/iovctl and /etc.backup/rc.d/iovctl differ&lt;br /&gt;
 Files /etc/rc.d/ipfilter and /etc.backup/rc.d/ipfilter differ&lt;br /&gt;
 Files /etc/rc.d/kld and /etc.backup/rc.d/kld differ&lt;br /&gt;
 Files /etc/rc.d/sendmail and /etc.backup/rc.d/sendmail differ&lt;br /&gt;
 Files /etc/rc.d/var_run and /etc.backup/rc.d/var_run differ&lt;br /&gt;
 Files /etc/regdomain.xml and /etc.backup/regdomain.xml differ&lt;br /&gt;
 Files /etc/services and /etc.backup/services differ&lt;br /&gt;
 Files /etc/ssh/moduli and /etc.backup/ssh/moduli differ&lt;br /&gt;
 Files /etc/ssh/sshd_config and /etc.backup/ssh/sshd_config differ&lt;br /&gt;
&lt;br /&gt;
Все файлы конфигурации ОС, которые не редактировались вручную, обновлены автоматически.&lt;br /&gt;
&lt;br /&gt;
== Обновление FreeBSD с версии 14.3-RELEASE до версии 15-RELEASE ==&lt;br /&gt;
&lt;br /&gt;
Повышение старшей версии ОС:&lt;br /&gt;
 # freebsd-update upgrade -r 15.0-RELEASE&lt;br /&gt;
 src component not installed, skipped&lt;br /&gt;
 Looking up update.FreeBSD.org mirrors... 3 mirrors found.&lt;br /&gt;
 Fetching metadata signature for 14.3-RELEASE from update1.freebsd.org... done.&lt;br /&gt;
 Fetching metadata index... done.&lt;br /&gt;
 Inspecting system... done.&lt;br /&gt;
 &lt;br /&gt;
 The following components of FreeBSD seem to be installed:&lt;br /&gt;
 kernel/generic world/base&lt;br /&gt;
 &lt;br /&gt;
 The following components of FreeBSD do not seem to be installed:&lt;br /&gt;
 kernel/generic-dbg world/base-dbg world/lib32 world/lib32-dbg&lt;br /&gt;
 &lt;br /&gt;
 Does this look reasonable (y/n)?&lt;br /&gt;
&lt;br /&gt;
 To install the downloaded upgrades, run &#039;freebsd-update [options] install&#039;.&lt;br /&gt;
&lt;br /&gt;
 # freebsd-update install&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://wiki.bsdhowto.ru/index.php?title=FreeBSD_Update&amp;diff=264</id>
		<title>FreeBSD Update</title>
		<link rel="alternate" type="text/html" href="https://wiki.bsdhowto.ru/index.php?title=FreeBSD_Update&amp;diff=264"/>
		<updated>2025-12-16T16:53:00Z</updated>

		<summary type="html">&lt;p&gt;Igor: /* Обновление FreeBSD с версии 14.3-RELEASE до версии 15-RELEASE */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Подготовка к установке обновлений безопасности FreeBSD ==&lt;br /&gt;
&lt;br /&gt;
Проверка текущей версии ОС:&lt;br /&gt;
&lt;br /&gt;
 # freebsd-version -ku&lt;br /&gt;
 14.2-RELEASE&lt;br /&gt;
 14.2-RELEASE&lt;br /&gt;
&lt;br /&gt;
Перед скачиванием и установкой обновлений безопасности FreeBSD следует сделать резервную копию файлов конфигурации ОС.&lt;br /&gt;
&lt;br /&gt;
 # cp -Rp /etc /etc.backup&lt;br /&gt;
&lt;br /&gt;
== Скачивание и установка бинарных обновлений безопасности FreeBSD с последующей перезагрузкой ==&lt;br /&gt;
&lt;br /&gt;
Скачивание бинарных обновлений ОС:&lt;br /&gt;
 # freebsd-update fetch&lt;br /&gt;
&lt;br /&gt;
Установка бинарных обновлений ОС: ==&lt;br /&gt;
 # freebsd-update install&lt;br /&gt;
 src component not installed, skipped&lt;br /&gt;
 Creating snapshot of existing boot environment... done.&lt;br /&gt;
 Installing updates...&lt;br /&gt;
 Restarting sshd after upgrade&lt;br /&gt;
 Performing sanity check on sshd configuration.&lt;br /&gt;
 Stopping sshd.&lt;br /&gt;
 Performing sanity check on sshd configuration.&lt;br /&gt;
 Starting sshd.&lt;br /&gt;
 Scanning /usr/share/certs/untrusted for certificates...&lt;br /&gt;
 Scanning /usr/share/certs/trusted for certificates...&lt;br /&gt;
  done.&lt;br /&gt;
&lt;br /&gt;
Перезагрузка FreeBSD после установки бинарных обновлений безопасности ОС:&lt;br /&gt;
 # reboot&lt;br /&gt;
&lt;br /&gt;
== Проверка установленной версии FreeBSD ==&lt;br /&gt;
&lt;br /&gt;
 # freebsd-version -ku&lt;br /&gt;
 14.2-RELEASE-p1&lt;br /&gt;
 14.2-RELEASE-p7&lt;br /&gt;
&lt;br /&gt;
Сравнение списков предыдущих и обновлённых файлов конфигурации после обновления ОС:&lt;br /&gt;
 # diff -rq /etc /etc.backup&lt;br /&gt;
 Only in /etc.backup/ssl/certs: 08063a00.0&lt;br /&gt;
 Only in /etc.backup/ssl/certs: 18856ac4.0&lt;br /&gt;
 Only in /etc.backup/ssl/certs: 57bcb2da.0&lt;br /&gt;
 Only in /etc.backup/ssl/certs: 5e98733a.0&lt;br /&gt;
 Only in /etc/ssl/certs: 616816f6.0&lt;br /&gt;
 Only in /etc/ssl/certs: 6a9bdba3.0&lt;br /&gt;
 Only in /etc/ssl/certs: 878d9bca.0&lt;br /&gt;
 Only in /etc/ssl/certs: a09a51ae.0&lt;br /&gt;
 Only in /etc/ssl/certs: b8d25de6.0&lt;br /&gt;
 Only in /etc/ssl/certs: ba8887ce.0&lt;br /&gt;
 Only in /etc/ssl/certs: ffdd40f9.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 03179a64.0&lt;br /&gt;
 Only in /etc/ssl/untrusted: 08063a00.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 080911ac.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 157753a5.0&lt;br /&gt;
 Only in /etc/ssl/untrusted: 18856ac4.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 2c543cd1.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 2e5ac55d.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 3e45d192.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 4a6481c9.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 5273a94c.0&lt;br /&gt;
 Only in /etc/ssl/untrusted: 57bcb2da.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 5c44d531.0&lt;br /&gt;
 Only in /etc/ssl/untrusted: 5e98733a.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 76cb8f92.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 861a399d.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 9c2e7d30.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: d853d49e.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: f3377b1b.0&lt;br /&gt;
&lt;br /&gt;
С 01 октября 2025 года срок поддержки FreeBSD 14.2-RELEASE истёк. И проблемы безопасности, обнаруженные после этой даты, исправляться не будут.&lt;br /&gt;
&lt;br /&gt;
 # freebsd-update fetch&lt;br /&gt;
 src component not installed, skipped&lt;br /&gt;
 Looking up update.FreeBSD.org mirrors... 3 mirrors found.&lt;br /&gt;
 Fetching metadata signature for 14.2-RELEASE from update1.freebsd.org... done.&lt;br /&gt;
 Fetching metadata index... done.&lt;br /&gt;
 Inspecting system... done.&lt;br /&gt;
 Preparing to download files... done.&lt;br /&gt;
 &lt;br /&gt;
 No updates needed to update system to 14.2-RELEASE-p7.&lt;br /&gt;
 &lt;br /&gt;
 WARNING: FreeBSD 14.2-RELEASE HAS PASSED ITS END-OF-LIFE DATE.&lt;br /&gt;
 Any security issues discovered after Wed Oct  1 03:00:00 MSK 2025&lt;br /&gt;
 will not have been corrected.&lt;br /&gt;
&lt;br /&gt;
Вывод команды сообщает об этом. Потребуется повышение версии ОС.&lt;br /&gt;
&lt;br /&gt;
== Обновление FreeBSD с версии 14.2-RELEASE до 14.3-RELEASE ==&lt;br /&gt;
&lt;br /&gt;
Повышение младшей версии ОС:&lt;br /&gt;
&lt;br /&gt;
 # freebsd-update upgrade -r 14.3-RELEASE&lt;br /&gt;
 src component not installed, skipped&lt;br /&gt;
 Looking up update.FreeBSD.org mirrors... 3 mirrors found.&lt;br /&gt;
 Fetching metadata signature for 14.2-RELEASE from update1.freebsd.org... done.&lt;br /&gt;
 Fetching metadata index... done.&lt;br /&gt;
 Fetching 1 metadata files... done.&lt;br /&gt;
 Inspecting system... done.&lt;br /&gt;
 &lt;br /&gt;
 The following components of FreeBSD seem to be installed:&lt;br /&gt;
 kernel/generic kernel/generic-dbg world/base world/lib32&lt;br /&gt;
 &lt;br /&gt;
 The following components of FreeBSD do not seem to be installed:&lt;br /&gt;
 world/base-dbg world/lib32-dbg&lt;br /&gt;
 &lt;br /&gt;
 Does this look reasonable (y/n)?&lt;br /&gt;
&lt;br /&gt;
Вывод команды спросит согласие на установку компонентов ОС.&lt;br /&gt;
 To install the downloaded upgrades, run &#039;freebsd-update [options] install&#039;.&lt;br /&gt;
&lt;br /&gt;
Вывод команды предложит сделать продолжение обновления ОС:&lt;br /&gt;
 # freebsd-update install&lt;br /&gt;
 src component not installed, skipped&lt;br /&gt;
 Creating snapshot of existing boot environment... done.&lt;br /&gt;
 Installing updates...&lt;br /&gt;
 Kernel updates have been installed.  Please reboot and run&lt;br /&gt;
 &#039;freebsd-update [options] install&#039; again to finish installing updates.&lt;br /&gt;
&lt;br /&gt;
Вывод команды предложит сделать перезагрузку ОС и продолжить обновление ОС:&lt;br /&gt;
 # reboot&lt;br /&gt;
&lt;br /&gt;
 # freebsd-update install&lt;br /&gt;
&lt;br /&gt;
Сравнение списков предыдущих и обновлённых файлов конфигурации после повышения версии ОС:&lt;br /&gt;
 # diff -rq /etc /etc.backup&lt;br /&gt;
 Files /etc/autofs/special_media and /etc.backup/autofs/special_media differ&lt;br /&gt;
 Files /etc/defaults/periodic.conf and /etc.backup/defaults/periodic.conf differ&lt;br /&gt;
 Files /etc/defaults/rc.conf and /etc.backup/defaults/rc.conf differ&lt;br /&gt;
 Files /etc/devd/iwmbtfw.conf and /etc.backup/devd/iwmbtfw.conf differ&lt;br /&gt;
 Only in /etc/devd: rtlbtfw.conf&lt;br /&gt;
 Files /etc/mtree/BSD.debug.dist and /etc.backup/mtree/BSD.debug.dist differ&lt;br /&gt;
 Files /etc/mtree/BSD.include.dist and /etc.backup/mtree/BSD.include.dist differ&lt;br /&gt;
 Files /etc/mtree/BSD.tests.dist and /etc.backup/mtree/BSD.tests.dist differ&lt;br /&gt;
 Files /etc/mtree/BSD.usr.dist and /etc.backup/mtree/BSD.usr.dist differ&lt;br /&gt;
 Files /etc/pkg/FreeBSD.conf and /etc.backup/pkg/FreeBSD.conf differ&lt;br /&gt;
 Files /etc/rc.d/iovctl and /etc.backup/rc.d/iovctl differ&lt;br /&gt;
 Files /etc/rc.d/ipfilter and /etc.backup/rc.d/ipfilter differ&lt;br /&gt;
 Files /etc/rc.d/kld and /etc.backup/rc.d/kld differ&lt;br /&gt;
 Files /etc/rc.d/sendmail and /etc.backup/rc.d/sendmail differ&lt;br /&gt;
 Files /etc/rc.d/var_run and /etc.backup/rc.d/var_run differ&lt;br /&gt;
 Files /etc/regdomain.xml and /etc.backup/regdomain.xml differ&lt;br /&gt;
 Files /etc/services and /etc.backup/services differ&lt;br /&gt;
 Files /etc/ssh/moduli and /etc.backup/ssh/moduli differ&lt;br /&gt;
 Files /etc/ssh/sshd_config and /etc.backup/ssh/sshd_config differ&lt;br /&gt;
&lt;br /&gt;
Все файлы конфигурации ОС, которые не редактировались вручную, обновлены автоматически.&lt;br /&gt;
&lt;br /&gt;
== Обновление FreeBSD с версии 14.3-RELEASE до версии 15-RELEASE ==&lt;br /&gt;
&lt;br /&gt;
Повышение старшей версии ОС:&lt;br /&gt;
 # freebsd-update upgrade -r 15.0-RELEASE&lt;br /&gt;
 src component not installed, skipped&lt;br /&gt;
 Looking up update.FreeBSD.org mirrors... 3 mirrors found.&lt;br /&gt;
 Fetching metadata signature for 14.3-RELEASE from update1.freebsd.org... done.&lt;br /&gt;
 Fetching metadata index... done.&lt;br /&gt;
 Inspecting system... done.&lt;br /&gt;
 &lt;br /&gt;
 The following components of FreeBSD seem to be installed:&lt;br /&gt;
 kernel/generic world/base&lt;br /&gt;
 &lt;br /&gt;
 The following components of FreeBSD do not seem to be installed:&lt;br /&gt;
 kernel/generic-dbg world/base-dbg world/lib32 world/lib32-dbg&lt;br /&gt;
 &lt;br /&gt;
 Does this look reasonable (y/n)?&lt;br /&gt;
&lt;br /&gt;
 To install the downloaded upgrades, run &#039;freebsd-update [options] install&#039;.&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://wiki.bsdhowto.ru/index.php?title=FreeBSD_Update&amp;diff=263</id>
		<title>FreeBSD Update</title>
		<link rel="alternate" type="text/html" href="https://wiki.bsdhowto.ru/index.php?title=FreeBSD_Update&amp;diff=263"/>
		<updated>2025-12-16T16:27:37Z</updated>

		<summary type="html">&lt;p&gt;Igor: /* Обновление FreeBSD с версии 14.3-RELEASE до версии 15-RELEASE */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Подготовка к установке обновлений безопасности FreeBSD ==&lt;br /&gt;
&lt;br /&gt;
Проверка текущей версии ОС:&lt;br /&gt;
&lt;br /&gt;
 # freebsd-version -ku&lt;br /&gt;
 14.2-RELEASE&lt;br /&gt;
 14.2-RELEASE&lt;br /&gt;
&lt;br /&gt;
Перед скачиванием и установкой обновлений безопасности FreeBSD следует сделать резервную копию файлов конфигурации ОС.&lt;br /&gt;
&lt;br /&gt;
 # cp -Rp /etc /etc.backup&lt;br /&gt;
&lt;br /&gt;
== Скачивание и установка бинарных обновлений безопасности FreeBSD с последующей перезагрузкой ==&lt;br /&gt;
&lt;br /&gt;
Скачивание бинарных обновлений ОС:&lt;br /&gt;
 # freebsd-update fetch&lt;br /&gt;
&lt;br /&gt;
Установка бинарных обновлений ОС: ==&lt;br /&gt;
 # freebsd-update install&lt;br /&gt;
 src component not installed, skipped&lt;br /&gt;
 Creating snapshot of existing boot environment... done.&lt;br /&gt;
 Installing updates...&lt;br /&gt;
 Restarting sshd after upgrade&lt;br /&gt;
 Performing sanity check on sshd configuration.&lt;br /&gt;
 Stopping sshd.&lt;br /&gt;
 Performing sanity check on sshd configuration.&lt;br /&gt;
 Starting sshd.&lt;br /&gt;
 Scanning /usr/share/certs/untrusted for certificates...&lt;br /&gt;
 Scanning /usr/share/certs/trusted for certificates...&lt;br /&gt;
  done.&lt;br /&gt;
&lt;br /&gt;
Перезагрузка FreeBSD после установки бинарных обновлений безопасности ОС:&lt;br /&gt;
 # reboot&lt;br /&gt;
&lt;br /&gt;
== Проверка установленной версии FreeBSD ==&lt;br /&gt;
&lt;br /&gt;
 # freebsd-version -ku&lt;br /&gt;
 14.2-RELEASE-p1&lt;br /&gt;
 14.2-RELEASE-p7&lt;br /&gt;
&lt;br /&gt;
Сравнение списков предыдущих и обновлённых файлов конфигурации после обновления ОС:&lt;br /&gt;
 # diff -rq /etc /etc.backup&lt;br /&gt;
 Only in /etc.backup/ssl/certs: 08063a00.0&lt;br /&gt;
 Only in /etc.backup/ssl/certs: 18856ac4.0&lt;br /&gt;
 Only in /etc.backup/ssl/certs: 57bcb2da.0&lt;br /&gt;
 Only in /etc.backup/ssl/certs: 5e98733a.0&lt;br /&gt;
 Only in /etc/ssl/certs: 616816f6.0&lt;br /&gt;
 Only in /etc/ssl/certs: 6a9bdba3.0&lt;br /&gt;
 Only in /etc/ssl/certs: 878d9bca.0&lt;br /&gt;
 Only in /etc/ssl/certs: a09a51ae.0&lt;br /&gt;
 Only in /etc/ssl/certs: b8d25de6.0&lt;br /&gt;
 Only in /etc/ssl/certs: ba8887ce.0&lt;br /&gt;
 Only in /etc/ssl/certs: ffdd40f9.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 03179a64.0&lt;br /&gt;
 Only in /etc/ssl/untrusted: 08063a00.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 080911ac.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 157753a5.0&lt;br /&gt;
 Only in /etc/ssl/untrusted: 18856ac4.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 2c543cd1.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 2e5ac55d.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 3e45d192.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 4a6481c9.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 5273a94c.0&lt;br /&gt;
 Only in /etc/ssl/untrusted: 57bcb2da.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 5c44d531.0&lt;br /&gt;
 Only in /etc/ssl/untrusted: 5e98733a.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 76cb8f92.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 861a399d.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 9c2e7d30.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: d853d49e.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: f3377b1b.0&lt;br /&gt;
&lt;br /&gt;
С 01 октября 2025 года срок поддержки FreeBSD 14.2-RELEASE истёк. И проблемы безопасности, обнаруженные после этой даты, исправляться не будут.&lt;br /&gt;
&lt;br /&gt;
 # freebsd-update fetch&lt;br /&gt;
 src component not installed, skipped&lt;br /&gt;
 Looking up update.FreeBSD.org mirrors... 3 mirrors found.&lt;br /&gt;
 Fetching metadata signature for 14.2-RELEASE from update1.freebsd.org... done.&lt;br /&gt;
 Fetching metadata index... done.&lt;br /&gt;
 Inspecting system... done.&lt;br /&gt;
 Preparing to download files... done.&lt;br /&gt;
 &lt;br /&gt;
 No updates needed to update system to 14.2-RELEASE-p7.&lt;br /&gt;
 &lt;br /&gt;
 WARNING: FreeBSD 14.2-RELEASE HAS PASSED ITS END-OF-LIFE DATE.&lt;br /&gt;
 Any security issues discovered after Wed Oct  1 03:00:00 MSK 2025&lt;br /&gt;
 will not have been corrected.&lt;br /&gt;
&lt;br /&gt;
Вывод команды сообщает об этом. Потребуется повышение версии ОС.&lt;br /&gt;
&lt;br /&gt;
== Обновление FreeBSD с версии 14.2-RELEASE до 14.3-RELEASE ==&lt;br /&gt;
&lt;br /&gt;
Повышение младшей версии ОС:&lt;br /&gt;
&lt;br /&gt;
 # freebsd-update upgrade -r 14.3-RELEASE&lt;br /&gt;
 src component not installed, skipped&lt;br /&gt;
 Looking up update.FreeBSD.org mirrors... 3 mirrors found.&lt;br /&gt;
 Fetching metadata signature for 14.2-RELEASE from update1.freebsd.org... done.&lt;br /&gt;
 Fetching metadata index... done.&lt;br /&gt;
 Fetching 1 metadata files... done.&lt;br /&gt;
 Inspecting system... done.&lt;br /&gt;
 &lt;br /&gt;
 The following components of FreeBSD seem to be installed:&lt;br /&gt;
 kernel/generic kernel/generic-dbg world/base world/lib32&lt;br /&gt;
 &lt;br /&gt;
 The following components of FreeBSD do not seem to be installed:&lt;br /&gt;
 world/base-dbg world/lib32-dbg&lt;br /&gt;
 &lt;br /&gt;
 Does this look reasonable (y/n)?&lt;br /&gt;
&lt;br /&gt;
Вывод команды спросит согласие на установку компонентов ОС.&lt;br /&gt;
 To install the downloaded upgrades, run &#039;freebsd-update [options] install&#039;.&lt;br /&gt;
&lt;br /&gt;
Вывод команды предложит сделать продолжение обновления ОС:&lt;br /&gt;
 # freebsd-update install&lt;br /&gt;
 src component not installed, skipped&lt;br /&gt;
 Creating snapshot of existing boot environment... done.&lt;br /&gt;
 Installing updates...&lt;br /&gt;
 Kernel updates have been installed.  Please reboot and run&lt;br /&gt;
 &#039;freebsd-update [options] install&#039; again to finish installing updates.&lt;br /&gt;
&lt;br /&gt;
Вывод команды предложит сделать перезагрузку ОС и продолжить обновление ОС:&lt;br /&gt;
 # reboot&lt;br /&gt;
&lt;br /&gt;
 # freebsd-update install&lt;br /&gt;
&lt;br /&gt;
Сравнение списков предыдущих и обновлённых файлов конфигурации после повышения версии ОС:&lt;br /&gt;
 # diff -rq /etc /etc.backup&lt;br /&gt;
 Files /etc/autofs/special_media and /etc.backup/autofs/special_media differ&lt;br /&gt;
 Files /etc/defaults/periodic.conf and /etc.backup/defaults/periodic.conf differ&lt;br /&gt;
 Files /etc/defaults/rc.conf and /etc.backup/defaults/rc.conf differ&lt;br /&gt;
 Files /etc/devd/iwmbtfw.conf and /etc.backup/devd/iwmbtfw.conf differ&lt;br /&gt;
 Only in /etc/devd: rtlbtfw.conf&lt;br /&gt;
 Files /etc/mtree/BSD.debug.dist and /etc.backup/mtree/BSD.debug.dist differ&lt;br /&gt;
 Files /etc/mtree/BSD.include.dist and /etc.backup/mtree/BSD.include.dist differ&lt;br /&gt;
 Files /etc/mtree/BSD.tests.dist and /etc.backup/mtree/BSD.tests.dist differ&lt;br /&gt;
 Files /etc/mtree/BSD.usr.dist and /etc.backup/mtree/BSD.usr.dist differ&lt;br /&gt;
 Files /etc/pkg/FreeBSD.conf and /etc.backup/pkg/FreeBSD.conf differ&lt;br /&gt;
 Files /etc/rc.d/iovctl and /etc.backup/rc.d/iovctl differ&lt;br /&gt;
 Files /etc/rc.d/ipfilter and /etc.backup/rc.d/ipfilter differ&lt;br /&gt;
 Files /etc/rc.d/kld and /etc.backup/rc.d/kld differ&lt;br /&gt;
 Files /etc/rc.d/sendmail and /etc.backup/rc.d/sendmail differ&lt;br /&gt;
 Files /etc/rc.d/var_run and /etc.backup/rc.d/var_run differ&lt;br /&gt;
 Files /etc/regdomain.xml and /etc.backup/regdomain.xml differ&lt;br /&gt;
 Files /etc/services and /etc.backup/services differ&lt;br /&gt;
 Files /etc/ssh/moduli and /etc.backup/ssh/moduli differ&lt;br /&gt;
 Files /etc/ssh/sshd_config and /etc.backup/ssh/sshd_config differ&lt;br /&gt;
&lt;br /&gt;
Все файлы конфигурации ОС, которые не редактировались вручную, обновлены автоматически.&lt;br /&gt;
&lt;br /&gt;
== Обновление FreeBSD с версии 14.3-RELEASE до версии 15-RELEASE ==&lt;br /&gt;
&lt;br /&gt;
Повышение старшей версии ОС:&lt;br /&gt;
 # freebsd-update upgrade -r 15.0-RELEASE&lt;br /&gt;
 src component not installed, skipped&lt;br /&gt;
 Looking up update.FreeBSD.org mirrors... 3 mirrors found.&lt;br /&gt;
 Fetching metadata signature for 14.3-RELEASE from update1.freebsd.org... done.&lt;br /&gt;
 Fetching metadata index... done.&lt;br /&gt;
 Inspecting system... done.&lt;br /&gt;
 &lt;br /&gt;
 The following components of FreeBSD seem to be installed:&lt;br /&gt;
 kernel/generic world/base&lt;br /&gt;
 &lt;br /&gt;
 The following components of FreeBSD do not seem to be installed:&lt;br /&gt;
 kernel/generic-dbg world/base-dbg world/lib32 world/lib32-dbg&lt;br /&gt;
 &lt;br /&gt;
 Does this look reasonable (y/n)?&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://wiki.bsdhowto.ru/index.php?title=FreeBSD_Update&amp;diff=262</id>
		<title>FreeBSD Update</title>
		<link rel="alternate" type="text/html" href="https://wiki.bsdhowto.ru/index.php?title=FreeBSD_Update&amp;diff=262"/>
		<updated>2025-12-16T15:50:57Z</updated>

		<summary type="html">&lt;p&gt;Igor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Подготовка к установке обновлений безопасности FreeBSD ==&lt;br /&gt;
&lt;br /&gt;
Проверка текущей версии ОС:&lt;br /&gt;
&lt;br /&gt;
 # freebsd-version -ku&lt;br /&gt;
 14.2-RELEASE&lt;br /&gt;
 14.2-RELEASE&lt;br /&gt;
&lt;br /&gt;
Перед скачиванием и установкой обновлений безопасности FreeBSD следует сделать резервную копию файлов конфигурации ОС.&lt;br /&gt;
&lt;br /&gt;
 # cp -Rp /etc /etc.backup&lt;br /&gt;
&lt;br /&gt;
== Скачивание и установка бинарных обновлений безопасности FreeBSD с последующей перезагрузкой ==&lt;br /&gt;
&lt;br /&gt;
Скачивание бинарных обновлений ОС:&lt;br /&gt;
 # freebsd-update fetch&lt;br /&gt;
&lt;br /&gt;
Установка бинарных обновлений ОС: ==&lt;br /&gt;
 # freebsd-update install&lt;br /&gt;
 src component not installed, skipped&lt;br /&gt;
 Creating snapshot of existing boot environment... done.&lt;br /&gt;
 Installing updates...&lt;br /&gt;
 Restarting sshd after upgrade&lt;br /&gt;
 Performing sanity check on sshd configuration.&lt;br /&gt;
 Stopping sshd.&lt;br /&gt;
 Performing sanity check on sshd configuration.&lt;br /&gt;
 Starting sshd.&lt;br /&gt;
 Scanning /usr/share/certs/untrusted for certificates...&lt;br /&gt;
 Scanning /usr/share/certs/trusted for certificates...&lt;br /&gt;
  done.&lt;br /&gt;
&lt;br /&gt;
Перезагрузка FreeBSD после установки бинарных обновлений безопасности ОС:&lt;br /&gt;
 # reboot&lt;br /&gt;
&lt;br /&gt;
== Проверка установленной версии FreeBSD ==&lt;br /&gt;
&lt;br /&gt;
 # freebsd-version -ku&lt;br /&gt;
 14.2-RELEASE-p1&lt;br /&gt;
 14.2-RELEASE-p7&lt;br /&gt;
&lt;br /&gt;
Сравнение списков предыдущих и обновлённых файлов конфигурации после обновления ОС:&lt;br /&gt;
 # diff -rq /etc /etc.backup&lt;br /&gt;
 Only in /etc.backup/ssl/certs: 08063a00.0&lt;br /&gt;
 Only in /etc.backup/ssl/certs: 18856ac4.0&lt;br /&gt;
 Only in /etc.backup/ssl/certs: 57bcb2da.0&lt;br /&gt;
 Only in /etc.backup/ssl/certs: 5e98733a.0&lt;br /&gt;
 Only in /etc/ssl/certs: 616816f6.0&lt;br /&gt;
 Only in /etc/ssl/certs: 6a9bdba3.0&lt;br /&gt;
 Only in /etc/ssl/certs: 878d9bca.0&lt;br /&gt;
 Only in /etc/ssl/certs: a09a51ae.0&lt;br /&gt;
 Only in /etc/ssl/certs: b8d25de6.0&lt;br /&gt;
 Only in /etc/ssl/certs: ba8887ce.0&lt;br /&gt;
 Only in /etc/ssl/certs: ffdd40f9.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 03179a64.0&lt;br /&gt;
 Only in /etc/ssl/untrusted: 08063a00.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 080911ac.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 157753a5.0&lt;br /&gt;
 Only in /etc/ssl/untrusted: 18856ac4.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 2c543cd1.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 2e5ac55d.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 3e45d192.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 4a6481c9.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 5273a94c.0&lt;br /&gt;
 Only in /etc/ssl/untrusted: 57bcb2da.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 5c44d531.0&lt;br /&gt;
 Only in /etc/ssl/untrusted: 5e98733a.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 76cb8f92.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 861a399d.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 9c2e7d30.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: d853d49e.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: f3377b1b.0&lt;br /&gt;
&lt;br /&gt;
С 01 октября 2025 года срок поддержки FreeBSD 14.2-RELEASE истёк. И проблемы безопасности, обнаруженные после этой даты, исправляться не будут.&lt;br /&gt;
&lt;br /&gt;
 # freebsd-update fetch&lt;br /&gt;
 src component not installed, skipped&lt;br /&gt;
 Looking up update.FreeBSD.org mirrors... 3 mirrors found.&lt;br /&gt;
 Fetching metadata signature for 14.2-RELEASE from update1.freebsd.org... done.&lt;br /&gt;
 Fetching metadata index... done.&lt;br /&gt;
 Inspecting system... done.&lt;br /&gt;
 Preparing to download files... done.&lt;br /&gt;
 &lt;br /&gt;
 No updates needed to update system to 14.2-RELEASE-p7.&lt;br /&gt;
 &lt;br /&gt;
 WARNING: FreeBSD 14.2-RELEASE HAS PASSED ITS END-OF-LIFE DATE.&lt;br /&gt;
 Any security issues discovered after Wed Oct  1 03:00:00 MSK 2025&lt;br /&gt;
 will not have been corrected.&lt;br /&gt;
&lt;br /&gt;
Вывод команды сообщает об этом. Потребуется повышение версии ОС.&lt;br /&gt;
&lt;br /&gt;
== Обновление FreeBSD с версии 14.2-RELEASE до 14.3-RELEASE ==&lt;br /&gt;
&lt;br /&gt;
Повышение младшей версии ОС:&lt;br /&gt;
&lt;br /&gt;
 # freebsd-update upgrade -r 14.3-RELEASE&lt;br /&gt;
 src component not installed, skipped&lt;br /&gt;
 Looking up update.FreeBSD.org mirrors... 3 mirrors found.&lt;br /&gt;
 Fetching metadata signature for 14.2-RELEASE from update1.freebsd.org... done.&lt;br /&gt;
 Fetching metadata index... done.&lt;br /&gt;
 Fetching 1 metadata files... done.&lt;br /&gt;
 Inspecting system... done.&lt;br /&gt;
 &lt;br /&gt;
 The following components of FreeBSD seem to be installed:&lt;br /&gt;
 kernel/generic kernel/generic-dbg world/base world/lib32&lt;br /&gt;
 &lt;br /&gt;
 The following components of FreeBSD do not seem to be installed:&lt;br /&gt;
 world/base-dbg world/lib32-dbg&lt;br /&gt;
 &lt;br /&gt;
 Does this look reasonable (y/n)?&lt;br /&gt;
&lt;br /&gt;
Вывод команды спросит согласие на установку компонентов ОС.&lt;br /&gt;
 To install the downloaded upgrades, run &#039;freebsd-update [options] install&#039;.&lt;br /&gt;
&lt;br /&gt;
Вывод команды предложит сделать продолжение обновления ОС:&lt;br /&gt;
 # freebsd-update install&lt;br /&gt;
 src component not installed, skipped&lt;br /&gt;
 Creating snapshot of existing boot environment... done.&lt;br /&gt;
 Installing updates...&lt;br /&gt;
 Kernel updates have been installed.  Please reboot and run&lt;br /&gt;
 &#039;freebsd-update [options] install&#039; again to finish installing updates.&lt;br /&gt;
&lt;br /&gt;
Вывод команды предложит сделать перезагрузку ОС и продолжить обновление ОС:&lt;br /&gt;
 # reboot&lt;br /&gt;
&lt;br /&gt;
 # freebsd-update install&lt;br /&gt;
&lt;br /&gt;
Сравнение списков предыдущих и обновлённых файлов конфигурации после повышения версии ОС:&lt;br /&gt;
 # diff -rq /etc /etc.backup&lt;br /&gt;
 Files /etc/autofs/special_media and /etc.backup/autofs/special_media differ&lt;br /&gt;
 Files /etc/defaults/periodic.conf and /etc.backup/defaults/periodic.conf differ&lt;br /&gt;
 Files /etc/defaults/rc.conf and /etc.backup/defaults/rc.conf differ&lt;br /&gt;
 Files /etc/devd/iwmbtfw.conf and /etc.backup/devd/iwmbtfw.conf differ&lt;br /&gt;
 Only in /etc/devd: rtlbtfw.conf&lt;br /&gt;
 Files /etc/mtree/BSD.debug.dist and /etc.backup/mtree/BSD.debug.dist differ&lt;br /&gt;
 Files /etc/mtree/BSD.include.dist and /etc.backup/mtree/BSD.include.dist differ&lt;br /&gt;
 Files /etc/mtree/BSD.tests.dist and /etc.backup/mtree/BSD.tests.dist differ&lt;br /&gt;
 Files /etc/mtree/BSD.usr.dist and /etc.backup/mtree/BSD.usr.dist differ&lt;br /&gt;
 Files /etc/pkg/FreeBSD.conf and /etc.backup/pkg/FreeBSD.conf differ&lt;br /&gt;
 Files /etc/rc.d/iovctl and /etc.backup/rc.d/iovctl differ&lt;br /&gt;
 Files /etc/rc.d/ipfilter and /etc.backup/rc.d/ipfilter differ&lt;br /&gt;
 Files /etc/rc.d/kld and /etc.backup/rc.d/kld differ&lt;br /&gt;
 Files /etc/rc.d/sendmail and /etc.backup/rc.d/sendmail differ&lt;br /&gt;
 Files /etc/rc.d/var_run and /etc.backup/rc.d/var_run differ&lt;br /&gt;
 Files /etc/regdomain.xml and /etc.backup/regdomain.xml differ&lt;br /&gt;
 Files /etc/services and /etc.backup/services differ&lt;br /&gt;
 Files /etc/ssh/moduli and /etc.backup/ssh/moduli differ&lt;br /&gt;
 Files /etc/ssh/sshd_config and /etc.backup/ssh/sshd_config differ&lt;br /&gt;
&lt;br /&gt;
Все файлы конфигурации ОС, которые не редактировались вручную, обновлены автоматически.&lt;br /&gt;
&lt;br /&gt;
== Обновление FreeBSD с версии 14.3-RELEASE до версии 15-RELEASE ==&lt;br /&gt;
&lt;br /&gt;
Повышение старшей версии ОС:&lt;br /&gt;
 # freebsd-update upgrade -r 15.0-RELEASE&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://wiki.bsdhowto.ru/index.php?title=RoundCube&amp;diff=261</id>
		<title>RoundCube</title>
		<link rel="alternate" type="text/html" href="https://wiki.bsdhowto.ru/index.php?title=RoundCube&amp;diff=261"/>
		<updated>2025-12-14T08:25:41Z</updated>

		<summary type="html">&lt;p&gt;Igor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Установка roundcube-php84 ==&lt;br /&gt;
&lt;br /&gt;
RoundCube - .&lt;br /&gt;
&lt;br /&gt;
Подробная информация о &lt;br /&gt;
&lt;br /&gt;
Установка из пакета (предварительная установка пакетов PKG и PHP не требуется, дополнительная информация о которых в статьях [[PKG]] и [[PHP+Nginx|Установка lang/php84]]; потребуется установка СУБД, например - MySQL, дополнительная информация о которой в статье [[MySQL]]):&lt;br /&gt;
 # pkg install roundcube-php84&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://wiki.bsdhowto.ru/index.php?title=RoundCube&amp;diff=260</id>
		<title>RoundCube</title>
		<link rel="alternate" type="text/html" href="https://wiki.bsdhowto.ru/index.php?title=RoundCube&amp;diff=260"/>
		<updated>2025-12-14T08:21:28Z</updated>

		<summary type="html">&lt;p&gt;Igor: Новая страница: «   pkg install roundcube-php84»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
 pkg install roundcube-php84&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://wiki.bsdhowto.ru/index.php?title=%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0&amp;diff=259</id>
		<title>Заглавная страница</title>
		<link rel="alternate" type="text/html" href="https://wiki.bsdhowto.ru/index.php?title=%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0&amp;diff=259"/>
		<updated>2025-12-13T01:49:20Z</updated>

		<summary type="html">&lt;p&gt;Igor: /* Вопросы безопасности */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== FreeBSD ===&lt;br /&gt;
&lt;br /&gt;
* [[PKG]]&lt;br /&gt;
* [[gitup]]&lt;br /&gt;
&lt;br /&gt;
=== Вопросы безопасности  ===&lt;br /&gt;
* [[FreeBSD Update|Обновление ОС FreeBSD]]&lt;br /&gt;
* [[Система Periodic]]&lt;br /&gt;
* [[Sudo]]&lt;br /&gt;
* [[SSHGuard]]&lt;br /&gt;
* [[Qjail]]&lt;br /&gt;
* [[Certbot]]&lt;br /&gt;
&lt;br /&gt;
=== Сервисы ===&lt;br /&gt;
* [[MySQL]]&lt;br /&gt;
* [[PHP+Nginx]]&lt;br /&gt;
* [[Clamav+Dovecot+Exim]]&lt;br /&gt;
* [[Asterisk]]&lt;br /&gt;
&lt;br /&gt;
=== Web-интерфейсы === &lt;br /&gt;
* [[Postfix Admin]]&lt;br /&gt;
* [[RoundCube]]&lt;br /&gt;
* [[WordPress]]&lt;br /&gt;
* [[MediaWiki]]&lt;br /&gt;
* [[Asterisk CDR Viewer Mod]]&lt;br /&gt;
&lt;br /&gt;
== Утилиты ==&lt;br /&gt;
* [[Imapsync]]&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://wiki.bsdhowto.ru/index.php?title=%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0&amp;diff=258</id>
		<title>Заглавная страница</title>
		<link rel="alternate" type="text/html" href="https://wiki.bsdhowto.ru/index.php?title=%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0&amp;diff=258"/>
		<updated>2025-12-13T01:48:57Z</updated>

		<summary type="html">&lt;p&gt;Igor: /* Вопросы безопасности */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== FreeBSD ===&lt;br /&gt;
&lt;br /&gt;
* [[PKG]]&lt;br /&gt;
* [[gitup]]&lt;br /&gt;
&lt;br /&gt;
=== Вопросы безопасности  ===&lt;br /&gt;
* [[FreeBSD Update|Обновление ОС FreeBSD]]&lt;br /&gt;
* [[]Система Periodic]&lt;br /&gt;
* [[Sudo]]&lt;br /&gt;
* [[SSHGuard]]&lt;br /&gt;
* [[Qjail]]&lt;br /&gt;
* [[Certbot]]&lt;br /&gt;
&lt;br /&gt;
=== Сервисы ===&lt;br /&gt;
* [[MySQL]]&lt;br /&gt;
* [[PHP+Nginx]]&lt;br /&gt;
* [[Clamav+Dovecot+Exim]]&lt;br /&gt;
* [[Asterisk]]&lt;br /&gt;
&lt;br /&gt;
=== Web-интерфейсы === &lt;br /&gt;
* [[Postfix Admin]]&lt;br /&gt;
* [[RoundCube]]&lt;br /&gt;
* [[WordPress]]&lt;br /&gt;
* [[MediaWiki]]&lt;br /&gt;
* [[Asterisk CDR Viewer Mod]]&lt;br /&gt;
&lt;br /&gt;
== Утилиты ==&lt;br /&gt;
* [[Imapsync]]&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://wiki.bsdhowto.ru/index.php?title=Certbot&amp;diff=257</id>
		<title>Certbot</title>
		<link rel="alternate" type="text/html" href="https://wiki.bsdhowto.ru/index.php?title=Certbot&amp;diff=257"/>
		<updated>2025-12-10T17:43:56Z</updated>

		<summary type="html">&lt;p&gt;Igor: /* Установка security/py-certbot-nginx */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Установка security/py-certbot ==&lt;br /&gt;
&lt;br /&gt;
Certbot — это инструмент для автоматического получения и установки сертификатов X.509 для включения TLS на серверах. Клиент будет взаимодействовать с центром сертификации Let&#039;s Encrypt, который будет выдавать бесплатные сертификаты, доверенные браузеру.&lt;br /&gt;
&lt;br /&gt;
== Установка security/py-certbot-nginx ==&lt;br /&gt;
&lt;br /&gt;
Это plug-in для Nginx.&lt;br /&gt;
&lt;br /&gt;
Установка пакета (предварительная установка менеджера пакетов PKG не требуется, дополнительная информация о котором в статье [[PKG]]):&lt;br /&gt;
 # pkg install py311-certbot-nginx&lt;br /&gt;
&lt;br /&gt;
Получение сертификата:&lt;br /&gt;
 # certbot certonly --standalone -d mydomain.ru&lt;br /&gt;
&lt;br /&gt;
== Получение сертификата для сайта на Nginx ==&lt;br /&gt;
&lt;br /&gt;
Получение сертификата:&lt;br /&gt;
 # certbot --nginx -d site.mydomain.ru&lt;br /&gt;
 Saving debug log to /var/log/letsencrypt/letsencrypt.log&lt;br /&gt;
 Enter email address (used for urgent renewal and security notices)&lt;br /&gt;
  (Enter &#039;c&#039; to cancel): ***@mail.ru&lt;br /&gt;
 &lt;br /&gt;
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
 Please read the Terms of Service at&lt;br /&gt;
 https://letsencrypt.org/documents/LE-SA-v1.5-February-24-2025.pdf. You must&lt;br /&gt;
 agree in order to register with the ACME server. Do you agree?&lt;br /&gt;
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
 (Y)es/(N)o: y&lt;br /&gt;
 &lt;br /&gt;
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
 Would you be willing, once your first certificate is successfully issued, to&lt;br /&gt;
 share your email address with the Electronic Frontier Foundation, a founding&lt;br /&gt;
 partner of the Let&#039;s Encrypt project and the non-profit organization that&lt;br /&gt;
 develops Certbot? We&#039;d like to send you email about our work encrypting the web,&lt;br /&gt;
 EFF news, campaigns, and ways to support digital freedom.&lt;br /&gt;
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
 (Y)es/(N)o: y&lt;br /&gt;
 Account registered.&lt;br /&gt;
 Requesting a certificate for site.mydomain.ru&lt;br /&gt;
 &lt;br /&gt;
 Successfully received certificate.&lt;br /&gt;
 Certificate is saved at: /usr/local/etc/letsencrypt/live/site.mydomain.ru/fullchain.pem&lt;br /&gt;
 Key is saved at:         /usr/local/etc/letsencrypt/live/site.mydomain.ru/privkey.pem&lt;br /&gt;
 This certificate expires on 2025-07-27.&lt;br /&gt;
 These files will be updated when the certificate renews.&lt;br /&gt;
 &lt;br /&gt;
 Deploying certificate&lt;br /&gt;
 Successfully deployed certificate for mailadmin.bsdhowto.ru to /usr/local/etc/nginx/site.mydomain.ru.conf&lt;br /&gt;
 Congratulations! You have successfully enabled HTTPS on https://site.mydomain.ru&lt;br /&gt;
 &lt;br /&gt;
 NEXT STEPS:&lt;br /&gt;
 - The certificate will need to be renewed before it expires. Certbot can automatically renew the certificate in the background, but you may need to take steps to enable that &lt;br /&gt;
 functionality. See https://certbot.org/renewal-setup for instructions.&lt;br /&gt;
 &lt;br /&gt;
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
 If you like Certbot, please consider supporting our work by:&lt;br /&gt;
  * Donating to ISRG / Let&#039;s Encrypt:   https://letsencrypt.org/donate&lt;br /&gt;
  * Donating to EFF:                    https://eff.org/donate-le&lt;br /&gt;
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
&lt;br /&gt;
== Включение автоматического обновления сертификатов ==&lt;br /&gt;
&lt;br /&gt;
 # echo &#039;weekly_certbot_enable=&amp;quot;YES&amp;quot;&#039; &amp;gt;&amp;gt; /etc/periodic.conf&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://wiki.bsdhowto.ru/index.php?title=Certbot&amp;diff=256</id>
		<title>Certbot</title>
		<link rel="alternate" type="text/html" href="https://wiki.bsdhowto.ru/index.php?title=Certbot&amp;diff=256"/>
		<updated>2025-12-06T03:14:16Z</updated>

		<summary type="html">&lt;p&gt;Igor: /* Установка security/py-certbot-nginx */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Установка security/py-certbot ==&lt;br /&gt;
&lt;br /&gt;
Certbot — это инструмент для автоматического получения и установки сертификатов X.509 для включения TLS на серверах. Клиент будет взаимодействовать с центром сертификации Let&#039;s Encrypt, который будет выдавать бесплатные сертификаты, доверенные браузеру.&lt;br /&gt;
&lt;br /&gt;
== Установка security/py-certbot-nginx ==&lt;br /&gt;
&lt;br /&gt;
Это plug-in для Nginx.&lt;br /&gt;
&lt;br /&gt;
Установка пакета (предварительная установка менеджера пакетов PKG не требуется, дополнительная информация о котором в статье [[PKG]]):&lt;br /&gt;
 # pkg install py311-certbot-nginx&lt;br /&gt;
&lt;br /&gt;
== Получение сертификата для сайта на Nginx ==&lt;br /&gt;
&lt;br /&gt;
Получение сертификата:&lt;br /&gt;
 # certbot --nginx -d site.mydomain.ru&lt;br /&gt;
 Saving debug log to /var/log/letsencrypt/letsencrypt.log&lt;br /&gt;
 Enter email address (used for urgent renewal and security notices)&lt;br /&gt;
  (Enter &#039;c&#039; to cancel): ***@mail.ru&lt;br /&gt;
 &lt;br /&gt;
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
 Please read the Terms of Service at&lt;br /&gt;
 https://letsencrypt.org/documents/LE-SA-v1.5-February-24-2025.pdf. You must&lt;br /&gt;
 agree in order to register with the ACME server. Do you agree?&lt;br /&gt;
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
 (Y)es/(N)o: y&lt;br /&gt;
 &lt;br /&gt;
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
 Would you be willing, once your first certificate is successfully issued, to&lt;br /&gt;
 share your email address with the Electronic Frontier Foundation, a founding&lt;br /&gt;
 partner of the Let&#039;s Encrypt project and the non-profit organization that&lt;br /&gt;
 develops Certbot? We&#039;d like to send you email about our work encrypting the web,&lt;br /&gt;
 EFF news, campaigns, and ways to support digital freedom.&lt;br /&gt;
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
 (Y)es/(N)o: y&lt;br /&gt;
 Account registered.&lt;br /&gt;
 Requesting a certificate for site.mydomain.ru&lt;br /&gt;
 &lt;br /&gt;
 Successfully received certificate.&lt;br /&gt;
 Certificate is saved at: /usr/local/etc/letsencrypt/live/site.mydomain.ru/fullchain.pem&lt;br /&gt;
 Key is saved at:         /usr/local/etc/letsencrypt/live/site.mydomain.ru/privkey.pem&lt;br /&gt;
 This certificate expires on 2025-07-27.&lt;br /&gt;
 These files will be updated when the certificate renews.&lt;br /&gt;
 &lt;br /&gt;
 Deploying certificate&lt;br /&gt;
 Successfully deployed certificate for mailadmin.bsdhowto.ru to /usr/local/etc/nginx/site.mydomain.ru.conf&lt;br /&gt;
 Congratulations! You have successfully enabled HTTPS on https://site.mydomain.ru&lt;br /&gt;
 &lt;br /&gt;
 NEXT STEPS:&lt;br /&gt;
 - The certificate will need to be renewed before it expires. Certbot can automatically renew the certificate in the background, but you may need to take steps to enable that &lt;br /&gt;
 functionality. See https://certbot.org/renewal-setup for instructions.&lt;br /&gt;
 &lt;br /&gt;
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
 If you like Certbot, please consider supporting our work by:&lt;br /&gt;
  * Donating to ISRG / Let&#039;s Encrypt:   https://letsencrypt.org/donate&lt;br /&gt;
  * Donating to EFF:                    https://eff.org/donate-le&lt;br /&gt;
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;br /&gt;
&lt;br /&gt;
== Включение автоматического обновления сертификатов ==&lt;br /&gt;
&lt;br /&gt;
 # echo &#039;weekly_certbot_enable=&amp;quot;YES&amp;quot;&#039; &amp;gt;&amp;gt; /etc/periodic.conf&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://wiki.bsdhowto.ru/index.php?title=Postfix_Admin&amp;diff=255</id>
		<title>Postfix Admin</title>
		<link rel="alternate" type="text/html" href="https://wiki.bsdhowto.ru/index.php?title=Postfix_Admin&amp;diff=255"/>
		<updated>2025-12-05T17:56:06Z</updated>

		<summary type="html">&lt;p&gt;Igor: /* Окончательная настройка сайта */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Установка postfixadmin-php84 ==&lt;br /&gt;
&lt;br /&gt;
Postfix Admin — веб-инструмент управления, написанный на PHP для Postfix (но прекрасно подходит и для Exim) с виртуальными доменами в стиле Postfix, использующими поиск в MySQL или PostgreSQL. Так-же Postfix Admin работает на Apache, Lighttpd и на любом веб-сервере с поддержкой PHP 5.1.2+.&lt;br /&gt;
&lt;br /&gt;
Подробная информация о Postfix Admin на сайте http://www.postfixadmin.org/&lt;br /&gt;
&lt;br /&gt;
Установка из пакета (предварительная установка пакетов PKG и PHP не требуется, дополнительная информация о которых в статьях [[PKG]] и [[PHP+Nginx|Установка lang/php84]]; потребуется установка СУБД, например - MySQL, дополнительная информация о которой в статье [[MySQL]]):&lt;br /&gt;
 # pkg install postfixadmin-php84&lt;br /&gt;
&lt;br /&gt;
Проверка установки postfixadmin-php84:&lt;br /&gt;
 # pkg version -v | grep php84&lt;br /&gt;
 php84-8.4.5_1                      =   up-to-date with remote&lt;br /&gt;
 php84-mbstring-8.4.5_1             =   up-to-date with remote&lt;br /&gt;
 php84-pdo-8.4.5_1                  =   up-to-date with remote&lt;br /&gt;
 php84-pdo_sqlite-8.4.5_1           =   up-to-date with remote&lt;br /&gt;
 php84-pecl-imap-1.0.3              =   up-to-date with remote&lt;br /&gt;
 php84-session-8.4.5_1              =   up-to-date with remote&lt;br /&gt;
 postfixadmin-php84-3.4.d.20211018  =   up-to-date with remote&lt;br /&gt;
&lt;br /&gt;
Вывод команды содержит список установленных расширений PHP. В списке отсутствует расширение php84-pdo_mysql, которое требуется для СУБД MySQL, если для Postfix Admin будет использована она.&lt;br /&gt;
&lt;br /&gt;
Установка из пакета расширения php84-pdo_mysql:&lt;br /&gt;
 # pkg install php84-pdo_mysql&lt;br /&gt;
 Updating FreeBSD repository catalogue...&lt;br /&gt;
 FreeBSD repository is up to date.&lt;br /&gt;
 All repositories are up to date.&lt;br /&gt;
 The following 1 package(s) will be affected (of 0 checked):&lt;br /&gt;
 &lt;br /&gt;
 New packages to be INSTALLED:&lt;br /&gt;
         php84-pdo_mysql: 8.4.5_1&lt;br /&gt;
 &lt;br /&gt;
 Number of packages to be installed: 1&lt;br /&gt;
 &lt;br /&gt;
 19 KiB to be downloaded.&lt;br /&gt;
 &lt;br /&gt;
 Proceed with this action? [y/N]: y&lt;br /&gt;
 [1/1] Fetching php84-pdo_mysql-8.4.5_1.pkg: 100%   19 KiB  19.7kB/s    00:01&lt;br /&gt;
 Checking integrity... done (0 conflicting)&lt;br /&gt;
 [1/1] Installing php84-pdo_mysql-8.4.5_1...&lt;br /&gt;
 [1/1] Extracting php84-pdo_mysql-8.4.5_1: 100%&lt;br /&gt;
 =====&lt;br /&gt;
 Message from php84-pdo_mysql-8.4.5_1:&lt;br /&gt;
 &lt;br /&gt;
 --&lt;br /&gt;
 This file has been added to automatically load the installed extension:&lt;br /&gt;
 /usr/local/etc/php/ext-30-pdo_mysql.ini.sample&lt;br /&gt;
&lt;br /&gt;
Повторная проверка установки:&lt;br /&gt;
 # pkg version -v | grep php84&lt;br /&gt;
 php84-8.4.5_1                      =   up-to-date with remote&lt;br /&gt;
 php84-mbstring-8.4.5_1             =   up-to-date with remote&lt;br /&gt;
 php84-pdo-8.4.5_1                  =   up-to-date with remote&lt;br /&gt;
 php84-pdo_mysql-8.4.5_1            =   up-to-date with remote&lt;br /&gt;
 php84-pdo_sqlite-8.4.5_1           =   up-to-date with remote&lt;br /&gt;
 php84-pecl-imap-1.0.3              =   up-to-date with remote&lt;br /&gt;
 php84-session-8.4.5_1              =   up-to-date with remote&lt;br /&gt;
 postfixadmin-php84-3.4.d.20211018  =   up-to-date with remote&lt;br /&gt;
&lt;br /&gt;
Вывод команды содержит список всех необходимых установленных расширений PHP.&lt;br /&gt;
&lt;br /&gt;
Перезапуск PHP-FPM после установки расширений PHP:&lt;br /&gt;
 # service php_fpm restart&lt;br /&gt;
 Performing sanity check on php-fpm configuration:&lt;br /&gt;
 [28-Apr-2025 16:58:14] NOTICE: configuration file /usr/local/etc/php-fpm.conf test is successful&lt;br /&gt;
 Stopping php_fpm.&lt;br /&gt;
 Performing sanity check on php-fpm configuration:&lt;br /&gt;
 [28-Apr-2025 16:58:14] NOTICE: configuration file /usr/local/etc/php-fpm.conf test is successful&lt;br /&gt;
 Starting php_fpm.&lt;br /&gt;
&lt;br /&gt;
== Начальная настройка postfixadmin-php84 ==&lt;br /&gt;
&lt;br /&gt;
Копирование структуры сайта:&lt;br /&gt;
 # cd /usr/local/www&lt;br /&gt;
 # cp -Rp postfixadmin mailadmin.mydomain.ru&lt;br /&gt;
&lt;br /&gt;
Настройка сайта Postfix Admin в файле /usr/local/etc/nginx/mailadmin.mydomain.ru.conf:&lt;br /&gt;
 server {&lt;br /&gt;
     listen       80;&lt;br /&gt;
     server_name  mailadmin.mydomain.ru;&lt;br /&gt;
 &lt;br /&gt;
     access_log   /var/log/nginx/mailadmin.mydomain.ru.access.log;&lt;br /&gt;
     error_log    /var/log/nginx/mailadmin.mydomain.ru.error.log;&lt;br /&gt;
 &lt;br /&gt;
     location / {&lt;br /&gt;
         root   /usr/local/www/mailadmin.mydomain.ru/public;&lt;br /&gt;
         index  index.php;&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000&lt;br /&gt;
     #&lt;br /&gt;
     location ~ \.php$ {&lt;br /&gt;
         fastcgi_pass   127.0.0.1:9000;&lt;br /&gt;
         fastcgi_index  index.php;&lt;br /&gt;
         fastcgi_param  SCRIPT_FILENAME  /usr/local/www/mailadmin.mydomain.ru/public$fastcgi_script_name;&lt;br /&gt;
         include        fastcgi_params;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Включение конфигурации сайта Postfix Admin в файл /usr/local/etc/nginx/nginx.conf:&lt;br /&gt;
     include /usr/local/etc/nginx/mailadmin.mydomain.ru.conf;&lt;br /&gt;
&lt;br /&gt;
Перезагрузка конфигурации Nginx после первоначальной настройки сайта для доступа к нему со стороны Let&#039;s Encrypt по HTTP:&lt;br /&gt;
 # service nginx reload&lt;br /&gt;
 Performing sanity check on nginx configuration:&lt;br /&gt;
 nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok&lt;br /&gt;
 nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful&lt;br /&gt;
&lt;br /&gt;
== Получение сертификата ==&lt;br /&gt;
&lt;br /&gt;
Получение сертификата для домена:&lt;br /&gt;
 # certbot --nginx -d mailadmin.mydomain.ru&lt;br /&gt;
&lt;br /&gt;
Скрипт включит следующие строки в файл конфигурации сайта /usr/local/etc/nginx/mailadmin.mydomain.ru.conf: &lt;br /&gt;
     listen 443 ssl; # managed by Certbot&lt;br /&gt;
     ssl_certificate /usr/local/etc/letsencrypt/live/mailadmin.mydomain.ru/fullchain.pem; # managed by Certbot&lt;br /&gt;
     ssl_certificate_key /usr/local/etc/letsencrypt/live/mailadmin.mydomain.ru/privkey.pem; # managed by Certbot&lt;br /&gt;
     include /usr/local/etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot&lt;br /&gt;
     ssl_dhparam /usr/local/etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot&lt;br /&gt;
&lt;br /&gt;
Перезагрузка конфигурации Nginx для включения доступа по HTTPS:&lt;br /&gt;
 # service nginx reload&lt;br /&gt;
 Performing sanity check on nginx configuration:&lt;br /&gt;
 nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok&lt;br /&gt;
 nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful&lt;br /&gt;
&lt;br /&gt;
== Окончательная настройка сайта ==&lt;br /&gt;
&lt;br /&gt;
Настройки Postfix Admin по умолчанию находятся в файле /usr/local/www/mailadmin.mydomain.ru/config.inc.php. Его не рекомендуется изменять на случай обновлений пакета.&lt;br /&gt;
&lt;br /&gt;
Редактирование настроек следует делать в файле /usr/local/www/mailadmin.mydomain.ru/config.local.php (он должен начинаться с префикса):&lt;br /&gt;
 &amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
Параметр означает, что все необходимые настройки внесены в файл /usr/local/www/mailadmin.mydomain.ru/config.local.php:&lt;br /&gt;
 $CONF[&#039;configured&#039;] = true;&lt;br /&gt;
&lt;br /&gt;
Создание хеша установочного пароля:&lt;br /&gt;
 # php -r &#039;echo password_hash(&amp;quot;&amp;lt;пароль&amp;gt;&amp;quot;, PASSWORD_DEFAULT); echo &amp;quot;\n&amp;quot;;&#039;&lt;br /&gt;
 $2y$12$w7H3Vo2EIuHOHRxObmUWZ.DpsujtU5yy8PWbfYxzXBSe2tun/qjTG&lt;br /&gt;
&lt;br /&gt;
Добавление полученного хеша в файл настроек /usr/local/www/mailadmin.mydomain.ru/config.local.php:&lt;br /&gt;
 $CONF[&#039;setup_password&#039;] = &#039;$2y$12$w7H3Vo2EIuHOHRxObmUWZ.DpsujtU5yy8PWbfYxzXBSe2tun/qjTG&#039;;&lt;br /&gt;
&lt;br /&gt;
Настройка языка:&lt;br /&gt;
 $CONF[&#039;default_language&#039;] = &#039;ru&#039;;&lt;br /&gt;
&lt;br /&gt;
Пример настройки доступа Postfix Admin к СУБД в файле /usr/local/www/mailadmin.mydomain.ru/config.local.php&lt;br /&gt;
 $CONF[&#039;database_type&#039;] = &#039;mysqli&#039;;&lt;br /&gt;
 $CONF[&#039;database_host&#039;] = &#039;192.168.0.103&#039;;&lt;br /&gt;
 $CONF[&#039;database_user&#039;] = &#039;mailadmin&#039;;&lt;br /&gt;
 $CONF[&#039;database_password&#039;] = &amp;lt;пароль к базе данных Postfix Admin&amp;gt;;&lt;br /&gt;
 $CONF[&#039;database_name&#039;] = &#039;mailadmin&#039;;&lt;br /&gt;
&lt;br /&gt;
Настройка SMTP-сервера, куда будут отправляться уведомления о создании почтовых ящиков:&lt;br /&gt;
 $CONF[&#039;smtp_server&#039;] = &#039;192.68.0.105&#039;;&lt;br /&gt;
 $CONF[&#039;smtp_port&#039;] = &#039;25&#039;;&lt;br /&gt;
&lt;br /&gt;
Настройка способа шифрования паролей почтовых ящиков (в данном случае пароли сохраняются в базе данных Postfix Admin в открытом виде, что небезопасно):&lt;br /&gt;
 $CONF[&#039;encrypt&#039;] = &#039;cleartext&#039;;&lt;br /&gt;
&lt;br /&gt;
Настройка автоматической генерации паролей:&lt;br /&gt;
 $CONF[&#039;generate_password&#039;] = &#039;YES&#039;;&lt;br /&gt;
&lt;br /&gt;
Настройка хранение почтовых ящиков в папках вида domain/username@domain:&lt;br /&gt;
$CONF[&#039;domain_in_mailbox&#039;] = &#039;YES&#039;;&lt;br /&gt;
&lt;br /&gt;
Создание базы данных Postfix Admin:&lt;br /&gt;
 # mysql -u root -p&lt;br /&gt;
 &lt;br /&gt;
 &amp;gt; create database mailadmin;&lt;br /&gt;
 Query OK, 1 row affected (0.01 sec)&lt;br /&gt;
&lt;br /&gt;
Предоставление доступа пользователю &#039;mailadmin&#039; к базе данных &#039;mailadmin&#039; с хоста &#039;&amp;lt;IP-адрес&amp;gt;&#039; (потребуется доступ с хостов, где расположены Postfix Admin, SMTP-сервер и IMAP-сервер) и применение изменений:&lt;br /&gt;
 &amp;gt; create user &#039;mailadmin&#039;@&#039;&amp;lt;IP-адрес&amp;gt;&#039; identified by &#039;&amp;lt;пароль&amp;gt;&#039;;&lt;br /&gt;
 Query OK, 0 rows affected (0.04 sec)&lt;br /&gt;
 &lt;br /&gt;
 &amp;gt; grant all on mailadmin.* to &#039;mailadmin&#039;@&#039;&amp;lt;IP-адрес&amp;gt;&#039;;&lt;br /&gt;
 Query OK, 0 rows affected (0.00 sec)&lt;br /&gt;
 &lt;br /&gt;
 &amp;gt; flush privileges;&lt;br /&gt;
 Query OK, 0 rows affected (0.01 sec)&lt;br /&gt;
&lt;br /&gt;
Переход на сайт:&lt;br /&gt;
 https://mailadmin.mydomain.ru/setup.php&lt;br /&gt;
&lt;br /&gt;
Вывод команды содержит ошибки:&lt;br /&gt;
 Errors (MUST be fixed)&lt;br /&gt;
 ⛔Database connection string : mysql:mysql:host=192.168.128.13;dbname=mailadmin;charset=UTF8&lt;br /&gt;
 ⛔Problem connecting to database, check database configuration ($CONF[&#039;database_*&#039;] entries in config.local.php)&lt;br /&gt;
 ⛔SQLSTATE[HY000] [2002] No such file or directory&lt;br /&gt;
&lt;br /&gt;
Параметр &amp;quot;Database connection string&amp;quot; содержит строку &amp;quot;&#039;&#039;&#039;mysql:mysql:&#039;&#039;&#039;host=192.168.0.103;dbname=mailadmin;charset=UTF8&amp;quot;, в которой дублируется подстрока &amp;quot;mysql:&amp;quot;. Требуется исправление ошибки в функции &amp;quot;function db_connection_string()&amp;quot; в файле /usr/local/www/mailadmin.mydomain.ru/functions.inc.php:&lt;br /&gt;
 $dsn = &#039;mysql:&#039;;&lt;br /&gt;
 if ($socket) {&lt;br /&gt;
     $dsn .= &amp;quot;unix_socket={$socket}&amp;quot;;&lt;br /&gt;
 } else {&lt;br /&gt;
     $dsn .= &amp;quot;mysql:host={$CONF[&#039;database_host&#039;]}&amp;quot;;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Необходима замена строки:&lt;br /&gt;
     $dsn .= &amp;quot;mysql:host={$CONF[&#039;database_host&#039;]}&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
на строку:&lt;br /&gt;
     $dsn .= &amp;quot;host={$CONF[&#039;database_host&#039;]}&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
Пример вывода сайта:&lt;br /&gt;
 ✅ PHP version - 8.4.12 &lt;br /&gt;
 ✅ Postfixadmin public url detected as http://mailadmin.mydomain.ru/ use $CONF[&#039;site_url&#039;] to override&lt;br /&gt;
 ✅ Postfixadmin installed at - /usr/local/www/mailadmin.mydomain.ru/public&lt;br /&gt;
 ✅ config.local.php file found : /usr/local/www/mailadmin.mydomain.ru/config.local.php&lt;br /&gt;
 ✅ Database - MySQL support available&lt;br /&gt;
 ✅ Database - SQLite support available&lt;br /&gt;
 ✅ Password hashing - $CONF[&amp;quot;encrypt&amp;quot;] = cleartext&lt;br /&gt;
 ✅ Password hashing - $CONF[&amp;quot;encrypt&amp;quot;] - hash generation OK&lt;br /&gt;
 ✅ Database connection configured OK (using PDO mysql:host=192.168.0.103;dbname=mailadmin;charset=UTF8)&lt;br /&gt;
 ✅ Database connection - Connected OK&lt;br /&gt;
 ✅ Depends on: PHP session support - OK&lt;br /&gt;
 ✅ Depends on: PHP pcre support - OK&lt;br /&gt;
 ✅ Depends on: PHP mbstring support - OK&lt;br /&gt;
 ✅ Optional - PHP IMAP functions - OK&lt;br /&gt;
&lt;br /&gt;
Сайт предложит настроить учётную запись администратора, после чего можно использовать Postfix Admin для администрирования почтовых доменов, ящиков и алиасов.&lt;br /&gt;
&lt;br /&gt;
Приглашение в управление Postfix Admin:&lt;br /&gt;
[[Файл:2025050201.png|left|мини]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
Вид главной страницы Postfix Admin:&lt;br /&gt;
[[Файл:2025050202.png|left|мини]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
Пример почтового алиаса домена и домена, на который будет приходить почта:&lt;br /&gt;
[[Файл:2025050203.png|left|мини]]&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://wiki.bsdhowto.ru/index.php?title=Clamav%2BDovecot%2BExim&amp;diff=254</id>
		<title>Clamav+Dovecot+Exim</title>
		<link rel="alternate" type="text/html" href="https://wiki.bsdhowto.ru/index.php?title=Clamav%2BDovecot%2BExim&amp;diff=254"/>
		<updated>2025-12-05T17:51:12Z</updated>

		<summary type="html">&lt;p&gt;Igor: /* Настройка Dovecot */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Подготовка клетки для Clamav+Dovecot+Exim ==&lt;br /&gt;
&lt;br /&gt;
Перед использованием этой статьи рекомендуется пройти по ссылке [[Qjail|Qjail]].&lt;br /&gt;
&lt;br /&gt;
Создание отдельной файловой системы для клетки с Clamav+Dovecot+Exim в ZFS::&lt;br /&gt;
 # zfs create zroot/usr/jails/mail&lt;br /&gt;
&lt;br /&gt;
Создание клетки c именем &amp;quot;mail&amp;quot; и IPv4-адресом &amp;quot;192.168.0.105&amp;quot;, запуск и управление клеткой:&lt;br /&gt;
 # qjail create -4 192.168.0.105 mail&lt;br /&gt;
 # qjail start mail&lt;br /&gt;
 # qjail console mail&lt;br /&gt;
&lt;br /&gt;
== Установка security/clamav ==&lt;br /&gt;
&lt;br /&gt;
Clam Antivirus - антивирусный сканер, который можно использовать для почтовых систем.&lt;br /&gt;
&lt;br /&gt;
Подробная информация на сайте https://www.clamav.net/&lt;br /&gt;
&lt;br /&gt;
Установка из пакета:&lt;br /&gt;
 # pkg install clamav&lt;br /&gt;
&lt;br /&gt;
== Установка Dovecot ==&lt;br /&gt;
&lt;br /&gt;
Установка из пакета:&lt;br /&gt;
 # pkg install dovecot_mysql&lt;br /&gt;
&lt;br /&gt;
Установка автозапуска Dovecot в /etc/rc.conf:&lt;br /&gt;
 # sysrc dovecot_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
 dovecot_enable:  -&amp;gt; YES&lt;br /&gt;
&lt;br /&gt;
== Настройка Dovecot ==&lt;br /&gt;
&lt;br /&gt;
Копирование файлов настроек:&lt;br /&gt;
 # cp -Rpv /usr/local/etc/dovecot/example-config/* /usr/local/etc/dovecot&lt;br /&gt;
&lt;br /&gt;
Пример настроек в /usr/local/etc/dovecot/dovecot.conf:&lt;br /&gt;
 # Использование протоколов IMAP и LMTP:&lt;br /&gt;
 protocols = imap lmtp&lt;br /&gt;
 # Использование всех IPv4 данного хоста (можно указать необходимые IP-адреса):&lt;br /&gt;
 listen = *&lt;br /&gt;
&lt;br /&gt;
Проверка протокола LMTP:&lt;br /&gt;
 # sockstat -l | grep lmtp&lt;br /&gt;
 root     dovecot    45657 25  stream /var/run/dovecot/lmtp&lt;br /&gt;
&lt;br /&gt;
Пример настроек в /usr/local/etc/dovecot/dovecot-sql.conf.ext:&lt;br /&gt;
 # Использование СУБД MySQL&lt;br /&gt;
 driver = mysql&lt;br /&gt;
 # Строка подключения к базе данных Postfix Admin&lt;br /&gt;
 connect = host=192.168.0.103 dbname=mailadmin user=mailadmin password=&amp;lt;пароль к БД&amp;gt;&lt;br /&gt;
 # Хранение паролей пользователей почты в базе данных Postfix Admin в открытом виде (это небезопасный способ, но можно оставить по умолчанию MD5):&lt;br /&gt;
 default_pass_scheme = PLAIN&lt;br /&gt;
 # Запрос к базе данных Postfix Admin для получения информации о пользователе, например, о расположении почтового ящика:&lt;br /&gt;
 user_query = select concat(&#039;/var/spool/dovecot/&#039;, maildir) as home, 143 as uid, 143 as gid from mailbox where username = &#039;%n@%d&#039; and active=&#039;1&#039;&lt;br /&gt;
 # Запрос к базе данных Postfix Admin для получения пароля пользователя почтового ящика:&lt;br /&gt;
 password_query = select username as user, password from mailbox where username = &#039;%n@%d&#039; and active = &#039;1&#039;&lt;br /&gt;
&lt;br /&gt;
Пример настроек аутентификации в /usr/local/etc/dovecot/conf.d/10-auth.conf:&lt;br /&gt;
&lt;br /&gt;
Отключение параметра аутентификации, требующего наличия системной учётной записи у пользователей электронной почты.&lt;br /&gt;
 #!include auth-system.conf.ext&lt;br /&gt;
&lt;br /&gt;
Включение параметра аутентификации виртуальных пользователей с помощью базы данных из SQL (например, из базы данных Postfix Admin).&lt;br /&gt;
 !include auth-sql.conf.ext&lt;br /&gt;
&lt;br /&gt;
Пример настроек файлов журналов в /usr/local/etc/dovecot/conf.d/10-logging.conf:&lt;br /&gt;
 # Определение расположения файлов журналов&lt;br /&gt;
 log_path = /var/log/dovecot.log&lt;br /&gt;
 # Включение регистрации неудачных попыток аутентификации и причин их неудач&lt;br /&gt;
 auth_verbose = yes&lt;br /&gt;
&lt;br /&gt;
Настройки в файле /usr/local/etc/dovecot/conf.d/10-mail.conf:&lt;br /&gt;
 # Размещение почты в корневой папке /var/spool/dovecot в формате &amp;lt;домен&amp;gt;/&amp;lt;имя ящика&amp;gt;&lt;br /&gt;
 mail_location = maildir:/var/spool/dovecot/%d/%u&lt;br /&gt;
&lt;br /&gt;
== Установка mail/exim ==&lt;br /&gt;
&lt;br /&gt;
Exim - агент отправки почты для систем Unix.&lt;br /&gt;
&lt;br /&gt;
Подробная информация на сайте http://www.exim.org/&lt;br /&gt;
&lt;br /&gt;
Перед использованием этой статьи рекомендуется пройти по ссылке [[PKG|PKG]].&lt;br /&gt;
&lt;br /&gt;
Установка из пакета:&lt;br /&gt;
 # pkg install exim-mysql&lt;br /&gt;
&lt;br /&gt;
Установка автозапуска Exim в /etc/rc.conf:&lt;br /&gt;
 # sysrc exim_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
 exim_enable:  -&amp;gt; YES&lt;br /&gt;
&lt;br /&gt;
== Расшифровка вывода установки mail/exim ==&lt;br /&gt;
&lt;br /&gt;
Настройка ротации файлов журнала Exim  добавлением строк в файл /etc/newslog.conf:&lt;br /&gt;
 /var/log/exim/mainlog   mailnull:mail 640 7 * @T00 ZN&lt;br /&gt;
 /var/log/exim/rejectlog mailnull:mail 640 7 * @T00 ZN&lt;br /&gt;
&lt;br /&gt;
== Настройка mail/exim ==&lt;br /&gt;
Настройки Exim устанавливаются в файле /usr/local/etc/exim/configure:&lt;br /&gt;
&lt;br /&gt;
Определение списка локальных доменов, обслуживаемых сервером (использование &amp;quot;@&amp;quot; разрешает локальные доставки):&lt;br /&gt;
 domainlist local_domains = @ : ${lookup mysql{select domain from domain where domain=&#039;${domain}&#039; and active=&#039;1&#039;}}&lt;br /&gt;
&lt;br /&gt;
Определение списка хостов, которые могут использовать сервер для пересылки исходящей почты (это обычно относится ко всей локальной сети, а также к самому серверу):&lt;br /&gt;
 hostlist   relay_from_hosts = localhost : 192.168.0.0/24&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://wiki.bsdhowto.ru/index.php?title=Clamav%2BDovecot%2BExim&amp;diff=253</id>
		<title>Clamav+Dovecot+Exim</title>
		<link rel="alternate" type="text/html" href="https://wiki.bsdhowto.ru/index.php?title=Clamav%2BDovecot%2BExim&amp;diff=253"/>
		<updated>2025-12-05T17:46:57Z</updated>

		<summary type="html">&lt;p&gt;Igor: /* Настройка Dovecot */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Подготовка клетки для Clamav+Dovecot+Exim ==&lt;br /&gt;
&lt;br /&gt;
Перед использованием этой статьи рекомендуется пройти по ссылке [[Qjail|Qjail]].&lt;br /&gt;
&lt;br /&gt;
Создание отдельной файловой системы для клетки с Clamav+Dovecot+Exim в ZFS::&lt;br /&gt;
 # zfs create zroot/usr/jails/mail&lt;br /&gt;
&lt;br /&gt;
Создание клетки c именем &amp;quot;mail&amp;quot; и IPv4-адресом &amp;quot;192.168.0.105&amp;quot;, запуск и управление клеткой:&lt;br /&gt;
 # qjail create -4 192.168.0.105 mail&lt;br /&gt;
 # qjail start mail&lt;br /&gt;
 # qjail console mail&lt;br /&gt;
&lt;br /&gt;
== Установка security/clamav ==&lt;br /&gt;
&lt;br /&gt;
Clam Antivirus - антивирусный сканер, который можно использовать для почтовых систем.&lt;br /&gt;
&lt;br /&gt;
Подробная информация на сайте https://www.clamav.net/&lt;br /&gt;
&lt;br /&gt;
Установка из пакета:&lt;br /&gt;
 # pkg install clamav&lt;br /&gt;
&lt;br /&gt;
== Установка Dovecot ==&lt;br /&gt;
&lt;br /&gt;
Установка из пакета:&lt;br /&gt;
 # pkg install dovecot_mysql&lt;br /&gt;
&lt;br /&gt;
Установка автозапуска Dovecot в /etc/rc.conf:&lt;br /&gt;
 # sysrc dovecot_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
 dovecot_enable:  -&amp;gt; YES&lt;br /&gt;
&lt;br /&gt;
== Настройка Dovecot ==&lt;br /&gt;
&lt;br /&gt;
Копирование файлов настроек:&lt;br /&gt;
 # cp -Rpv /usr/local/etc/dovecot/example-config/* /usr/local/etc/dovecot&lt;br /&gt;
&lt;br /&gt;
Пример настроек в /usr/local/etc/dovecot/dovecot.conf:&lt;br /&gt;
 # Использование протоколов IMAP и LMTP:&lt;br /&gt;
 protocols = imap lmtp&lt;br /&gt;
 # Использование всех IPv4 данного хоста (можно указать необходимые IP-адреса):&lt;br /&gt;
 listen = *&lt;br /&gt;
&lt;br /&gt;
Проверка протокола LMTP:&lt;br /&gt;
 # sockstat -l | grep lmtp&lt;br /&gt;
 root     dovecot    45657 25  stream /var/run/dovecot/lmtp&lt;br /&gt;
&lt;br /&gt;
Пример настроек в /usr/local/etc/dovecot/dovecot-sql.conf.ext:&lt;br /&gt;
 # Использование СУБД MySQL&lt;br /&gt;
 driver = mysql&lt;br /&gt;
 # Строка подключения к базе данных Postfix Admin&lt;br /&gt;
 connect = host=192.168.0.103 dbname=mailadmin user=mailadmin password=&amp;lt;пароль к БД&amp;gt;&lt;br /&gt;
 # Хранение паролей пользователей почты в базе данных Postfix Admin в открытом виде (это небезопасный способ, но можно оставить по умолчанию MD5):&lt;br /&gt;
 default_pass_scheme = PLAIN&lt;br /&gt;
 # Запрос к базе данных Postfix Admin для получения информации о пользователе, например, о расположении почтового ящика:&lt;br /&gt;
 user_query = select concat(&#039;/var/spool/dovecot/&#039;, maildir) as home, 143 as uid, 143 as gid from mailbox where username = &#039;%n@%d&#039; and active=&#039;1&#039;&lt;br /&gt;
 # Запрос к базе данных Postfix Admin для получения пароля пользователя почтового ящика:&lt;br /&gt;
 password_query = select username as user, password from mailbox where username = &#039;%n@%d&#039; and active = &#039;1&#039;&lt;br /&gt;
&lt;br /&gt;
Пример настроек аутентификации в /usr/local/etc/dovecot/conf.d/10-auth.conf:&lt;br /&gt;
&lt;br /&gt;
Отключение параметра аутентификации, требующего наличия системной учётной записи у пользователей электронной почты.&lt;br /&gt;
 #!include auth-system.conf.ext&lt;br /&gt;
&lt;br /&gt;
Включение параметра аутентификации виртуальных пользователей с помощью базы данных из SQL (например, из базы данных Postfix Admin).&lt;br /&gt;
 !include auth-sql.conf.ext&lt;br /&gt;
&lt;br /&gt;
Пример настроек файлов журналов в /usr/local/etc/dovecot/conf.d/10-logging.conf:&lt;br /&gt;
 # Определение расположения файлов журналов&lt;br /&gt;
 log_path = /var/log/dovecot.log&lt;br /&gt;
 # Включение регистрации неудачных попыток аутентификации и причин их неудач&lt;br /&gt;
 auth_verbose = yes&lt;br /&gt;
&lt;br /&gt;
Настройки в файле /usr/local/etc/dovecot/conf.d/10-mail.conf:&lt;br /&gt;
 # Размещение почты в корневой папке /var/spool/dovecot в формате &amp;lt;домен&amp;gt;/&amp;lt;имя ящика&amp;gt;&lt;br /&gt;
 mail_location = maildir:/var/spool/dovecot/%d/%n&lt;br /&gt;
&lt;br /&gt;
== Установка mail/exim ==&lt;br /&gt;
&lt;br /&gt;
Exim - агент отправки почты для систем Unix.&lt;br /&gt;
&lt;br /&gt;
Подробная информация на сайте http://www.exim.org/&lt;br /&gt;
&lt;br /&gt;
Перед использованием этой статьи рекомендуется пройти по ссылке [[PKG|PKG]].&lt;br /&gt;
&lt;br /&gt;
Установка из пакета:&lt;br /&gt;
 # pkg install exim-mysql&lt;br /&gt;
&lt;br /&gt;
Установка автозапуска Exim в /etc/rc.conf:&lt;br /&gt;
 # sysrc exim_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
 exim_enable:  -&amp;gt; YES&lt;br /&gt;
&lt;br /&gt;
== Расшифровка вывода установки mail/exim ==&lt;br /&gt;
&lt;br /&gt;
Настройка ротации файлов журнала Exim  добавлением строк в файл /etc/newslog.conf:&lt;br /&gt;
 /var/log/exim/mainlog   mailnull:mail 640 7 * @T00 ZN&lt;br /&gt;
 /var/log/exim/rejectlog mailnull:mail 640 7 * @T00 ZN&lt;br /&gt;
&lt;br /&gt;
== Настройка mail/exim ==&lt;br /&gt;
Настройки Exim устанавливаются в файле /usr/local/etc/exim/configure:&lt;br /&gt;
&lt;br /&gt;
Определение списка локальных доменов, обслуживаемых сервером (использование &amp;quot;@&amp;quot; разрешает локальные доставки):&lt;br /&gt;
 domainlist local_domains = @ : ${lookup mysql{select domain from domain where domain=&#039;${domain}&#039; and active=&#039;1&#039;}}&lt;br /&gt;
&lt;br /&gt;
Определение списка хостов, которые могут использовать сервер для пересылки исходящей почты (это обычно относится ко всей локальной сети, а также к самому серверу):&lt;br /&gt;
 hostlist   relay_from_hosts = localhost : 192.168.0.0/24&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://wiki.bsdhowto.ru/index.php?title=Clamav%2BDovecot%2BExim&amp;diff=252</id>
		<title>Clamav+Dovecot+Exim</title>
		<link rel="alternate" type="text/html" href="https://wiki.bsdhowto.ru/index.php?title=Clamav%2BDovecot%2BExim&amp;diff=252"/>
		<updated>2025-12-05T17:35:36Z</updated>

		<summary type="html">&lt;p&gt;Igor: /* Настройка Dovecot */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Подготовка клетки для Clamav+Dovecot+Exim ==&lt;br /&gt;
&lt;br /&gt;
Перед использованием этой статьи рекомендуется пройти по ссылке [[Qjail|Qjail]].&lt;br /&gt;
&lt;br /&gt;
Создание отдельной файловой системы для клетки с Clamav+Dovecot+Exim в ZFS::&lt;br /&gt;
 # zfs create zroot/usr/jails/mail&lt;br /&gt;
&lt;br /&gt;
Создание клетки c именем &amp;quot;mail&amp;quot; и IPv4-адресом &amp;quot;192.168.0.105&amp;quot;, запуск и управление клеткой:&lt;br /&gt;
 # qjail create -4 192.168.0.105 mail&lt;br /&gt;
 # qjail start mail&lt;br /&gt;
 # qjail console mail&lt;br /&gt;
&lt;br /&gt;
== Установка security/clamav ==&lt;br /&gt;
&lt;br /&gt;
Clam Antivirus - антивирусный сканер, который можно использовать для почтовых систем.&lt;br /&gt;
&lt;br /&gt;
Подробная информация на сайте https://www.clamav.net/&lt;br /&gt;
&lt;br /&gt;
Установка из пакета:&lt;br /&gt;
 # pkg install clamav&lt;br /&gt;
&lt;br /&gt;
== Установка Dovecot ==&lt;br /&gt;
&lt;br /&gt;
Установка из пакета:&lt;br /&gt;
 # pkg install dovecot_mysql&lt;br /&gt;
&lt;br /&gt;
Установка автозапуска Dovecot в /etc/rc.conf:&lt;br /&gt;
 # sysrc dovecot_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
 dovecot_enable:  -&amp;gt; YES&lt;br /&gt;
&lt;br /&gt;
== Настройка Dovecot ==&lt;br /&gt;
&lt;br /&gt;
Копирование файлов настроек:&lt;br /&gt;
 # cp -Rpv /usr/local/etc/dovecot/example-config/* /usr/local/etc/dovecot&lt;br /&gt;
&lt;br /&gt;
Пример настроек в /usr/local/etc/dovecot/dovecot.conf:&lt;br /&gt;
 # Использование протоколов IMAP и LMTP:&lt;br /&gt;
 protocols = imap lmtp&lt;br /&gt;
 # Использование всех IPv4 данного хоста (можно указать необходимые IP-адреса):&lt;br /&gt;
 listen = *&lt;br /&gt;
&lt;br /&gt;
Проверка протокола LMTP:&lt;br /&gt;
 # sockstat -l | grep lmtp&lt;br /&gt;
 root     dovecot    45657 25  stream /var/run/dovecot/lmtp&lt;br /&gt;
&lt;br /&gt;
Пример настроек в /usr/local/etc/dovecot/dovecot-sql.conf.ext:&lt;br /&gt;
 # Использование СУБД MySQL&lt;br /&gt;
 driver = mysql&lt;br /&gt;
 # Строка подключения к базе данных Postfix Admin&lt;br /&gt;
 connect = host=192.168.0.103 dbname=mailadmin user=mailadmin password=&amp;lt;пароль к БД&amp;gt;&lt;br /&gt;
 # Хранение паролей пользователей почты в базе данных Postfix Admin в открытом виде (это небезопасный способ, но можно оставить по умолчанию MD5):&lt;br /&gt;
 default_pass_scheme = PLAIN&lt;br /&gt;
 # Запрос к базе данных Postfix Admin для получения информации о пользователе, например, о расположении почтового ящика:&lt;br /&gt;
 user_query = select concat(&#039;/var/spool/dovecot/&#039;, maildir) as home, 143 as uid, 143 as gid from mailbox where username = &#039;%n@%d&#039; and active=&#039;1&#039;&lt;br /&gt;
 # Запрос к базе данных Postfix Admin для получения пароля пользователя почтового ящика:&lt;br /&gt;
 password_query = select username as user, password from mailbox where username = &#039;%n@%d&#039; and active = &#039;1&#039;&lt;br /&gt;
&lt;br /&gt;
Пример настроек аутентификации в /usr/local/etc/dovecot/conf.d/10-auth.conf:&lt;br /&gt;
 !include auth-sql.conf.ext&lt;br /&gt;
&lt;br /&gt;
Пример настроек файлов журналов в /usr/local/etc/dovecot/conf.d/10-logging.conf:&lt;br /&gt;
 # Определение расположения файлов журналов&lt;br /&gt;
 log_path = /var/log/dovecot.log&lt;br /&gt;
 # Включение регистрации неудачных попыток аутентификации и причин их неудач&lt;br /&gt;
 auth_verbose = yes&lt;br /&gt;
&lt;br /&gt;
Настройки в файле /usr/local/etc/dovecot/conf.d/10-mail.conf:&lt;br /&gt;
 # Размещение почты в корневой папке /var/spool/dovecot в формате &amp;lt;домен&amp;gt;/&amp;lt;имя ящика&amp;gt;&lt;br /&gt;
 mail_location = maildir:/var/spool/dovecot/%d/%n&lt;br /&gt;
&lt;br /&gt;
== Установка mail/exim ==&lt;br /&gt;
&lt;br /&gt;
Exim - агент отправки почты для систем Unix.&lt;br /&gt;
&lt;br /&gt;
Подробная информация на сайте http://www.exim.org/&lt;br /&gt;
&lt;br /&gt;
Перед использованием этой статьи рекомендуется пройти по ссылке [[PKG|PKG]].&lt;br /&gt;
&lt;br /&gt;
Установка из пакета:&lt;br /&gt;
 # pkg install exim-mysql&lt;br /&gt;
&lt;br /&gt;
Установка автозапуска Exim в /etc/rc.conf:&lt;br /&gt;
 # sysrc exim_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
 exim_enable:  -&amp;gt; YES&lt;br /&gt;
&lt;br /&gt;
== Расшифровка вывода установки mail/exim ==&lt;br /&gt;
&lt;br /&gt;
Настройка ротации файлов журнала Exim  добавлением строк в файл /etc/newslog.conf:&lt;br /&gt;
 /var/log/exim/mainlog   mailnull:mail 640 7 * @T00 ZN&lt;br /&gt;
 /var/log/exim/rejectlog mailnull:mail 640 7 * @T00 ZN&lt;br /&gt;
&lt;br /&gt;
== Настройка mail/exim ==&lt;br /&gt;
Настройки Exim устанавливаются в файле /usr/local/etc/exim/configure:&lt;br /&gt;
&lt;br /&gt;
Определение списка локальных доменов, обслуживаемых сервером (использование &amp;quot;@&amp;quot; разрешает локальные доставки):&lt;br /&gt;
 domainlist local_domains = @ : ${lookup mysql{select domain from domain where domain=&#039;${domain}&#039; and active=&#039;1&#039;}}&lt;br /&gt;
&lt;br /&gt;
Определение списка хостов, которые могут использовать сервер для пересылки исходящей почты (это обычно относится ко всей локальной сети, а также к самому серверу):&lt;br /&gt;
 hostlist   relay_from_hosts = localhost : 192.168.0.0/24&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://wiki.bsdhowto.ru/index.php?title=Clamav%2BDovecot%2BExim&amp;diff=251</id>
		<title>Clamav+Dovecot+Exim</title>
		<link rel="alternate" type="text/html" href="https://wiki.bsdhowto.ru/index.php?title=Clamav%2BDovecot%2BExim&amp;diff=251"/>
		<updated>2025-12-05T17:32:37Z</updated>

		<summary type="html">&lt;p&gt;Igor: /* Настройка Dovecot */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Подготовка клетки для Clamav+Dovecot+Exim ==&lt;br /&gt;
&lt;br /&gt;
Перед использованием этой статьи рекомендуется пройти по ссылке [[Qjail|Qjail]].&lt;br /&gt;
&lt;br /&gt;
Создание отдельной файловой системы для клетки с Clamav+Dovecot+Exim в ZFS::&lt;br /&gt;
 # zfs create zroot/usr/jails/mail&lt;br /&gt;
&lt;br /&gt;
Создание клетки c именем &amp;quot;mail&amp;quot; и IPv4-адресом &amp;quot;192.168.0.105&amp;quot;, запуск и управление клеткой:&lt;br /&gt;
 # qjail create -4 192.168.0.105 mail&lt;br /&gt;
 # qjail start mail&lt;br /&gt;
 # qjail console mail&lt;br /&gt;
&lt;br /&gt;
== Установка security/clamav ==&lt;br /&gt;
&lt;br /&gt;
Clam Antivirus - антивирусный сканер, который можно использовать для почтовых систем.&lt;br /&gt;
&lt;br /&gt;
Подробная информация на сайте https://www.clamav.net/&lt;br /&gt;
&lt;br /&gt;
Установка из пакета:&lt;br /&gt;
 # pkg install clamav&lt;br /&gt;
&lt;br /&gt;
== Установка Dovecot ==&lt;br /&gt;
&lt;br /&gt;
Установка из пакета:&lt;br /&gt;
 # pkg install dovecot_mysql&lt;br /&gt;
&lt;br /&gt;
Установка автозапуска Dovecot в /etc/rc.conf:&lt;br /&gt;
 # sysrc dovecot_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
 dovecot_enable:  -&amp;gt; YES&lt;br /&gt;
&lt;br /&gt;
== Настройка Dovecot ==&lt;br /&gt;
&lt;br /&gt;
Копирование файлов настроек:&lt;br /&gt;
 # cp -Rpv /usr/local/etc/dovecot/example-config/* /usr/local/etc/dovecot&lt;br /&gt;
&lt;br /&gt;
Пример настроек в /usr/local/etc/dovecot/dovecot.conf:&lt;br /&gt;
 # Использование протоколов IMAP и LMTP:&lt;br /&gt;
 protocols = imap lmtp&lt;br /&gt;
 # Использование всех IPv4 данного хоста (можно указать необходимые IP-адреса):&lt;br /&gt;
 listen = *&lt;br /&gt;
&lt;br /&gt;
Проверка протокола LMTP:&lt;br /&gt;
 # sockstat -l | grep lmtp&lt;br /&gt;
 root     dovecot    45657 25  stream /var/run/dovecot/lmtp&lt;br /&gt;
&lt;br /&gt;
Пример настроек в /usr/local/etc/dovecot/dovecot-sql.conf.ext:&lt;br /&gt;
 # Использование СУБД MySQL&lt;br /&gt;
 driver = mysql&lt;br /&gt;
 # Строка подключения к базе данных Postfix Admin&lt;br /&gt;
 connect = host=192.168.0.103 dbname=mailadmin user=mailadmin password=12345678&lt;br /&gt;
 # Хранение паролей пользователей почты в базе данных Postfix Admin в открытом виде (это небезопасный способ, но можно оставить по умолчанию MD5):&lt;br /&gt;
 default_pass_scheme = PLAIN&lt;br /&gt;
 # Запрос к базе данных Postfix Admin для получения информации о пользователе, например, о расположении почтового ящика:&lt;br /&gt;
 user_query = select concat(&#039;/var/spool/dovecot/&#039;, maildir) as home, 143 as uid, 143 as gid from mailbox where username = &#039;%n@%d&#039; and active=&#039;1&#039;&lt;br /&gt;
 # Запрос к базе данных Postfix Admin для получения пароля пользователя почтового ящика:&lt;br /&gt;
 password_query = select username as user, password from mailbox where username = &#039;%n@%d&#039; and active = &#039;1&#039;&lt;br /&gt;
&lt;br /&gt;
Пример настроек аутентификации в /usr/local/etc/dovecot/conf.d/10-auth.conf:&lt;br /&gt;
 !include auth-sql.conf.ext&lt;br /&gt;
&lt;br /&gt;
Пример настроек файлов журналов в /usr/local/etc/dovecot/conf.d/10-logging.conf:&lt;br /&gt;
 # Определение расположения файлов журналов&lt;br /&gt;
 log_path = /var/log/dovecot.log&lt;br /&gt;
 # Включение регистрации неудачных попыток аутентификации и причин их неудач&lt;br /&gt;
 auth_verbose = yes&lt;br /&gt;
&lt;br /&gt;
Настройки в файле /usr/local/etc/dovecot/conf.d/10-mail.conf:&lt;br /&gt;
 # Размещение почты в корневой папке /var/spool/dovecot в формате &amp;lt;домен&amp;gt;/&amp;lt;имя ящика&amp;gt;&lt;br /&gt;
 mail_location = maildir:/var/spool/dovecot/%d/%n&lt;br /&gt;
&lt;br /&gt;
== Установка mail/exim ==&lt;br /&gt;
&lt;br /&gt;
Exim - агент отправки почты для систем Unix.&lt;br /&gt;
&lt;br /&gt;
Подробная информация на сайте http://www.exim.org/&lt;br /&gt;
&lt;br /&gt;
Перед использованием этой статьи рекомендуется пройти по ссылке [[PKG|PKG]].&lt;br /&gt;
&lt;br /&gt;
Установка из пакета:&lt;br /&gt;
 # pkg install exim-mysql&lt;br /&gt;
&lt;br /&gt;
Установка автозапуска Exim в /etc/rc.conf:&lt;br /&gt;
 # sysrc exim_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
 exim_enable:  -&amp;gt; YES&lt;br /&gt;
&lt;br /&gt;
== Расшифровка вывода установки mail/exim ==&lt;br /&gt;
&lt;br /&gt;
Настройка ротации файлов журнала Exim  добавлением строк в файл /etc/newslog.conf:&lt;br /&gt;
 /var/log/exim/mainlog   mailnull:mail 640 7 * @T00 ZN&lt;br /&gt;
 /var/log/exim/rejectlog mailnull:mail 640 7 * @T00 ZN&lt;br /&gt;
&lt;br /&gt;
== Настройка mail/exim ==&lt;br /&gt;
Настройки Exim устанавливаются в файле /usr/local/etc/exim/configure:&lt;br /&gt;
&lt;br /&gt;
Определение списка локальных доменов, обслуживаемых сервером (использование &amp;quot;@&amp;quot; разрешает локальные доставки):&lt;br /&gt;
 domainlist local_domains = @ : ${lookup mysql{select domain from domain where domain=&#039;${domain}&#039; and active=&#039;1&#039;}}&lt;br /&gt;
&lt;br /&gt;
Определение списка хостов, которые могут использовать сервер для пересылки исходящей почты (это обычно относится ко всей локальной сети, а также к самому серверу):&lt;br /&gt;
 hostlist   relay_from_hosts = localhost : 192.168.0.0/24&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://wiki.bsdhowto.ru/index.php?title=Clamav%2BDovecot%2BExim&amp;diff=250</id>
		<title>Clamav+Dovecot+Exim</title>
		<link rel="alternate" type="text/html" href="https://wiki.bsdhowto.ru/index.php?title=Clamav%2BDovecot%2BExim&amp;diff=250"/>
		<updated>2025-12-05T17:32:01Z</updated>

		<summary type="html">&lt;p&gt;Igor: /* Настройка Dovecot */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Подготовка клетки для Clamav+Dovecot+Exim ==&lt;br /&gt;
&lt;br /&gt;
Перед использованием этой статьи рекомендуется пройти по ссылке [[Qjail|Qjail]].&lt;br /&gt;
&lt;br /&gt;
Создание отдельной файловой системы для клетки с Clamav+Dovecot+Exim в ZFS::&lt;br /&gt;
 # zfs create zroot/usr/jails/mail&lt;br /&gt;
&lt;br /&gt;
Создание клетки c именем &amp;quot;mail&amp;quot; и IPv4-адресом &amp;quot;192.168.0.105&amp;quot;, запуск и управление клеткой:&lt;br /&gt;
 # qjail create -4 192.168.0.105 mail&lt;br /&gt;
 # qjail start mail&lt;br /&gt;
 # qjail console mail&lt;br /&gt;
&lt;br /&gt;
== Установка security/clamav ==&lt;br /&gt;
&lt;br /&gt;
Clam Antivirus - антивирусный сканер, который можно использовать для почтовых систем.&lt;br /&gt;
&lt;br /&gt;
Подробная информация на сайте https://www.clamav.net/&lt;br /&gt;
&lt;br /&gt;
Установка из пакета:&lt;br /&gt;
 # pkg install clamav&lt;br /&gt;
&lt;br /&gt;
== Установка Dovecot ==&lt;br /&gt;
&lt;br /&gt;
Установка из пакета:&lt;br /&gt;
 # pkg install dovecot_mysql&lt;br /&gt;
&lt;br /&gt;
Установка автозапуска Dovecot в /etc/rc.conf:&lt;br /&gt;
 # sysrc dovecot_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
 dovecot_enable:  -&amp;gt; YES&lt;br /&gt;
&lt;br /&gt;
== Настройка Dovecot ==&lt;br /&gt;
&lt;br /&gt;
Копирование файлов настроек:&lt;br /&gt;
 # cp -Rpv /usr/local/etc/dovecot/example-config/* /usr/local/etc/dovecot&lt;br /&gt;
&lt;br /&gt;
Пример настроек в /usr/local/etc/dovecot/dovecot.conf:&lt;br /&gt;
 # Использование протоколов IMAP и LMTP:&lt;br /&gt;
 protocols = imap lmtp&lt;br /&gt;
 # Использование всех IPv4 данного хоста (можно указать необходимые IP-адреса):&lt;br /&gt;
 listen = *&lt;br /&gt;
&lt;br /&gt;
Проверка протокола LMTP:&lt;br /&gt;
# sockstat -l | grep lmtp&lt;br /&gt;
root     dovecot    45657 25  stream /var/run/dovecot/lmtp&lt;br /&gt;
&lt;br /&gt;
Пример настроек в /usr/local/etc/dovecot/dovecot-sql.conf.ext:&lt;br /&gt;
 # Использование СУБД MySQL&lt;br /&gt;
 driver = mysql&lt;br /&gt;
 # Строка подключения к базе данных Postfix Admin&lt;br /&gt;
 connect = host=192.168.0.103 dbname=mailadmin user=mailadmin password=12345678&lt;br /&gt;
 # Хранение паролей пользователей почты в базе данных Postfix Admin в открытом виде (это небезопасный способ, но можно оставить по умолчанию MD5):&lt;br /&gt;
 default_pass_scheme = PLAIN&lt;br /&gt;
 # Запрос к базе данных Postfix Admin для получения информации о пользователе, например, о расположении почтового ящика:&lt;br /&gt;
 user_query = select concat(&#039;/var/spool/dovecot/&#039;, maildir) as home, 143 as uid, 143 as gid from mailbox where username = &#039;%n@%d&#039; and active=&#039;1&#039;&lt;br /&gt;
 # Запрос к базе данных Postfix Admin для получения пароля пользователя почтового ящика:&lt;br /&gt;
 password_query = select username as user, password from mailbox where username = &#039;%n@%d&#039; and active = &#039;1&#039;&lt;br /&gt;
&lt;br /&gt;
Пример настроек аутентификации в /usr/local/etc/dovecot/conf.d/10-auth.conf:&lt;br /&gt;
 !include auth-sql.conf.ext&lt;br /&gt;
&lt;br /&gt;
Пример настроек файлов журналов в /usr/local/etc/dovecot/conf.d/10-logging.conf:&lt;br /&gt;
 # Определение расположения файлов журналов&lt;br /&gt;
 log_path = /var/log/dovecot.log&lt;br /&gt;
 # Включение регистрации неудачных попыток аутентификации и причин их неудач&lt;br /&gt;
 auth_verbose = yes&lt;br /&gt;
&lt;br /&gt;
Настройки в файле /usr/local/etc/dovecot/conf.d/10-mail.conf:&lt;br /&gt;
 # Размещение почты в корневой папке /var/spool/dovecot в формате &amp;lt;домен&amp;gt;/&amp;lt;имя ящика&amp;gt;&lt;br /&gt;
 mail_location = maildir:/var/spool/dovecot/%d/%n&lt;br /&gt;
&lt;br /&gt;
== Установка mail/exim ==&lt;br /&gt;
&lt;br /&gt;
Exim - агент отправки почты для систем Unix.&lt;br /&gt;
&lt;br /&gt;
Подробная информация на сайте http://www.exim.org/&lt;br /&gt;
&lt;br /&gt;
Перед использованием этой статьи рекомендуется пройти по ссылке [[PKG|PKG]].&lt;br /&gt;
&lt;br /&gt;
Установка из пакета:&lt;br /&gt;
 # pkg install exim-mysql&lt;br /&gt;
&lt;br /&gt;
Установка автозапуска Exim в /etc/rc.conf:&lt;br /&gt;
 # sysrc exim_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
 exim_enable:  -&amp;gt; YES&lt;br /&gt;
&lt;br /&gt;
== Расшифровка вывода установки mail/exim ==&lt;br /&gt;
&lt;br /&gt;
Настройка ротации файлов журнала Exim  добавлением строк в файл /etc/newslog.conf:&lt;br /&gt;
 /var/log/exim/mainlog   mailnull:mail 640 7 * @T00 ZN&lt;br /&gt;
 /var/log/exim/rejectlog mailnull:mail 640 7 * @T00 ZN&lt;br /&gt;
&lt;br /&gt;
== Настройка mail/exim ==&lt;br /&gt;
Настройки Exim устанавливаются в файле /usr/local/etc/exim/configure:&lt;br /&gt;
&lt;br /&gt;
Определение списка локальных доменов, обслуживаемых сервером (использование &amp;quot;@&amp;quot; разрешает локальные доставки):&lt;br /&gt;
 domainlist local_domains = @ : ${lookup mysql{select domain from domain where domain=&#039;${domain}&#039; and active=&#039;1&#039;}}&lt;br /&gt;
&lt;br /&gt;
Определение списка хостов, которые могут использовать сервер для пересылки исходящей почты (это обычно относится ко всей локальной сети, а также к самому серверу):&lt;br /&gt;
 hostlist   relay_from_hosts = localhost : 192.168.0.0/24&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://wiki.bsdhowto.ru/index.php?title=Clamav%2BDovecot%2BExim&amp;diff=249</id>
		<title>Clamav+Dovecot+Exim</title>
		<link rel="alternate" type="text/html" href="https://wiki.bsdhowto.ru/index.php?title=Clamav%2BDovecot%2BExim&amp;diff=249"/>
		<updated>2025-12-05T17:24:49Z</updated>

		<summary type="html">&lt;p&gt;Igor: /* Настройка Dovecot */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Подготовка клетки для Clamav+Dovecot+Exim ==&lt;br /&gt;
&lt;br /&gt;
Перед использованием этой статьи рекомендуется пройти по ссылке [[Qjail|Qjail]].&lt;br /&gt;
&lt;br /&gt;
Создание отдельной файловой системы для клетки с Clamav+Dovecot+Exim в ZFS::&lt;br /&gt;
 # zfs create zroot/usr/jails/mail&lt;br /&gt;
&lt;br /&gt;
Создание клетки c именем &amp;quot;mail&amp;quot; и IPv4-адресом &amp;quot;192.168.0.105&amp;quot;, запуск и управление клеткой:&lt;br /&gt;
 # qjail create -4 192.168.0.105 mail&lt;br /&gt;
 # qjail start mail&lt;br /&gt;
 # qjail console mail&lt;br /&gt;
&lt;br /&gt;
== Установка security/clamav ==&lt;br /&gt;
&lt;br /&gt;
Clam Antivirus - антивирусный сканер, который можно использовать для почтовых систем.&lt;br /&gt;
&lt;br /&gt;
Подробная информация на сайте https://www.clamav.net/&lt;br /&gt;
&lt;br /&gt;
Установка из пакета:&lt;br /&gt;
 # pkg install clamav&lt;br /&gt;
&lt;br /&gt;
== Установка Dovecot ==&lt;br /&gt;
&lt;br /&gt;
Установка из пакета:&lt;br /&gt;
 # pkg install dovecot_mysql&lt;br /&gt;
&lt;br /&gt;
Установка автозапуска Dovecot в /etc/rc.conf:&lt;br /&gt;
 # sysrc dovecot_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
 dovecot_enable:  -&amp;gt; YES&lt;br /&gt;
&lt;br /&gt;
== Настройка Dovecot ==&lt;br /&gt;
&lt;br /&gt;
Копирование файлов настроек:&lt;br /&gt;
 # cp -Rpv /usr/local/etc/dovecot/example-config/* /usr/local/etc/dovecot&lt;br /&gt;
&lt;br /&gt;
Пример настроек в /usr/local/etc/dovecot/dovecot.conf:&lt;br /&gt;
 # Использование протокола IMAP:&lt;br /&gt;
 protocols = imap lmtp&lt;br /&gt;
 # Использование всех IPv4 данного хоста (можно указать необходимые IP-адреса):&lt;br /&gt;
 listen = *&lt;br /&gt;
&lt;br /&gt;
Пример настроек в /usr/local/etc/dovecot/dovecot-sql.conf.ext:&lt;br /&gt;
 # Использование СУБД MySQL&lt;br /&gt;
 driver = mysql&lt;br /&gt;
 # Строка подключения к базе данных Postfix Admin&lt;br /&gt;
 connect = host=192.168.0.103 dbname=mailadmin user=mailadmin password=12345678&lt;br /&gt;
 # Хранение паролей пользователей почты в базе данных Postfix Admin в открытом виде (это небезопасный способ, но можно оставить по умолчанию MD5):&lt;br /&gt;
 default_pass_scheme = PLAIN&lt;br /&gt;
 # Запрос к базе данных Postfix Admin для получения информации о пользователе, например, о расположении почтового ящика:&lt;br /&gt;
 user_query = select concat(&#039;/var/spool/dovecot/&#039;, maildir) as home, 143 as uid, 143 as gid from mailbox where username = &#039;%n@%d&#039; and active=&#039;1&#039;&lt;br /&gt;
 # Запрос к базе данных Postfix Admin для получения пароля пользователя почтового ящика:&lt;br /&gt;
 password_query = select username as user, password from mailbox where username = &#039;%n@%d&#039; and active = &#039;1&#039;&lt;br /&gt;
&lt;br /&gt;
Пример настроек аутентификации в /usr/local/etc/dovecot/conf.d/10-auth.conf:&lt;br /&gt;
 !include auth-sql.conf.ext&lt;br /&gt;
&lt;br /&gt;
Пример настроек файлов журналов в /usr/local/etc/dovecot/conf.d/10-logging.conf:&lt;br /&gt;
 # Определение расположения файлов журналов&lt;br /&gt;
 log_path = /var/log/dovecot.log&lt;br /&gt;
 # Включение регистрации неудачных попыток аутентификации и причин их неудач&lt;br /&gt;
 auth_verbose = yes&lt;br /&gt;
&lt;br /&gt;
Настройки в файле /usr/local/etc/dovecot/conf.d/10-mail.conf:&lt;br /&gt;
 # Размещение почты в корневой папке /var/spool/dovecot в формате &amp;lt;домен&amp;gt;/&amp;lt;имя ящика&amp;gt;&lt;br /&gt;
 mail_location = maildir:/var/spool/dovecot/%d/%n&lt;br /&gt;
&lt;br /&gt;
== Установка mail/exim ==&lt;br /&gt;
&lt;br /&gt;
Exim - агент отправки почты для систем Unix.&lt;br /&gt;
&lt;br /&gt;
Подробная информация на сайте http://www.exim.org/&lt;br /&gt;
&lt;br /&gt;
Перед использованием этой статьи рекомендуется пройти по ссылке [[PKG|PKG]].&lt;br /&gt;
&lt;br /&gt;
Установка из пакета:&lt;br /&gt;
 # pkg install exim-mysql&lt;br /&gt;
&lt;br /&gt;
Установка автозапуска Exim в /etc/rc.conf:&lt;br /&gt;
 # sysrc exim_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
 exim_enable:  -&amp;gt; YES&lt;br /&gt;
&lt;br /&gt;
== Расшифровка вывода установки mail/exim ==&lt;br /&gt;
&lt;br /&gt;
Настройка ротации файлов журнала Exim  добавлением строк в файл /etc/newslog.conf:&lt;br /&gt;
 /var/log/exim/mainlog   mailnull:mail 640 7 * @T00 ZN&lt;br /&gt;
 /var/log/exim/rejectlog mailnull:mail 640 7 * @T00 ZN&lt;br /&gt;
&lt;br /&gt;
== Настройка mail/exim ==&lt;br /&gt;
Настройки Exim устанавливаются в файле /usr/local/etc/exim/configure:&lt;br /&gt;
&lt;br /&gt;
Определение списка локальных доменов, обслуживаемых сервером (использование &amp;quot;@&amp;quot; разрешает локальные доставки):&lt;br /&gt;
 domainlist local_domains = @ : ${lookup mysql{select domain from domain where domain=&#039;${domain}&#039; and active=&#039;1&#039;}}&lt;br /&gt;
&lt;br /&gt;
Определение списка хостов, которые могут использовать сервер для пересылки исходящей почты (это обычно относится ко всей локальной сети, а также к самому серверу):&lt;br /&gt;
 hostlist   relay_from_hosts = localhost : 192.168.0.0/24&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://wiki.bsdhowto.ru/index.php?title=Clamav%2BDovecot%2BExim&amp;diff=248</id>
		<title>Clamav+Dovecot+Exim</title>
		<link rel="alternate" type="text/html" href="https://wiki.bsdhowto.ru/index.php?title=Clamav%2BDovecot%2BExim&amp;diff=248"/>
		<updated>2025-12-05T17:22:01Z</updated>

		<summary type="html">&lt;p&gt;Igor: /* Установка mail/exim */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Подготовка клетки для Clamav+Dovecot+Exim ==&lt;br /&gt;
&lt;br /&gt;
Перед использованием этой статьи рекомендуется пройти по ссылке [[Qjail|Qjail]].&lt;br /&gt;
&lt;br /&gt;
Создание отдельной файловой системы для клетки с Clamav+Dovecot+Exim в ZFS::&lt;br /&gt;
 # zfs create zroot/usr/jails/mail&lt;br /&gt;
&lt;br /&gt;
Создание клетки c именем &amp;quot;mail&amp;quot; и IPv4-адресом &amp;quot;192.168.0.105&amp;quot;, запуск и управление клеткой:&lt;br /&gt;
 # qjail create -4 192.168.0.105 mail&lt;br /&gt;
 # qjail start mail&lt;br /&gt;
 # qjail console mail&lt;br /&gt;
&lt;br /&gt;
== Установка security/clamav ==&lt;br /&gt;
&lt;br /&gt;
Clam Antivirus - антивирусный сканер, который можно использовать для почтовых систем.&lt;br /&gt;
&lt;br /&gt;
Подробная информация на сайте https://www.clamav.net/&lt;br /&gt;
&lt;br /&gt;
Установка из пакета:&lt;br /&gt;
 # pkg install clamav&lt;br /&gt;
&lt;br /&gt;
== Установка Dovecot ==&lt;br /&gt;
&lt;br /&gt;
Установка из пакета:&lt;br /&gt;
 # pkg install dovecot_mysql&lt;br /&gt;
&lt;br /&gt;
Установка автозапуска Dovecot в /etc/rc.conf:&lt;br /&gt;
 # sysrc dovecot_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
 dovecot_enable:  -&amp;gt; YES&lt;br /&gt;
&lt;br /&gt;
== Настройка Dovecot ==&lt;br /&gt;
&lt;br /&gt;
Копирование файлов настроек:&lt;br /&gt;
 # cp -Rpv /usr/local/etc/dovecot/example-config/* /usr/local/etc/dovecot&lt;br /&gt;
&lt;br /&gt;
Пример настроек в /usr/local/etc/dovecot/dovecot.conf:&lt;br /&gt;
 # Использование протокола IMAP:&lt;br /&gt;
 protocols = imap&lt;br /&gt;
 # Использование всех IPv4 данного хоста (можно указать необходимые IP-адреса):&lt;br /&gt;
 listen = *&lt;br /&gt;
&lt;br /&gt;
Пример настроек в /usr/local/etc/dovecot/dovecot-sql.conf.ext:&lt;br /&gt;
 # Использование СУБД MySQL&lt;br /&gt;
 driver = mysql&lt;br /&gt;
 # Строка подключения к базе данных Postfix Admin&lt;br /&gt;
 connect = host=192.168.0.103 dbname=mailadmin user=mailadmin password=12345678&lt;br /&gt;
 # Хранение паролей пользователей почты в базе данных Postfix Admin в открытом виде (это небезопасный способ, но можно оставить по умолчанию MD5):&lt;br /&gt;
 default_pass_scheme = PLAIN&lt;br /&gt;
 # Запрос к базе данных Postfix Admin для получения информации о пользователе, например, о расположении почтового ящика:&lt;br /&gt;
 user_query = select concat(&#039;/var/spool/dovecot/&#039;, maildir) as home, 143 as uid, 143 as gid from mailbox where username = &#039;%n@%d&#039; and active=&#039;1&#039;&lt;br /&gt;
 # Запрос к базе данных Postfix Admin для получения пароля пользователя почтового ящика:&lt;br /&gt;
 password_query = select username as user, password from mailbox where username = &#039;%n@%d&#039; and active = &#039;1&#039;&lt;br /&gt;
&lt;br /&gt;
Пример настроек аутентификации в /usr/local/etc/dovecot/conf.d/10-auth.conf:&lt;br /&gt;
 !include auth-sql.conf.ext&lt;br /&gt;
&lt;br /&gt;
Пример настроек файлов журналов в /usr/local/etc/dovecot/conf.d/10-logging.conf:&lt;br /&gt;
 # Определение расположения файлов журналов&lt;br /&gt;
 log_path = /var/log/dovecot.log&lt;br /&gt;
 # Включение регистрации неудачных попыток аутентификации и причин их неудач&lt;br /&gt;
 auth_verbose = yes&lt;br /&gt;
&lt;br /&gt;
Настройки в файле /usr/local/etc/dovecot/conf.d/10-mail.conf:&lt;br /&gt;
 # Размещение почты в корневой папке /var/spool/dovecot в формате &amp;lt;домен&amp;gt;/&amp;lt;имя ящика&amp;gt;&lt;br /&gt;
 mail_location = maildir:/var/spool/dovecot/%d/%n&lt;br /&gt;
&lt;br /&gt;
== Установка mail/exim ==&lt;br /&gt;
&lt;br /&gt;
Exim - агент отправки почты для систем Unix.&lt;br /&gt;
&lt;br /&gt;
Подробная информация на сайте http://www.exim.org/&lt;br /&gt;
&lt;br /&gt;
Перед использованием этой статьи рекомендуется пройти по ссылке [[PKG|PKG]].&lt;br /&gt;
&lt;br /&gt;
Установка из пакета:&lt;br /&gt;
 # pkg install exim-mysql&lt;br /&gt;
&lt;br /&gt;
Установка автозапуска Exim в /etc/rc.conf:&lt;br /&gt;
 # sysrc exim_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
 exim_enable:  -&amp;gt; YES&lt;br /&gt;
&lt;br /&gt;
== Расшифровка вывода установки mail/exim ==&lt;br /&gt;
&lt;br /&gt;
Настройка ротации файлов журнала Exim  добавлением строк в файл /etc/newslog.conf:&lt;br /&gt;
 /var/log/exim/mainlog   mailnull:mail 640 7 * @T00 ZN&lt;br /&gt;
 /var/log/exim/rejectlog mailnull:mail 640 7 * @T00 ZN&lt;br /&gt;
&lt;br /&gt;
== Настройка mail/exim ==&lt;br /&gt;
Настройки Exim устанавливаются в файле /usr/local/etc/exim/configure:&lt;br /&gt;
&lt;br /&gt;
Определение списка локальных доменов, обслуживаемых сервером (использование &amp;quot;@&amp;quot; разрешает локальные доставки):&lt;br /&gt;
 domainlist local_domains = @ : ${lookup mysql{select domain from domain where domain=&#039;${domain}&#039; and active=&#039;1&#039;}}&lt;br /&gt;
&lt;br /&gt;
Определение списка хостов, которые могут использовать сервер для пересылки исходящей почты (это обычно относится ко всей локальной сети, а также к самому серверу):&lt;br /&gt;
 hostlist   relay_from_hosts = localhost : 192.168.0.0/24&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://wiki.bsdhowto.ru/index.php?title=Clamav%2BDovecot%2BExim&amp;diff=247</id>
		<title>Clamav+Dovecot+Exim</title>
		<link rel="alternate" type="text/html" href="https://wiki.bsdhowto.ru/index.php?title=Clamav%2BDovecot%2BExim&amp;diff=247"/>
		<updated>2025-12-05T03:05:59Z</updated>

		<summary type="html">&lt;p&gt;Igor: /* Установка Dovecot */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Подготовка клетки для Clamav+Dovecot+Exim ==&lt;br /&gt;
&lt;br /&gt;
Перед использованием этой статьи рекомендуется пройти по ссылке [[Qjail|Qjail]].&lt;br /&gt;
&lt;br /&gt;
Создание отдельной файловой системы для клетки с Clamav+Dovecot+Exim в ZFS::&lt;br /&gt;
 # zfs create zroot/usr/jails/mail&lt;br /&gt;
&lt;br /&gt;
Создание клетки c именем &amp;quot;mail&amp;quot; и IPv4-адресом &amp;quot;192.168.0.105&amp;quot;, запуск и управление клеткой:&lt;br /&gt;
 # qjail create -4 192.168.0.105 mail&lt;br /&gt;
 # qjail start mail&lt;br /&gt;
 # qjail console mail&lt;br /&gt;
&lt;br /&gt;
== Установка security/clamav ==&lt;br /&gt;
&lt;br /&gt;
Clam Antivirus - антивирусный сканер, который можно использовать для почтовых систем.&lt;br /&gt;
&lt;br /&gt;
Подробная информация на сайте https://www.clamav.net/&lt;br /&gt;
&lt;br /&gt;
Установка из пакета:&lt;br /&gt;
 # pkg install clamav&lt;br /&gt;
&lt;br /&gt;
== Установка Dovecot ==&lt;br /&gt;
&lt;br /&gt;
Установка из пакета:&lt;br /&gt;
 # pkg install dovecot_mysql&lt;br /&gt;
&lt;br /&gt;
Установка автозапуска Dovecot в /etc/rc.conf:&lt;br /&gt;
 # sysrc dovecot_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
 dovecot_enable:  -&amp;gt; YES&lt;br /&gt;
&lt;br /&gt;
== Настройка Dovecot ==&lt;br /&gt;
&lt;br /&gt;
Копирование файлов настроек:&lt;br /&gt;
 # cp -Rpv /usr/local/etc/dovecot/example-config/* /usr/local/etc/dovecot&lt;br /&gt;
&lt;br /&gt;
Пример настроек в /usr/local/etc/dovecot/dovecot.conf:&lt;br /&gt;
 # Использование протокола IMAP:&lt;br /&gt;
 protocols = imap&lt;br /&gt;
 # Использование всех IPv4 данного хоста (можно указать необходимые IP-адреса):&lt;br /&gt;
 listen = *&lt;br /&gt;
&lt;br /&gt;
Пример настроек в /usr/local/etc/dovecot/dovecot-sql.conf.ext:&lt;br /&gt;
 # Использование СУБД MySQL&lt;br /&gt;
 driver = mysql&lt;br /&gt;
 # Строка подключения к базе данных Postfix Admin&lt;br /&gt;
 connect = host=192.168.0.103 dbname=mailadmin user=mailadmin password=12345678&lt;br /&gt;
 # Хранение паролей пользователей почты в базе данных Postfix Admin в открытом виде (это небезопасный способ, но можно оставить по умолчанию MD5):&lt;br /&gt;
 default_pass_scheme = PLAIN&lt;br /&gt;
 # Запрос к базе данных Postfix Admin для получения информации о пользователе, например, о расположении почтового ящика:&lt;br /&gt;
 user_query = select concat(&#039;/var/spool/dovecot/&#039;, maildir) as home, 143 as uid, 143 as gid from mailbox where username = &#039;%n@%d&#039; and active=&#039;1&#039;&lt;br /&gt;
 # Запрос к базе данных Postfix Admin для получения пароля пользователя почтового ящика:&lt;br /&gt;
 password_query = select username as user, password from mailbox where username = &#039;%n@%d&#039; and active = &#039;1&#039;&lt;br /&gt;
&lt;br /&gt;
Пример настроек аутентификации в /usr/local/etc/dovecot/conf.d/10-auth.conf:&lt;br /&gt;
 !include auth-sql.conf.ext&lt;br /&gt;
&lt;br /&gt;
Пример настроек файлов журналов в /usr/local/etc/dovecot/conf.d/10-logging.conf:&lt;br /&gt;
 # Определение расположения файлов журналов&lt;br /&gt;
 log_path = /var/log/dovecot.log&lt;br /&gt;
 # Включение регистрации неудачных попыток аутентификации и причин их неудач&lt;br /&gt;
 auth_verbose = yes&lt;br /&gt;
&lt;br /&gt;
Настройки в файле /usr/local/etc/dovecot/conf.d/10-mail.conf:&lt;br /&gt;
 # Размещение почты в корневой папке /var/spool/dovecot в формате &amp;lt;домен&amp;gt;/&amp;lt;имя ящика&amp;gt;&lt;br /&gt;
 mail_location = maildir:/var/spool/dovecot/%d/%n&lt;br /&gt;
&lt;br /&gt;
== Установка mail/exim ==&lt;br /&gt;
&lt;br /&gt;
Exim - агент отправки почты для систем Unix.&lt;br /&gt;
&lt;br /&gt;
Подробная информация на сайте http://www.exim.org/&lt;br /&gt;
&lt;br /&gt;
Перед использованием этой статьи рекомендуется пройти по ссылке [[PKG|PKG]].&lt;br /&gt;
&lt;br /&gt;
Установка из пакета:&lt;br /&gt;
 # pkg install exim&lt;br /&gt;
 Updating FreeBSD repository catalogue...&lt;br /&gt;
 FreeBSD repository is up to date.&lt;br /&gt;
 All repositories are up to date.&lt;br /&gt;
 The following 46 package(s) will be affected (of 0 checked):&lt;br /&gt;
 &lt;br /&gt;
 New packages to be INSTALLED:&lt;br /&gt;
         brotli: 1.1.0,1&lt;br /&gt;
         curl: 8.12.1&lt;br /&gt;
         cyrus-sasl: 2.1.28_5&lt;br /&gt;
         exim: 4.98.2&lt;br /&gt;
         gettext-runtime: 0.23.1&lt;br /&gt;
         &#039;&#039;&#039;[пропущен список пакетов для установки]&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
 Number of packages to be installed: 46&lt;br /&gt;
 &lt;br /&gt;
 The process will require 308 MiB more space.&lt;br /&gt;
 50 MiB to be downloaded.&lt;br /&gt;
 &lt;br /&gt;
 Proceed with this action? [y/N]: y&lt;br /&gt;
 [1/46] Fetching indexinfo-0.3.1_1.pkg: 100%    6 KiB   6.0kB/s    00:01&lt;br /&gt;
 [2/46] Fetching cyrus-sasl-2.1.28_5.pkg: 100%    1 MiB   1.1MB/s    00:01&lt;br /&gt;
 [3/46] Fetching libcjson-1.7.18_2.pkg: 100%   39 KiB  39.5kB/s    00:01&lt;br /&gt;
 [4/46] Fetching libnghttp2-1.65.0.pkg: 100%  136 KiB 139.4kB/s    00:01&lt;br /&gt;
 [5/46] Fetching p5-HTTP-Date-6.06.pkg: 100%   11 KiB  11.0kB/s    00:01&lt;br /&gt;
 [пропущен список скачиваемых пакетов]&lt;br /&gt;
 Checking integrity... done (0 conflicting)&lt;br /&gt;
 [1/46] Installing brotli-1.1.0,1...&lt;br /&gt;
 [1/46] Extracting brotli-1.1.0,1: 100%&lt;br /&gt;
 [2/46] Installing cyrus-sasl-2.1.28_5...&lt;br /&gt;
 *** Added group `cyrus&#039; (id 60)&lt;br /&gt;
 *** Added user `cyrus&#039; (id 60)&lt;br /&gt;
 [2/46] Extracting cyrus-sasl-2.1.28_5: 100%&lt;br /&gt;
 [3/46] Installing icu-76.1,1...&lt;br /&gt;
 [3/46] Extracting icu-76.1,1: 100%&lt;br /&gt;
 [4/46] Installing indexinfo-0.3.1_1...&lt;br /&gt;
 [4/46] Extracting indexinfo-0.3.1_1: 100%&lt;br /&gt;
 [5/46] Installing gettext-runtime-0.23.1...&lt;br /&gt;
 [5/46] Extracting gettext-runtime-0.23.1: 100%&lt;br /&gt;
 &#039;&#039;&#039;[пропущен список устанавливаемых пакетов]&#039;&#039;&#039;&lt;br /&gt;
 =====&lt;br /&gt;
 Message from cyrus-sasl-2.1.28_5:&lt;br /&gt;
 &lt;br /&gt;
 --&lt;br /&gt;
 You can use sasldb2 for authentication, to add users use:&lt;br /&gt;
 &lt;br /&gt;
         saslpasswd2 -c username&lt;br /&gt;
 &lt;br /&gt;
 If you want to enable SMTP AUTH with the system Sendmail, read&lt;br /&gt;
 Sendmail.README&lt;br /&gt;
 &lt;br /&gt;
 NOTE: This port has been compiled with a default pwcheck_method of&lt;br /&gt;
       auxprop.  If you want to authenticate your user by /etc/passwd,&lt;br /&gt;
       PAM or LDAP, install ports/security/cyrus-sasl2-saslauthd and&lt;br /&gt;
       set sasl_pwcheck_method to saslauthd after installing the&lt;br /&gt;
       Cyrus-IMAPd 2.X port.  You should also check the&lt;br /&gt;
       /usr/local/lib/sasl2/*.conf files for the correct&lt;br /&gt;
       pwcheck_method.&lt;br /&gt;
       If you want to use GSSAPI mechanism, install&lt;br /&gt;
       ports/security/cyrus-sasl2-gssapi.&lt;br /&gt;
       If you want to use SRP mechanism, install&lt;br /&gt;
       ports/security/cyrus-sasl2-srp.&lt;br /&gt;
       If you want to use LDAP auxprop plugin, install&lt;br /&gt;
       ports/security/cyrus-sasl2-ldapdb.&lt;br /&gt;
 =====&lt;br /&gt;
 Message from openldap26-client-2.6.9_1:&lt;br /&gt;
 &lt;br /&gt;
 --&lt;br /&gt;
 The OpenLDAP client package has been successfully installed.&lt;br /&gt;
 &lt;br /&gt;
 Edit&lt;br /&gt;
   /usr/local/etc/openldap/ldap.conf&lt;br /&gt;
 to change the system-wide client defaults.&lt;br /&gt;
 &lt;br /&gt;
 Try `man ldap.conf&#039; and visit the OpenLDAP FAQ-O-Matic at&lt;br /&gt;
   http://www.OpenLDAP.org/faq/index.cgi?file=3&lt;br /&gt;
 for more information.&lt;br /&gt;
 =====&lt;br /&gt;
 Message from groff-1.23.0_4:&lt;br /&gt;
 &lt;br /&gt;
 --&lt;br /&gt;
 In order to be able to use the html driver, you need to install the following&lt;br /&gt;
 packages:&lt;br /&gt;
  - ghostscript&lt;br /&gt;
  - netpbm&lt;br /&gt;
 --&lt;br /&gt;
 ===&amp;gt;   NOTICE:&lt;br /&gt;
 &lt;br /&gt;
 The groff port currently does not have a maintainer. As a result, it is&lt;br /&gt;
 more likely to have unresolved issues, not be up-to-date, or even be removed in&lt;br /&gt;
 the future. To volunteer to maintain this port, please create an issue at:&lt;br /&gt;
 &lt;br /&gt;
 https://bugs.freebsd.org/bugzilla&lt;br /&gt;
 &lt;br /&gt;
 More information about port maintainership is available at:&lt;br /&gt;
 &lt;br /&gt;
 https://docs.freebsd.org/en/articles/contributing/#ports-contributing&lt;br /&gt;
 =====&lt;br /&gt;
 Message from mysql80-client-8.0.41:&lt;br /&gt;
 &lt;br /&gt;
 --&lt;br /&gt;
 This is the mysql CLIENT without the server.&lt;br /&gt;
 for complete server and client, please install databases/mysql80-server&lt;br /&gt;
 =====&lt;br /&gt;
 Message from exim-4.98.2:&lt;br /&gt;
 &lt;br /&gt;
 --&lt;br /&gt;
 The following documentation has been installed:&lt;br /&gt;
 &lt;br /&gt;
   man exim                              -&amp;gt; Exim options (command line)&lt;br /&gt;
   /usr/local/share/doc/exim/spec.txt    -&amp;gt; Exim Specification (User Guide)&lt;br /&gt;
   /usr/local/share/doc/exim/filter.txt  -&amp;gt; Exim Filter Specification (for end-users)&lt;br /&gt;
 &lt;br /&gt;
 Postscript, PDF, HTML and texinfo versions of these documents can be&lt;br /&gt;
 installed via one of the mail/exim-doc-* ports.&lt;br /&gt;
 &lt;br /&gt;
 An online version as well as a comprehensive FAQ and a mailing list&lt;br /&gt;
 archive is available at:&lt;br /&gt;
 &lt;br /&gt;
   http://www.exim.org/&lt;br /&gt;
 &lt;br /&gt;
 Descriptions of new features not available it the manual, and a listing&lt;br /&gt;
 of all changes, including bug fixes are documented in:&lt;br /&gt;
 &lt;br /&gt;
   /usr/local/share/doc/exim/NewStuff&lt;br /&gt;
   /usr/local/share/doc/exim/ChangeLog&lt;br /&gt;
 &lt;br /&gt;
 To use Exim instead of sendmail on startup:&lt;br /&gt;
 &lt;br /&gt;
 *) Clear the sendmail queue and stop the sendmail daemon.&lt;br /&gt;
 *) Adjust mailer.conf(5) as appropriate.&lt;br /&gt;
 *) Set the &#039;sendmail_enable&#039; rc.conf(5) variable to &#039;NONE&#039;.&lt;br /&gt;
 *) Set the &#039;daily_status_include_submit_mailq&#039; and&lt;br /&gt;
    &#039;daily_clean_hoststat_enable&#039; periodic.conf(5)&lt;br /&gt;
    variables to &#039;NO&#039;.&lt;br /&gt;
 *) Consider setting &#039;daily_queuerun_enable&#039; and&lt;br /&gt;
    &#039;daily_submit_queuerun&#039; to &amp;quot;NO&amp;quot; in periodic.conf(5),&lt;br /&gt;
    if you intend to manage queue runners / deliveries closely.&lt;br /&gt;
 *) Set the &#039;exim_enable&#039; rc.conf(5) variable to &#039;YES&#039;.&lt;br /&gt;
 *) Start exim with &#039;/usr/local/etc/rc.d/exim start&#039;.&lt;br /&gt;
 &lt;br /&gt;
 You may also want to configure newsyslog(8) to rotate Exim log files:&lt;br /&gt;
 &lt;br /&gt;
 /var/log/exim/mainlog   mailnull:mail 640 7 * @T00 ZN&lt;br /&gt;
 /var/log/exim/rejectlog mailnull:mail 640 7 * @T00 ZN&lt;br /&gt;
 &lt;br /&gt;
 Additional scripts to help upgrading are installed in:&lt;br /&gt;
 &lt;br /&gt;
   /usr/local/share/examples/exim&lt;br /&gt;
&lt;br /&gt;
Установка автозапуска Exim в /etc/rc.conf:&lt;br /&gt;
 # sysrc exim_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
 exim_enable:  -&amp;gt; YES&lt;br /&gt;
&lt;br /&gt;
== Расшифровка вывода установки mail/exim ==&lt;br /&gt;
&lt;br /&gt;
Настройка ротации файлов журнала Exim  добавлением строк в файл /etc/newslog.conf:&lt;br /&gt;
 /var/log/exim/mainlog   mailnull:mail 640 7 * @T00 ZN&lt;br /&gt;
 /var/log/exim/rejectlog mailnull:mail 640 7 * @T00 ZN&lt;br /&gt;
&lt;br /&gt;
== Настройка mail/exim ==&lt;br /&gt;
Настройки Exim устанавливаются в файле /usr/local/etc/exim/configure:&lt;br /&gt;
&lt;br /&gt;
Определение списка локальных доменов, обслуживаемых сервером (использование &amp;quot;@&amp;quot; разрешает локальные доставки):&lt;br /&gt;
 domainlist local_domains = @ : ${lookup mysql{select domain from domain where domain=&#039;${domain}&#039; and active=&#039;1&#039;}}&lt;br /&gt;
&lt;br /&gt;
Определение списка хостов, которые могут использовать сервер для пересылки исходящей почты (это обычно относится ко всей локальной сети, а также к самому серверу):&lt;br /&gt;
 hostlist   relay_from_hosts = localhost : 192.168.0.0/24&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://wiki.bsdhowto.ru/index.php?title=Clamav%2BDovecot%2BExim&amp;diff=246</id>
		<title>Clamav+Dovecot+Exim</title>
		<link rel="alternate" type="text/html" href="https://wiki.bsdhowto.ru/index.php?title=Clamav%2BDovecot%2BExim&amp;diff=246"/>
		<updated>2025-12-04T17:08:48Z</updated>

		<summary type="html">&lt;p&gt;Igor: /* Установка security/clamav */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Подготовка клетки для Clamav+Dovecot+Exim ==&lt;br /&gt;
&lt;br /&gt;
Перед использованием этой статьи рекомендуется пройти по ссылке [[Qjail|Qjail]].&lt;br /&gt;
&lt;br /&gt;
Создание отдельной файловой системы для клетки с Clamav+Dovecot+Exim в ZFS::&lt;br /&gt;
 # zfs create zroot/usr/jails/mail&lt;br /&gt;
&lt;br /&gt;
Создание клетки c именем &amp;quot;mail&amp;quot; и IPv4-адресом &amp;quot;192.168.0.105&amp;quot;, запуск и управление клеткой:&lt;br /&gt;
 # qjail create -4 192.168.0.105 mail&lt;br /&gt;
 # qjail start mail&lt;br /&gt;
 # qjail console mail&lt;br /&gt;
&lt;br /&gt;
== Установка security/clamav ==&lt;br /&gt;
&lt;br /&gt;
Clam Antivirus - антивирусный сканер, который можно использовать для почтовых систем.&lt;br /&gt;
&lt;br /&gt;
Подробная информация на сайте https://www.clamav.net/&lt;br /&gt;
&lt;br /&gt;
Установка из пакета:&lt;br /&gt;
 # pkg install clamav&lt;br /&gt;
&lt;br /&gt;
== Установка Dovecot ==&lt;br /&gt;
&lt;br /&gt;
Установка из пакета:&lt;br /&gt;
 # pkg install dovecot&lt;br /&gt;
&lt;br /&gt;
Установка автозапуска Dovecot в /etc/rc.conf:&lt;br /&gt;
 # sysrc dovecot_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
 dovecot_enable:  -&amp;gt; YES&lt;br /&gt;
&lt;br /&gt;
== Настройка Dovecot ==&lt;br /&gt;
&lt;br /&gt;
Копирование файлов настроек:&lt;br /&gt;
 # cp -Rpv /usr/local/etc/dovecot/example-config/* /usr/local/etc/dovecot&lt;br /&gt;
&lt;br /&gt;
Пример настроек в /usr/local/etc/dovecot/dovecot.conf:&lt;br /&gt;
 # Использование протокола IMAP:&lt;br /&gt;
 protocols = imap&lt;br /&gt;
 # Использование всех IPv4 данного хоста (можно указать необходимые IP-адреса):&lt;br /&gt;
 listen = *&lt;br /&gt;
&lt;br /&gt;
Пример настроек в /usr/local/etc/dovecot/dovecot-sql.conf.ext:&lt;br /&gt;
 # Использование СУБД MySQL&lt;br /&gt;
 driver = mysql&lt;br /&gt;
 # Строка подключения к базе данных Postfix Admin&lt;br /&gt;
 connect = host=192.168.0.103 dbname=mailadmin user=mailadmin password=12345678&lt;br /&gt;
 # Хранение паролей пользователей почты в базе данных Postfix Admin в открытом виде (это небезопасный способ, но можно оставить по умолчанию MD5):&lt;br /&gt;
 default_pass_scheme = PLAIN&lt;br /&gt;
 # Запрос к базе данных Postfix Admin для получения информации о пользователе, например, о расположении почтового ящика:&lt;br /&gt;
 user_query = select concat(&#039;/var/spool/dovecot/&#039;, maildir) as home, 143 as uid, 143 as gid from mailbox where username = &#039;%n@%d&#039; and active=&#039;1&#039;&lt;br /&gt;
 # Запрос к базе данных Postfix Admin для получения пароля пользователя почтового ящика:&lt;br /&gt;
 password_query = select username as user, password from mailbox where username = &#039;%n@%d&#039; and active = &#039;1&#039;&lt;br /&gt;
&lt;br /&gt;
Пример настроек аутентификации в /usr/local/etc/dovecot/conf.d/10-auth.conf:&lt;br /&gt;
 !include auth-sql.conf.ext&lt;br /&gt;
&lt;br /&gt;
Пример настроек файлов журналов в /usr/local/etc/dovecot/conf.d/10-logging.conf:&lt;br /&gt;
 # Определение расположения файлов журналов&lt;br /&gt;
 log_path = /var/log/dovecot.log&lt;br /&gt;
 # Включение регистрации неудачных попыток аутентификации и причин их неудач&lt;br /&gt;
 auth_verbose = yes&lt;br /&gt;
&lt;br /&gt;
Настройки в файле /usr/local/etc/dovecot/conf.d/10-mail.conf:&lt;br /&gt;
 # Размещение почты в корневой папке /var/spool/dovecot в формате &amp;lt;домен&amp;gt;/&amp;lt;имя ящика&amp;gt;&lt;br /&gt;
 mail_location = maildir:/var/spool/dovecot/%d/%n&lt;br /&gt;
&lt;br /&gt;
== Установка mail/exim ==&lt;br /&gt;
&lt;br /&gt;
Exim - агент отправки почты для систем Unix.&lt;br /&gt;
&lt;br /&gt;
Подробная информация на сайте http://www.exim.org/&lt;br /&gt;
&lt;br /&gt;
Перед использованием этой статьи рекомендуется пройти по ссылке [[PKG|PKG]].&lt;br /&gt;
&lt;br /&gt;
Установка из пакета:&lt;br /&gt;
 # pkg install exim&lt;br /&gt;
 Updating FreeBSD repository catalogue...&lt;br /&gt;
 FreeBSD repository is up to date.&lt;br /&gt;
 All repositories are up to date.&lt;br /&gt;
 The following 46 package(s) will be affected (of 0 checked):&lt;br /&gt;
 &lt;br /&gt;
 New packages to be INSTALLED:&lt;br /&gt;
         brotli: 1.1.0,1&lt;br /&gt;
         curl: 8.12.1&lt;br /&gt;
         cyrus-sasl: 2.1.28_5&lt;br /&gt;
         exim: 4.98.2&lt;br /&gt;
         gettext-runtime: 0.23.1&lt;br /&gt;
         &#039;&#039;&#039;[пропущен список пакетов для установки]&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
 Number of packages to be installed: 46&lt;br /&gt;
 &lt;br /&gt;
 The process will require 308 MiB more space.&lt;br /&gt;
 50 MiB to be downloaded.&lt;br /&gt;
 &lt;br /&gt;
 Proceed with this action? [y/N]: y&lt;br /&gt;
 [1/46] Fetching indexinfo-0.3.1_1.pkg: 100%    6 KiB   6.0kB/s    00:01&lt;br /&gt;
 [2/46] Fetching cyrus-sasl-2.1.28_5.pkg: 100%    1 MiB   1.1MB/s    00:01&lt;br /&gt;
 [3/46] Fetching libcjson-1.7.18_2.pkg: 100%   39 KiB  39.5kB/s    00:01&lt;br /&gt;
 [4/46] Fetching libnghttp2-1.65.0.pkg: 100%  136 KiB 139.4kB/s    00:01&lt;br /&gt;
 [5/46] Fetching p5-HTTP-Date-6.06.pkg: 100%   11 KiB  11.0kB/s    00:01&lt;br /&gt;
 [пропущен список скачиваемых пакетов]&lt;br /&gt;
 Checking integrity... done (0 conflicting)&lt;br /&gt;
 [1/46] Installing brotli-1.1.0,1...&lt;br /&gt;
 [1/46] Extracting brotli-1.1.0,1: 100%&lt;br /&gt;
 [2/46] Installing cyrus-sasl-2.1.28_5...&lt;br /&gt;
 *** Added group `cyrus&#039; (id 60)&lt;br /&gt;
 *** Added user `cyrus&#039; (id 60)&lt;br /&gt;
 [2/46] Extracting cyrus-sasl-2.1.28_5: 100%&lt;br /&gt;
 [3/46] Installing icu-76.1,1...&lt;br /&gt;
 [3/46] Extracting icu-76.1,1: 100%&lt;br /&gt;
 [4/46] Installing indexinfo-0.3.1_1...&lt;br /&gt;
 [4/46] Extracting indexinfo-0.3.1_1: 100%&lt;br /&gt;
 [5/46] Installing gettext-runtime-0.23.1...&lt;br /&gt;
 [5/46] Extracting gettext-runtime-0.23.1: 100%&lt;br /&gt;
 &#039;&#039;&#039;[пропущен список устанавливаемых пакетов]&#039;&#039;&#039;&lt;br /&gt;
 =====&lt;br /&gt;
 Message from cyrus-sasl-2.1.28_5:&lt;br /&gt;
 &lt;br /&gt;
 --&lt;br /&gt;
 You can use sasldb2 for authentication, to add users use:&lt;br /&gt;
 &lt;br /&gt;
         saslpasswd2 -c username&lt;br /&gt;
 &lt;br /&gt;
 If you want to enable SMTP AUTH with the system Sendmail, read&lt;br /&gt;
 Sendmail.README&lt;br /&gt;
 &lt;br /&gt;
 NOTE: This port has been compiled with a default pwcheck_method of&lt;br /&gt;
       auxprop.  If you want to authenticate your user by /etc/passwd,&lt;br /&gt;
       PAM or LDAP, install ports/security/cyrus-sasl2-saslauthd and&lt;br /&gt;
       set sasl_pwcheck_method to saslauthd after installing the&lt;br /&gt;
       Cyrus-IMAPd 2.X port.  You should also check the&lt;br /&gt;
       /usr/local/lib/sasl2/*.conf files for the correct&lt;br /&gt;
       pwcheck_method.&lt;br /&gt;
       If you want to use GSSAPI mechanism, install&lt;br /&gt;
       ports/security/cyrus-sasl2-gssapi.&lt;br /&gt;
       If you want to use SRP mechanism, install&lt;br /&gt;
       ports/security/cyrus-sasl2-srp.&lt;br /&gt;
       If you want to use LDAP auxprop plugin, install&lt;br /&gt;
       ports/security/cyrus-sasl2-ldapdb.&lt;br /&gt;
 =====&lt;br /&gt;
 Message from openldap26-client-2.6.9_1:&lt;br /&gt;
 &lt;br /&gt;
 --&lt;br /&gt;
 The OpenLDAP client package has been successfully installed.&lt;br /&gt;
 &lt;br /&gt;
 Edit&lt;br /&gt;
   /usr/local/etc/openldap/ldap.conf&lt;br /&gt;
 to change the system-wide client defaults.&lt;br /&gt;
 &lt;br /&gt;
 Try `man ldap.conf&#039; and visit the OpenLDAP FAQ-O-Matic at&lt;br /&gt;
   http://www.OpenLDAP.org/faq/index.cgi?file=3&lt;br /&gt;
 for more information.&lt;br /&gt;
 =====&lt;br /&gt;
 Message from groff-1.23.0_4:&lt;br /&gt;
 &lt;br /&gt;
 --&lt;br /&gt;
 In order to be able to use the html driver, you need to install the following&lt;br /&gt;
 packages:&lt;br /&gt;
  - ghostscript&lt;br /&gt;
  - netpbm&lt;br /&gt;
 --&lt;br /&gt;
 ===&amp;gt;   NOTICE:&lt;br /&gt;
 &lt;br /&gt;
 The groff port currently does not have a maintainer. As a result, it is&lt;br /&gt;
 more likely to have unresolved issues, not be up-to-date, or even be removed in&lt;br /&gt;
 the future. To volunteer to maintain this port, please create an issue at:&lt;br /&gt;
 &lt;br /&gt;
 https://bugs.freebsd.org/bugzilla&lt;br /&gt;
 &lt;br /&gt;
 More information about port maintainership is available at:&lt;br /&gt;
 &lt;br /&gt;
 https://docs.freebsd.org/en/articles/contributing/#ports-contributing&lt;br /&gt;
 =====&lt;br /&gt;
 Message from mysql80-client-8.0.41:&lt;br /&gt;
 &lt;br /&gt;
 --&lt;br /&gt;
 This is the mysql CLIENT without the server.&lt;br /&gt;
 for complete server and client, please install databases/mysql80-server&lt;br /&gt;
 =====&lt;br /&gt;
 Message from exim-4.98.2:&lt;br /&gt;
 &lt;br /&gt;
 --&lt;br /&gt;
 The following documentation has been installed:&lt;br /&gt;
 &lt;br /&gt;
   man exim                              -&amp;gt; Exim options (command line)&lt;br /&gt;
   /usr/local/share/doc/exim/spec.txt    -&amp;gt; Exim Specification (User Guide)&lt;br /&gt;
   /usr/local/share/doc/exim/filter.txt  -&amp;gt; Exim Filter Specification (for end-users)&lt;br /&gt;
 &lt;br /&gt;
 Postscript, PDF, HTML and texinfo versions of these documents can be&lt;br /&gt;
 installed via one of the mail/exim-doc-* ports.&lt;br /&gt;
 &lt;br /&gt;
 An online version as well as a comprehensive FAQ and a mailing list&lt;br /&gt;
 archive is available at:&lt;br /&gt;
 &lt;br /&gt;
   http://www.exim.org/&lt;br /&gt;
 &lt;br /&gt;
 Descriptions of new features not available it the manual, and a listing&lt;br /&gt;
 of all changes, including bug fixes are documented in:&lt;br /&gt;
 &lt;br /&gt;
   /usr/local/share/doc/exim/NewStuff&lt;br /&gt;
   /usr/local/share/doc/exim/ChangeLog&lt;br /&gt;
 &lt;br /&gt;
 To use Exim instead of sendmail on startup:&lt;br /&gt;
 &lt;br /&gt;
 *) Clear the sendmail queue and stop the sendmail daemon.&lt;br /&gt;
 *) Adjust mailer.conf(5) as appropriate.&lt;br /&gt;
 *) Set the &#039;sendmail_enable&#039; rc.conf(5) variable to &#039;NONE&#039;.&lt;br /&gt;
 *) Set the &#039;daily_status_include_submit_mailq&#039; and&lt;br /&gt;
    &#039;daily_clean_hoststat_enable&#039; periodic.conf(5)&lt;br /&gt;
    variables to &#039;NO&#039;.&lt;br /&gt;
 *) Consider setting &#039;daily_queuerun_enable&#039; and&lt;br /&gt;
    &#039;daily_submit_queuerun&#039; to &amp;quot;NO&amp;quot; in periodic.conf(5),&lt;br /&gt;
    if you intend to manage queue runners / deliveries closely.&lt;br /&gt;
 *) Set the &#039;exim_enable&#039; rc.conf(5) variable to &#039;YES&#039;.&lt;br /&gt;
 *) Start exim with &#039;/usr/local/etc/rc.d/exim start&#039;.&lt;br /&gt;
 &lt;br /&gt;
 You may also want to configure newsyslog(8) to rotate Exim log files:&lt;br /&gt;
 &lt;br /&gt;
 /var/log/exim/mainlog   mailnull:mail 640 7 * @T00 ZN&lt;br /&gt;
 /var/log/exim/rejectlog mailnull:mail 640 7 * @T00 ZN&lt;br /&gt;
 &lt;br /&gt;
 Additional scripts to help upgrading are installed in:&lt;br /&gt;
 &lt;br /&gt;
   /usr/local/share/examples/exim&lt;br /&gt;
&lt;br /&gt;
Установка автозапуска Exim в /etc/rc.conf:&lt;br /&gt;
 # sysrc exim_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
 exim_enable:  -&amp;gt; YES&lt;br /&gt;
&lt;br /&gt;
== Расшифровка вывода установки mail/exim ==&lt;br /&gt;
&lt;br /&gt;
Настройка ротации файлов журнала Exim  добавлением строк в файл /etc/newslog.conf:&lt;br /&gt;
 /var/log/exim/mainlog   mailnull:mail 640 7 * @T00 ZN&lt;br /&gt;
 /var/log/exim/rejectlog mailnull:mail 640 7 * @T00 ZN&lt;br /&gt;
&lt;br /&gt;
== Настройка mail/exim ==&lt;br /&gt;
Настройки Exim устанавливаются в файле /usr/local/etc/exim/configure:&lt;br /&gt;
&lt;br /&gt;
Определение списка локальных доменов, обслуживаемых сервером (использование &amp;quot;@&amp;quot; разрешает локальные доставки):&lt;br /&gt;
 domainlist local_domains = @ : ${lookup mysql{select domain from domain where domain=&#039;${domain}&#039; and active=&#039;1&#039;}}&lt;br /&gt;
&lt;br /&gt;
Определение списка хостов, которые могут использовать сервер для пересылки исходящей почты (это обычно относится ко всей локальной сети, а также к самому серверу):&lt;br /&gt;
 hostlist   relay_from_hosts = localhost : 192.168.0.0/24&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://wiki.bsdhowto.ru/index.php?title=Postfix_Admin&amp;diff=245</id>
		<title>Postfix Admin</title>
		<link rel="alternate" type="text/html" href="https://wiki.bsdhowto.ru/index.php?title=Postfix_Admin&amp;diff=245"/>
		<updated>2025-12-04T02:46:16Z</updated>

		<summary type="html">&lt;p&gt;Igor: /* Окончательная настройка сайта */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Установка postfixadmin-php84 ==&lt;br /&gt;
&lt;br /&gt;
Postfix Admin — веб-инструмент управления, написанный на PHP для Postfix (но прекрасно подходит и для Exim) с виртуальными доменами в стиле Postfix, использующими поиск в MySQL или PostgreSQL. Так-же Postfix Admin работает на Apache, Lighttpd и на любом веб-сервере с поддержкой PHP 5.1.2+.&lt;br /&gt;
&lt;br /&gt;
Подробная информация о Postfix Admin на сайте http://www.postfixadmin.org/&lt;br /&gt;
&lt;br /&gt;
Установка из пакета (предварительная установка пакетов PKG и PHP не требуется, дополнительная информация о которых в статьях [[PKG]] и [[PHP+Nginx|Установка lang/php84]]; потребуется установка СУБД, например - MySQL, дополнительная информация о которой в статье [[MySQL]]):&lt;br /&gt;
 # pkg install postfixadmin-php84&lt;br /&gt;
&lt;br /&gt;
Проверка установки postfixadmin-php84:&lt;br /&gt;
 # pkg version -v | grep php84&lt;br /&gt;
 php84-8.4.5_1                      =   up-to-date with remote&lt;br /&gt;
 php84-mbstring-8.4.5_1             =   up-to-date with remote&lt;br /&gt;
 php84-pdo-8.4.5_1                  =   up-to-date with remote&lt;br /&gt;
 php84-pdo_sqlite-8.4.5_1           =   up-to-date with remote&lt;br /&gt;
 php84-pecl-imap-1.0.3              =   up-to-date with remote&lt;br /&gt;
 php84-session-8.4.5_1              =   up-to-date with remote&lt;br /&gt;
 postfixadmin-php84-3.4.d.20211018  =   up-to-date with remote&lt;br /&gt;
&lt;br /&gt;
Вывод команды содержит список установленных расширений PHP. В списке отсутствует расширение php84-pdo_mysql, которое требуется для СУБД MySQL, если для Postfix Admin будет использована она.&lt;br /&gt;
&lt;br /&gt;
Установка из пакета расширения php84-pdo_mysql:&lt;br /&gt;
 # pkg install php84-pdo_mysql&lt;br /&gt;
 Updating FreeBSD repository catalogue...&lt;br /&gt;
 FreeBSD repository is up to date.&lt;br /&gt;
 All repositories are up to date.&lt;br /&gt;
 The following 1 package(s) will be affected (of 0 checked):&lt;br /&gt;
 &lt;br /&gt;
 New packages to be INSTALLED:&lt;br /&gt;
         php84-pdo_mysql: 8.4.5_1&lt;br /&gt;
 &lt;br /&gt;
 Number of packages to be installed: 1&lt;br /&gt;
 &lt;br /&gt;
 19 KiB to be downloaded.&lt;br /&gt;
 &lt;br /&gt;
 Proceed with this action? [y/N]: y&lt;br /&gt;
 [1/1] Fetching php84-pdo_mysql-8.4.5_1.pkg: 100%   19 KiB  19.7kB/s    00:01&lt;br /&gt;
 Checking integrity... done (0 conflicting)&lt;br /&gt;
 [1/1] Installing php84-pdo_mysql-8.4.5_1...&lt;br /&gt;
 [1/1] Extracting php84-pdo_mysql-8.4.5_1: 100%&lt;br /&gt;
 =====&lt;br /&gt;
 Message from php84-pdo_mysql-8.4.5_1:&lt;br /&gt;
 &lt;br /&gt;
 --&lt;br /&gt;
 This file has been added to automatically load the installed extension:&lt;br /&gt;
 /usr/local/etc/php/ext-30-pdo_mysql.ini.sample&lt;br /&gt;
&lt;br /&gt;
Повторная проверка установки:&lt;br /&gt;
 # pkg version -v | grep php84&lt;br /&gt;
 php84-8.4.5_1                      =   up-to-date with remote&lt;br /&gt;
 php84-mbstring-8.4.5_1             =   up-to-date with remote&lt;br /&gt;
 php84-pdo-8.4.5_1                  =   up-to-date with remote&lt;br /&gt;
 php84-pdo_mysql-8.4.5_1            =   up-to-date with remote&lt;br /&gt;
 php84-pdo_sqlite-8.4.5_1           =   up-to-date with remote&lt;br /&gt;
 php84-pecl-imap-1.0.3              =   up-to-date with remote&lt;br /&gt;
 php84-session-8.4.5_1              =   up-to-date with remote&lt;br /&gt;
 postfixadmin-php84-3.4.d.20211018  =   up-to-date with remote&lt;br /&gt;
&lt;br /&gt;
Вывод команды содержит список всех необходимых установленных расширений PHP.&lt;br /&gt;
&lt;br /&gt;
Перезапуск PHP-FPM после установки расширений PHP:&lt;br /&gt;
 # service php_fpm restart&lt;br /&gt;
 Performing sanity check on php-fpm configuration:&lt;br /&gt;
 [28-Apr-2025 16:58:14] NOTICE: configuration file /usr/local/etc/php-fpm.conf test is successful&lt;br /&gt;
 Stopping php_fpm.&lt;br /&gt;
 Performing sanity check on php-fpm configuration:&lt;br /&gt;
 [28-Apr-2025 16:58:14] NOTICE: configuration file /usr/local/etc/php-fpm.conf test is successful&lt;br /&gt;
 Starting php_fpm.&lt;br /&gt;
&lt;br /&gt;
== Начальная настройка postfixadmin-php84 ==&lt;br /&gt;
&lt;br /&gt;
Копирование структуры сайта:&lt;br /&gt;
 # cd /usr/local/www&lt;br /&gt;
 # cp -Rp postfixadmin mailadmin.mydomain.ru&lt;br /&gt;
&lt;br /&gt;
Настройка сайта Postfix Admin в файле /usr/local/etc/nginx/mailadmin.mydomain.ru.conf:&lt;br /&gt;
 server {&lt;br /&gt;
     listen       80;&lt;br /&gt;
     server_name  mailadmin.mydomain.ru;&lt;br /&gt;
 &lt;br /&gt;
     access_log   /var/log/nginx/mailadmin.mydomain.ru.access.log;&lt;br /&gt;
     error_log    /var/log/nginx/mailadmin.mydomain.ru.error.log;&lt;br /&gt;
 &lt;br /&gt;
     location / {&lt;br /&gt;
         root   /usr/local/www/mailadmin.mydomain.ru/public;&lt;br /&gt;
         index  index.php;&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000&lt;br /&gt;
     #&lt;br /&gt;
     location ~ \.php$ {&lt;br /&gt;
         fastcgi_pass   127.0.0.1:9000;&lt;br /&gt;
         fastcgi_index  index.php;&lt;br /&gt;
         fastcgi_param  SCRIPT_FILENAME  /usr/local/www/mailadmin.mydomain.ru/public$fastcgi_script_name;&lt;br /&gt;
         include        fastcgi_params;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Включение конфигурации сайта Postfix Admin в файл /usr/local/etc/nginx/nginx.conf:&lt;br /&gt;
     include /usr/local/etc/nginx/mailadmin.mydomain.ru.conf;&lt;br /&gt;
&lt;br /&gt;
Перезагрузка конфигурации Nginx после первоначальной настройки сайта для доступа к нему со стороны Let&#039;s Encrypt по HTTP:&lt;br /&gt;
 # service nginx reload&lt;br /&gt;
 Performing sanity check on nginx configuration:&lt;br /&gt;
 nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok&lt;br /&gt;
 nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful&lt;br /&gt;
&lt;br /&gt;
== Получение сертификата ==&lt;br /&gt;
&lt;br /&gt;
Получение сертификата для домена:&lt;br /&gt;
 # certbot --nginx -d mailadmin.mydomain.ru&lt;br /&gt;
&lt;br /&gt;
Скрипт включит следующие строки в файл конфигурации сайта /usr/local/etc/nginx/mailadmin.mydomain.ru.conf: &lt;br /&gt;
     listen 443 ssl; # managed by Certbot&lt;br /&gt;
     ssl_certificate /usr/local/etc/letsencrypt/live/mailadmin.mydomain.ru/fullchain.pem; # managed by Certbot&lt;br /&gt;
     ssl_certificate_key /usr/local/etc/letsencrypt/live/mailadmin.mydomain.ru/privkey.pem; # managed by Certbot&lt;br /&gt;
     include /usr/local/etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot&lt;br /&gt;
     ssl_dhparam /usr/local/etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot&lt;br /&gt;
&lt;br /&gt;
Перезагрузка конфигурации Nginx для включения доступа по HTTPS:&lt;br /&gt;
 # service nginx reload&lt;br /&gt;
 Performing sanity check on nginx configuration:&lt;br /&gt;
 nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok&lt;br /&gt;
 nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful&lt;br /&gt;
&lt;br /&gt;
== Окончательная настройка сайта ==&lt;br /&gt;
&lt;br /&gt;
Настройки Postfix Admin по умолчанию находятся в файле /usr/local/www/mailadmin.mydomain.ru/config.inc.php. Его не рекомендуется изменять на случай обновлений пакета.&lt;br /&gt;
&lt;br /&gt;
Редактирование настроек следует делать в файле /usr/local/www/mailadmin.mydomain.ru/config.local.php (он должен начинаться с префикса):&lt;br /&gt;
 &amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
Параметр означает, что все необходимые настройки внесены в файл /usr/local/www/mailadmin.mydomain.ru/config.local.php:&lt;br /&gt;
 $CONF[&#039;configured&#039;] = true;&lt;br /&gt;
&lt;br /&gt;
Создание хеша установочного пароля:&lt;br /&gt;
 # php -r &#039;echo password_hash(&amp;quot;&amp;lt;пароль&amp;gt;&amp;quot;, PASSWORD_DEFAULT); echo &amp;quot;\n&amp;quot;;&#039;&lt;br /&gt;
 $2y$12$w7H3Vo2EIuHOHRxObmUWZ.DpsujtU5yy8PWbfYxzXBSe2tun/qjTG&lt;br /&gt;
&lt;br /&gt;
Добавление полученного хеша в файл настроек /usr/local/www/mailadmin.mydomain.ru/config.local.php:&lt;br /&gt;
 $CONF[&#039;setup_password&#039;] = &#039;$2y$12$w7H3Vo2EIuHOHRxObmUWZ.DpsujtU5yy8PWbfYxzXBSe2tun/qjTG&#039;;&lt;br /&gt;
&lt;br /&gt;
Настройка языка:&lt;br /&gt;
 $CONF[&#039;default_language&#039;] = &#039;ru&#039;;&lt;br /&gt;
&lt;br /&gt;
Пример настройки доступа Postfix Admin к СУБД в файле /usr/local/www/mailadmin.mydomain.ru/config.local.php&lt;br /&gt;
 $CONF[&#039;database_type&#039;] = &#039;mysqli&#039;;&lt;br /&gt;
 $CONF[&#039;database_host&#039;] = &#039;192.168.0.103&#039;;&lt;br /&gt;
 $CONF[&#039;database_user&#039;] = &#039;mailadmin&#039;;&lt;br /&gt;
 $CONF[&#039;database_password&#039;] = &#039;12345678&#039;;&lt;br /&gt;
 $CONF[&#039;database_name&#039;] = &#039;mailadmin&#039;;&lt;br /&gt;
&lt;br /&gt;
Настройка SMTP-сервера, куда будут отправляться уведомления о создании почтовых ящиков:&lt;br /&gt;
 $CONF[&#039;smtp_server&#039;] = &#039;192.68.0.105&#039;;&lt;br /&gt;
 $CONF[&#039;smtp_port&#039;] = &#039;25&#039;;&lt;br /&gt;
&lt;br /&gt;
Настройка способа шифрования паролей почтовых ящиков (в данном случае пароли сохраняются в базе данных Postfix Admin в открытом виде, что небезопасно):&lt;br /&gt;
 $CONF[&#039;encrypt&#039;] = &#039;cleartext&#039;;&lt;br /&gt;
&lt;br /&gt;
Настройка автоматической генерации паролей:&lt;br /&gt;
 $CONF[&#039;generate_password&#039;] = &#039;YES&#039;;&lt;br /&gt;
&lt;br /&gt;
Создание базы данных Postfix Admin:&lt;br /&gt;
 # mysql -u root -p&lt;br /&gt;
 &lt;br /&gt;
 &amp;gt; create database mailadmin;&lt;br /&gt;
 Query OK, 1 row affected (0.01 sec)&lt;br /&gt;
&lt;br /&gt;
Предоставление доступа пользователю &#039;mailadmin&#039; к базе данных &#039;mailadmin&#039; с хоста &#039;&amp;lt;IP-адрес&amp;gt;&#039; (потребуется доступ с хостов, где расположены Postfix Admin, SMTP-сервер и IMAP-сервер) и применение изменений:&lt;br /&gt;
 &amp;gt; create user &#039;mailadmin&#039;@&#039;&amp;lt;IP-адрес&amp;gt;&#039; identified by &#039;&amp;lt;пароль&amp;gt;&#039;;&lt;br /&gt;
 Query OK, 0 rows affected (0.04 sec)&lt;br /&gt;
 &lt;br /&gt;
 &amp;gt; grant all on mailadmin.* to &#039;mailadmin&#039;@&#039;&amp;lt;IP-адрес&amp;gt;&#039;;&lt;br /&gt;
 Query OK, 0 rows affected (0.00 sec)&lt;br /&gt;
 &lt;br /&gt;
 &amp;gt; flush privileges;&lt;br /&gt;
 Query OK, 0 rows affected (0.01 sec)&lt;br /&gt;
&lt;br /&gt;
Переход на сайт:&lt;br /&gt;
 https://mailadmin.mydomain.ru/setup.php&lt;br /&gt;
&lt;br /&gt;
Вывод команды содержит ошибки:&lt;br /&gt;
 Errors (MUST be fixed)&lt;br /&gt;
 ⛔Database connection string : mysql:mysql:host=192.168.128.13;dbname=mailadmin;charset=UTF8&lt;br /&gt;
 ⛔Problem connecting to database, check database configuration ($CONF[&#039;database_*&#039;] entries in config.local.php)&lt;br /&gt;
 ⛔SQLSTATE[HY000] [2002] No such file or directory&lt;br /&gt;
&lt;br /&gt;
Параметр &amp;quot;Database connection string&amp;quot; содержит строку &amp;quot;&#039;&#039;&#039;mysql:mysql:&#039;&#039;&#039;host=192.168.0.103;dbname=mailadmin;charset=UTF8&amp;quot;, в которой дублируется подстрока &amp;quot;mysql:&amp;quot;. Требуется исправление ошибки в функции &amp;quot;function db_connection_string()&amp;quot; в файле /usr/local/www/mailadmin.mydomain.ru/functions.inc.php:&lt;br /&gt;
 $dsn = &#039;mysql:&#039;;&lt;br /&gt;
 if ($socket) {&lt;br /&gt;
     $dsn .= &amp;quot;unix_socket={$socket}&amp;quot;;&lt;br /&gt;
 } else {&lt;br /&gt;
     $dsn .= &amp;quot;mysql:host={$CONF[&#039;database_host&#039;]}&amp;quot;;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Необходима замена строки:&lt;br /&gt;
     $dsn .= &amp;quot;mysql:host={$CONF[&#039;database_host&#039;]}&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
на строку:&lt;br /&gt;
     $dsn .= &amp;quot;host={$CONF[&#039;database_host&#039;]}&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
Пример вывода сайта:&lt;br /&gt;
 ✅ PHP version - 8.4.12 &lt;br /&gt;
 ✅ Postfixadmin public url detected as http://mailadmin.mydomain.ru/ use $CONF[&#039;site_url&#039;] to override&lt;br /&gt;
 ✅ Postfixadmin installed at - /usr/local/www/mailadmin.mydomain.ru/public&lt;br /&gt;
 ✅ config.local.php file found : /usr/local/www/mailadmin.mydomain.ru/config.local.php&lt;br /&gt;
 ✅ Database - MySQL support available&lt;br /&gt;
 ✅ Database - SQLite support available&lt;br /&gt;
 ✅ Password hashing - $CONF[&amp;quot;encrypt&amp;quot;] = cleartext&lt;br /&gt;
 ✅ Password hashing - $CONF[&amp;quot;encrypt&amp;quot;] - hash generation OK&lt;br /&gt;
 ✅ Database connection configured OK (using PDO mysql:host=192.168.0.103;dbname=mailadmin;charset=UTF8)&lt;br /&gt;
 ✅ Database connection - Connected OK&lt;br /&gt;
 ✅ Depends on: PHP session support - OK&lt;br /&gt;
 ✅ Depends on: PHP pcre support - OK&lt;br /&gt;
 ✅ Depends on: PHP mbstring support - OK&lt;br /&gt;
 ✅ Optional - PHP IMAP functions - OK&lt;br /&gt;
&lt;br /&gt;
Сайт предложит настроить учётную запись администратора, после чего можно использовать Postfix Admin для администрирования почтовых доменов, ящиков и алиасов.&lt;br /&gt;
&lt;br /&gt;
Приглашение в управление Postfix Admin:&lt;br /&gt;
[[Файл:2025050201.png|left|мини]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
Вид главной страницы Postfix Admin:&lt;br /&gt;
[[Файл:2025050202.png|left|мини]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
Пример почтового алиаса домена и домена, на который будет приходить почта:&lt;br /&gt;
[[Файл:2025050203.png|left|мини]]&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://wiki.bsdhowto.ru/index.php?title=Postfix_Admin&amp;diff=244</id>
		<title>Postfix Admin</title>
		<link rel="alternate" type="text/html" href="https://wiki.bsdhowto.ru/index.php?title=Postfix_Admin&amp;diff=244"/>
		<updated>2025-12-04T02:43:28Z</updated>

		<summary type="html">&lt;p&gt;Igor: /* Окончательная настройка сайта */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Установка postfixadmin-php84 ==&lt;br /&gt;
&lt;br /&gt;
Postfix Admin — веб-инструмент управления, написанный на PHP для Postfix (но прекрасно подходит и для Exim) с виртуальными доменами в стиле Postfix, использующими поиск в MySQL или PostgreSQL. Так-же Postfix Admin работает на Apache, Lighttpd и на любом веб-сервере с поддержкой PHP 5.1.2+.&lt;br /&gt;
&lt;br /&gt;
Подробная информация о Postfix Admin на сайте http://www.postfixadmin.org/&lt;br /&gt;
&lt;br /&gt;
Установка из пакета (предварительная установка пакетов PKG и PHP не требуется, дополнительная информация о которых в статьях [[PKG]] и [[PHP+Nginx|Установка lang/php84]]; потребуется установка СУБД, например - MySQL, дополнительная информация о которой в статье [[MySQL]]):&lt;br /&gt;
 # pkg install postfixadmin-php84&lt;br /&gt;
&lt;br /&gt;
Проверка установки postfixadmin-php84:&lt;br /&gt;
 # pkg version -v | grep php84&lt;br /&gt;
 php84-8.4.5_1                      =   up-to-date with remote&lt;br /&gt;
 php84-mbstring-8.4.5_1             =   up-to-date with remote&lt;br /&gt;
 php84-pdo-8.4.5_1                  =   up-to-date with remote&lt;br /&gt;
 php84-pdo_sqlite-8.4.5_1           =   up-to-date with remote&lt;br /&gt;
 php84-pecl-imap-1.0.3              =   up-to-date with remote&lt;br /&gt;
 php84-session-8.4.5_1              =   up-to-date with remote&lt;br /&gt;
 postfixadmin-php84-3.4.d.20211018  =   up-to-date with remote&lt;br /&gt;
&lt;br /&gt;
Вывод команды содержит список установленных расширений PHP. В списке отсутствует расширение php84-pdo_mysql, которое требуется для СУБД MySQL, если для Postfix Admin будет использована она.&lt;br /&gt;
&lt;br /&gt;
Установка из пакета расширения php84-pdo_mysql:&lt;br /&gt;
 # pkg install php84-pdo_mysql&lt;br /&gt;
 Updating FreeBSD repository catalogue...&lt;br /&gt;
 FreeBSD repository is up to date.&lt;br /&gt;
 All repositories are up to date.&lt;br /&gt;
 The following 1 package(s) will be affected (of 0 checked):&lt;br /&gt;
 &lt;br /&gt;
 New packages to be INSTALLED:&lt;br /&gt;
         php84-pdo_mysql: 8.4.5_1&lt;br /&gt;
 &lt;br /&gt;
 Number of packages to be installed: 1&lt;br /&gt;
 &lt;br /&gt;
 19 KiB to be downloaded.&lt;br /&gt;
 &lt;br /&gt;
 Proceed with this action? [y/N]: y&lt;br /&gt;
 [1/1] Fetching php84-pdo_mysql-8.4.5_1.pkg: 100%   19 KiB  19.7kB/s    00:01&lt;br /&gt;
 Checking integrity... done (0 conflicting)&lt;br /&gt;
 [1/1] Installing php84-pdo_mysql-8.4.5_1...&lt;br /&gt;
 [1/1] Extracting php84-pdo_mysql-8.4.5_1: 100%&lt;br /&gt;
 =====&lt;br /&gt;
 Message from php84-pdo_mysql-8.4.5_1:&lt;br /&gt;
 &lt;br /&gt;
 --&lt;br /&gt;
 This file has been added to automatically load the installed extension:&lt;br /&gt;
 /usr/local/etc/php/ext-30-pdo_mysql.ini.sample&lt;br /&gt;
&lt;br /&gt;
Повторная проверка установки:&lt;br /&gt;
 # pkg version -v | grep php84&lt;br /&gt;
 php84-8.4.5_1                      =   up-to-date with remote&lt;br /&gt;
 php84-mbstring-8.4.5_1             =   up-to-date with remote&lt;br /&gt;
 php84-pdo-8.4.5_1                  =   up-to-date with remote&lt;br /&gt;
 php84-pdo_mysql-8.4.5_1            =   up-to-date with remote&lt;br /&gt;
 php84-pdo_sqlite-8.4.5_1           =   up-to-date with remote&lt;br /&gt;
 php84-pecl-imap-1.0.3              =   up-to-date with remote&lt;br /&gt;
 php84-session-8.4.5_1              =   up-to-date with remote&lt;br /&gt;
 postfixadmin-php84-3.4.d.20211018  =   up-to-date with remote&lt;br /&gt;
&lt;br /&gt;
Вывод команды содержит список всех необходимых установленных расширений PHP.&lt;br /&gt;
&lt;br /&gt;
Перезапуск PHP-FPM после установки расширений PHP:&lt;br /&gt;
 # service php_fpm restart&lt;br /&gt;
 Performing sanity check on php-fpm configuration:&lt;br /&gt;
 [28-Apr-2025 16:58:14] NOTICE: configuration file /usr/local/etc/php-fpm.conf test is successful&lt;br /&gt;
 Stopping php_fpm.&lt;br /&gt;
 Performing sanity check on php-fpm configuration:&lt;br /&gt;
 [28-Apr-2025 16:58:14] NOTICE: configuration file /usr/local/etc/php-fpm.conf test is successful&lt;br /&gt;
 Starting php_fpm.&lt;br /&gt;
&lt;br /&gt;
== Начальная настройка postfixadmin-php84 ==&lt;br /&gt;
&lt;br /&gt;
Копирование структуры сайта:&lt;br /&gt;
 # cd /usr/local/www&lt;br /&gt;
 # cp -Rp postfixadmin mailadmin.mydomain.ru&lt;br /&gt;
&lt;br /&gt;
Настройка сайта Postfix Admin в файле /usr/local/etc/nginx/mailadmin.mydomain.ru.conf:&lt;br /&gt;
 server {&lt;br /&gt;
     listen       80;&lt;br /&gt;
     server_name  mailadmin.mydomain.ru;&lt;br /&gt;
 &lt;br /&gt;
     access_log   /var/log/nginx/mailadmin.mydomain.ru.access.log;&lt;br /&gt;
     error_log    /var/log/nginx/mailadmin.mydomain.ru.error.log;&lt;br /&gt;
 &lt;br /&gt;
     location / {&lt;br /&gt;
         root   /usr/local/www/mailadmin.mydomain.ru/public;&lt;br /&gt;
         index  index.php;&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000&lt;br /&gt;
     #&lt;br /&gt;
     location ~ \.php$ {&lt;br /&gt;
         fastcgi_pass   127.0.0.1:9000;&lt;br /&gt;
         fastcgi_index  index.php;&lt;br /&gt;
         fastcgi_param  SCRIPT_FILENAME  /usr/local/www/mailadmin.mydomain.ru/public$fastcgi_script_name;&lt;br /&gt;
         include        fastcgi_params;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Включение конфигурации сайта Postfix Admin в файл /usr/local/etc/nginx/nginx.conf:&lt;br /&gt;
     include /usr/local/etc/nginx/mailadmin.mydomain.ru.conf;&lt;br /&gt;
&lt;br /&gt;
Перезагрузка конфигурации Nginx после первоначальной настройки сайта для доступа к нему со стороны Let&#039;s Encrypt по HTTP:&lt;br /&gt;
 # service nginx reload&lt;br /&gt;
 Performing sanity check on nginx configuration:&lt;br /&gt;
 nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok&lt;br /&gt;
 nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful&lt;br /&gt;
&lt;br /&gt;
== Получение сертификата ==&lt;br /&gt;
&lt;br /&gt;
Получение сертификата для домена:&lt;br /&gt;
 # certbot --nginx -d mailadmin.mydomain.ru&lt;br /&gt;
&lt;br /&gt;
Скрипт включит следующие строки в файл конфигурации сайта /usr/local/etc/nginx/mailadmin.mydomain.ru.conf: &lt;br /&gt;
     listen 443 ssl; # managed by Certbot&lt;br /&gt;
     ssl_certificate /usr/local/etc/letsencrypt/live/mailadmin.mydomain.ru/fullchain.pem; # managed by Certbot&lt;br /&gt;
     ssl_certificate_key /usr/local/etc/letsencrypt/live/mailadmin.mydomain.ru/privkey.pem; # managed by Certbot&lt;br /&gt;
     include /usr/local/etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot&lt;br /&gt;
     ssl_dhparam /usr/local/etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot&lt;br /&gt;
&lt;br /&gt;
Перезагрузка конфигурации Nginx для включения доступа по HTTPS:&lt;br /&gt;
 # service nginx reload&lt;br /&gt;
 Performing sanity check on nginx configuration:&lt;br /&gt;
 nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok&lt;br /&gt;
 nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful&lt;br /&gt;
&lt;br /&gt;
== Окончательная настройка сайта ==&lt;br /&gt;
&lt;br /&gt;
Настройки Postfix Admin по умолчанию находятся в файле /usr/local/www/mailadmin.mydomain.ru/config.inc.php. Его не рекомендуется изменять на случай обновлений пакета.&lt;br /&gt;
&lt;br /&gt;
Редактирование настроек следует делать в файле /usr/local/www/mailadmin.mydomain.ru/config.local.php (он должен начинаться с префикса):&lt;br /&gt;
 &amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
Параметр означает, что все необходимые настройки внесены в файл /usr/local/www/mailadmin.mydomain.ru/config.local.php:&lt;br /&gt;
 $CONF[&#039;configured&#039;] = true;&lt;br /&gt;
&lt;br /&gt;
Создание хеша установочного пароля:&lt;br /&gt;
 # php -r &#039;echo password_hash(&amp;quot;&amp;lt;пароль&amp;gt;&amp;quot;, PASSWORD_DEFAULT); echo &amp;quot;\n&amp;quot;;&#039;&lt;br /&gt;
 $2y$12$w7H3Vo2EIuHOHRxObmUWZ.DpsujtU5yy8PWbfYxzXBSe2tun/qjTG&lt;br /&gt;
&lt;br /&gt;
Добавление полученного хеша в файл настроек /usr/local/www/mailadmin.mydomain.ru/config.local.php:&lt;br /&gt;
 $CONF[&#039;setup_password&#039;] = &#039;$2y$12$w7H3Vo2EIuHOHRxObmUWZ.DpsujtU5yy8PWbfYxzXBSe2tun/qjTG&#039;;&lt;br /&gt;
&lt;br /&gt;
Настройка языка:&lt;br /&gt;
 $CONF[&#039;default_language&#039;] = &#039;ru&#039;;&lt;br /&gt;
&lt;br /&gt;
Пример настройки доступа Postfix Admin к СУБД в файле /usr/local/www/mailadmin.mydomain.ru/config.local.php&lt;br /&gt;
 $CONF[&#039;database_type&#039;] = &#039;mysqli&#039;;&lt;br /&gt;
 $CONF[&#039;database_host&#039;] = &#039;192.168.0.103&#039;;&lt;br /&gt;
 $CONF[&#039;database_user&#039;] = &#039;mailadmin&#039;;&lt;br /&gt;
 $CONF[&#039;database_password&#039;] = &#039;12345678&#039;;&lt;br /&gt;
 $CONF[&#039;database_name&#039;] = &#039;mailadmin&#039;;&lt;br /&gt;
&lt;br /&gt;
Настройка SMTP-сервера, куда будут отправляться уведомления о создании почтовых ящиков:&lt;br /&gt;
 $CONF[&#039;smtp_server&#039;] = &#039;192.68.0.105&#039;;&lt;br /&gt;
 $CONF[&#039;smtp_port&#039;] = &#039;25&#039;;&lt;br /&gt;
&lt;br /&gt;
Настройка способа шифрования паролей почтовых ящиков (в данном случае пароли сохраняются в базе данных Postfix Admin в открытом виде, что небезопасно):&lt;br /&gt;
 $CONF[&#039;encrypt&#039;] = &#039;cleartext&#039;;&lt;br /&gt;
&lt;br /&gt;
Настройка автоматической генерации паролей:&lt;br /&gt;
 $CONF[&#039;generate_password&#039;] = &#039;YES&#039;;&lt;br /&gt;
&lt;br /&gt;
Создание базы данных Postfix Admin:&lt;br /&gt;
 # mysql -u root -p&lt;br /&gt;
 &lt;br /&gt;
 &amp;gt; create database mailadmin;&lt;br /&gt;
 Query OK, 1 row affected (0.01 sec)&lt;br /&gt;
&lt;br /&gt;
Предоставление доступа пользователю &#039;mailadmin&#039; к базе данных &#039;mailadmin&#039; с хоста &#039;&amp;lt;IP-адрес&amp;gt;&#039; (потребуется доступ с хостов, где расположены Postfix Admin, SMTP-сервер и IMAP-сервер) и применение изменений:&lt;br /&gt;
 &amp;gt; create user &#039;mailadmin&#039;@&#039;&amp;lt;IP-адрес&amp;gt;&#039; identified by &#039;&amp;lt;пароль&amp;gt;&#039;;&lt;br /&gt;
 Query OK, 0 rows affected (0.04 sec)&lt;br /&gt;
 &lt;br /&gt;
 &amp;gt; grant all on mailadmin.* to &#039;mailadmin&#039;@&#039;&amp;lt;IP-адрес&amp;gt;&#039;;&lt;br /&gt;
 Query OK, 0 rows affected (0.00 sec)&lt;br /&gt;
 &lt;br /&gt;
 &amp;gt; flush privileges;&lt;br /&gt;
 Query OK, 0 rows affected (0.01 sec)&lt;br /&gt;
&lt;br /&gt;
Переход на сайт:&lt;br /&gt;
 https://mailadmin.mydomain.ru/setup.php&lt;br /&gt;
&lt;br /&gt;
Вывод команды содержит ошибки:&lt;br /&gt;
 Errors (MUST be fixed)&lt;br /&gt;
 ⛔Database connection string : mysql:mysql:host=192.168.128.13;dbname=mailadmin;charset=UTF8&lt;br /&gt;
 ⛔Problem connecting to database, check database configuration ($CONF[&#039;database_*&#039;] entries in config.local.php)&lt;br /&gt;
 ⛔SQLSTATE[HY000] [2002] No such file or directory&lt;br /&gt;
&lt;br /&gt;
Параметр &amp;quot;Database connection string&amp;quot; содержит строку &amp;quot;&#039;&#039;&#039;mysql:mysql:&#039;&#039;&#039;host=192.168.0.103;dbname=mailadmin;charset=UTF8&amp;quot;, в которой дублируется строка &amp;quot;mysql:&amp;quot;. Требуется исправление ошибки в функции &amp;quot;function db_connection_string()&amp;quot; в файле /usr/local/www/mailadmin.mydomain.ru/functions.inc.php:&lt;br /&gt;
 $dsn = &#039;mysql:&#039;;&lt;br /&gt;
 if ($socket) {&lt;br /&gt;
     $dsn .= &amp;quot;unix_socket={$socket}&amp;quot;;&lt;br /&gt;
 } else {&lt;br /&gt;
     $dsn .= &amp;quot;mysql:host={$CONF[&#039;database_host&#039;]}&amp;quot;;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Необходима замена строки:&lt;br /&gt;
     $dsn .= &amp;quot;mysql:host={$CONF[&#039;database_host&#039;]}&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
на строку:&lt;br /&gt;
     $dsn .= &amp;quot;host={$CONF[&#039;database_host&#039;]}&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Пример вывода сайта:&lt;br /&gt;
 &#039;&#039;&#039;Hosting Environment Check&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;Information&#039;&#039;&#039;&lt;br /&gt;
 ✅ PHP version - 8.4.12 &lt;br /&gt;
 ✅ Postfixadmin public url detected as http://mailadmin.mydomain.ru/ use $CONF[&#039;site_url&#039;] to override&lt;br /&gt;
 ✅ Postfixadmin installed at - /usr/local/www/mailadmin.mydomain.ru/public&lt;br /&gt;
 ✅ config.local.php file found : /usr/local/www/mailadmin.mydomain.ru/config.local.php&lt;br /&gt;
 ✅ Database - MySQL support available&lt;br /&gt;
 ✅ Database - SQLite support available&lt;br /&gt;
 ✅ Password hashing - $CONF[&amp;quot;encrypt&amp;quot;] = cleartext&lt;br /&gt;
 ✅ Password hashing - $CONF[&amp;quot;encrypt&amp;quot;] - hash generation OK&lt;br /&gt;
 ✅ Database connection configured OK (using PDO mysql:host=192.168.0.103;dbname=mailadmin;charset=UTF8)&lt;br /&gt;
 ✅ Database connection - Connected OK&lt;br /&gt;
 ✅ Depends on: PHP session support - OK&lt;br /&gt;
 ✅ Depends on: PHP pcre support - OK&lt;br /&gt;
 ✅ Depends on: PHP mbstring support - OK&lt;br /&gt;
 ✅ Optional - PHP IMAP functions - OK&lt;br /&gt;
&lt;br /&gt;
Дальнейший вывод сайта:&lt;br /&gt;
 Database Update&lt;br /&gt;
 &lt;br /&gt;
 Everything seems fine... attempting to create/update database structure&lt;br /&gt;
 &lt;br /&gt;
 Updating database:&lt;br /&gt;
 &lt;br /&gt;
 - old version: 0; target version: 1845&lt;br /&gt;
 &lt;br /&gt;
   (If the update doesn&#039;t work, run setup.php?debug=1 to see the detailed error messages and SQL queries.)&lt;br /&gt;
 &lt;br /&gt;
 updating to version 1 (MySQL)...   done&lt;br /&gt;
 updating to version 2 (MySQL)...   done&lt;br /&gt;
 updating to version 3 (MySQL)...   done&lt;br /&gt;
 &#039;&#039;&#039;[список пропущен]&#039;&#039;&#039;&lt;br /&gt;
 updating to version 1843 (all databases)...   done&lt;br /&gt;
 updating to version 1844 (all databases)...   done&lt;br /&gt;
 updating to version 1845 (all databases)...   done&lt;br /&gt;
&lt;br /&gt;
Последняя строка сообщает об обновлении базы данных Postfix Admin до последней актуальной версии.&lt;br /&gt;
&lt;br /&gt;
Сайт предложит настроить учётную запись администратора, после чего можно использовать Postfix Admin для администрирования почтовых доменов, ящиков и алиасов.&lt;br /&gt;
&lt;br /&gt;
Приглашение в управление Postfix Admin:&lt;br /&gt;
[[Файл:2025050201.png|left|мини]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
Вид главной страницы Postfix Admin:&lt;br /&gt;
[[Файл:2025050202.png|left|мини]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
Пример почтового алиаса домена и домена, на который будет приходить почта:&lt;br /&gt;
[[Файл:2025050203.png|left|мини]]&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://wiki.bsdhowto.ru/index.php?title=Postfix_Admin&amp;diff=243</id>
		<title>Postfix Admin</title>
		<link rel="alternate" type="text/html" href="https://wiki.bsdhowto.ru/index.php?title=Postfix_Admin&amp;diff=243"/>
		<updated>2025-12-04T02:42:01Z</updated>

		<summary type="html">&lt;p&gt;Igor: /* Окончательная настройка сайта */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Установка postfixadmin-php84 ==&lt;br /&gt;
&lt;br /&gt;
Postfix Admin — веб-инструмент управления, написанный на PHP для Postfix (но прекрасно подходит и для Exim) с виртуальными доменами в стиле Postfix, использующими поиск в MySQL или PostgreSQL. Так-же Postfix Admin работает на Apache, Lighttpd и на любом веб-сервере с поддержкой PHP 5.1.2+.&lt;br /&gt;
&lt;br /&gt;
Подробная информация о Postfix Admin на сайте http://www.postfixadmin.org/&lt;br /&gt;
&lt;br /&gt;
Установка из пакета (предварительная установка пакетов PKG и PHP не требуется, дополнительная информация о которых в статьях [[PKG]] и [[PHP+Nginx|Установка lang/php84]]; потребуется установка СУБД, например - MySQL, дополнительная информация о которой в статье [[MySQL]]):&lt;br /&gt;
 # pkg install postfixadmin-php84&lt;br /&gt;
&lt;br /&gt;
Проверка установки postfixadmin-php84:&lt;br /&gt;
 # pkg version -v | grep php84&lt;br /&gt;
 php84-8.4.5_1                      =   up-to-date with remote&lt;br /&gt;
 php84-mbstring-8.4.5_1             =   up-to-date with remote&lt;br /&gt;
 php84-pdo-8.4.5_1                  =   up-to-date with remote&lt;br /&gt;
 php84-pdo_sqlite-8.4.5_1           =   up-to-date with remote&lt;br /&gt;
 php84-pecl-imap-1.0.3              =   up-to-date with remote&lt;br /&gt;
 php84-session-8.4.5_1              =   up-to-date with remote&lt;br /&gt;
 postfixadmin-php84-3.4.d.20211018  =   up-to-date with remote&lt;br /&gt;
&lt;br /&gt;
Вывод команды содержит список установленных расширений PHP. В списке отсутствует расширение php84-pdo_mysql, которое требуется для СУБД MySQL, если для Postfix Admin будет использована она.&lt;br /&gt;
&lt;br /&gt;
Установка из пакета расширения php84-pdo_mysql:&lt;br /&gt;
 # pkg install php84-pdo_mysql&lt;br /&gt;
 Updating FreeBSD repository catalogue...&lt;br /&gt;
 FreeBSD repository is up to date.&lt;br /&gt;
 All repositories are up to date.&lt;br /&gt;
 The following 1 package(s) will be affected (of 0 checked):&lt;br /&gt;
 &lt;br /&gt;
 New packages to be INSTALLED:&lt;br /&gt;
         php84-pdo_mysql: 8.4.5_1&lt;br /&gt;
 &lt;br /&gt;
 Number of packages to be installed: 1&lt;br /&gt;
 &lt;br /&gt;
 19 KiB to be downloaded.&lt;br /&gt;
 &lt;br /&gt;
 Proceed with this action? [y/N]: y&lt;br /&gt;
 [1/1] Fetching php84-pdo_mysql-8.4.5_1.pkg: 100%   19 KiB  19.7kB/s    00:01&lt;br /&gt;
 Checking integrity... done (0 conflicting)&lt;br /&gt;
 [1/1] Installing php84-pdo_mysql-8.4.5_1...&lt;br /&gt;
 [1/1] Extracting php84-pdo_mysql-8.4.5_1: 100%&lt;br /&gt;
 =====&lt;br /&gt;
 Message from php84-pdo_mysql-8.4.5_1:&lt;br /&gt;
 &lt;br /&gt;
 --&lt;br /&gt;
 This file has been added to automatically load the installed extension:&lt;br /&gt;
 /usr/local/etc/php/ext-30-pdo_mysql.ini.sample&lt;br /&gt;
&lt;br /&gt;
Повторная проверка установки:&lt;br /&gt;
 # pkg version -v | grep php84&lt;br /&gt;
 php84-8.4.5_1                      =   up-to-date with remote&lt;br /&gt;
 php84-mbstring-8.4.5_1             =   up-to-date with remote&lt;br /&gt;
 php84-pdo-8.4.5_1                  =   up-to-date with remote&lt;br /&gt;
 php84-pdo_mysql-8.4.5_1            =   up-to-date with remote&lt;br /&gt;
 php84-pdo_sqlite-8.4.5_1           =   up-to-date with remote&lt;br /&gt;
 php84-pecl-imap-1.0.3              =   up-to-date with remote&lt;br /&gt;
 php84-session-8.4.5_1              =   up-to-date with remote&lt;br /&gt;
 postfixadmin-php84-3.4.d.20211018  =   up-to-date with remote&lt;br /&gt;
&lt;br /&gt;
Вывод команды содержит список всех необходимых установленных расширений PHP.&lt;br /&gt;
&lt;br /&gt;
Перезапуск PHP-FPM после установки расширений PHP:&lt;br /&gt;
 # service php_fpm restart&lt;br /&gt;
 Performing sanity check on php-fpm configuration:&lt;br /&gt;
 [28-Apr-2025 16:58:14] NOTICE: configuration file /usr/local/etc/php-fpm.conf test is successful&lt;br /&gt;
 Stopping php_fpm.&lt;br /&gt;
 Performing sanity check on php-fpm configuration:&lt;br /&gt;
 [28-Apr-2025 16:58:14] NOTICE: configuration file /usr/local/etc/php-fpm.conf test is successful&lt;br /&gt;
 Starting php_fpm.&lt;br /&gt;
&lt;br /&gt;
== Начальная настройка postfixadmin-php84 ==&lt;br /&gt;
&lt;br /&gt;
Копирование структуры сайта:&lt;br /&gt;
 # cd /usr/local/www&lt;br /&gt;
 # cp -Rp postfixadmin mailadmin.mydomain.ru&lt;br /&gt;
&lt;br /&gt;
Настройка сайта Postfix Admin в файле /usr/local/etc/nginx/mailadmin.mydomain.ru.conf:&lt;br /&gt;
 server {&lt;br /&gt;
     listen       80;&lt;br /&gt;
     server_name  mailadmin.mydomain.ru;&lt;br /&gt;
 &lt;br /&gt;
     access_log   /var/log/nginx/mailadmin.mydomain.ru.access.log;&lt;br /&gt;
     error_log    /var/log/nginx/mailadmin.mydomain.ru.error.log;&lt;br /&gt;
 &lt;br /&gt;
     location / {&lt;br /&gt;
         root   /usr/local/www/mailadmin.mydomain.ru/public;&lt;br /&gt;
         index  index.php;&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000&lt;br /&gt;
     #&lt;br /&gt;
     location ~ \.php$ {&lt;br /&gt;
         fastcgi_pass   127.0.0.1:9000;&lt;br /&gt;
         fastcgi_index  index.php;&lt;br /&gt;
         fastcgi_param  SCRIPT_FILENAME  /usr/local/www/mailadmin.mydomain.ru/public$fastcgi_script_name;&lt;br /&gt;
         include        fastcgi_params;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Включение конфигурации сайта Postfix Admin в файл /usr/local/etc/nginx/nginx.conf:&lt;br /&gt;
     include /usr/local/etc/nginx/mailadmin.mydomain.ru.conf;&lt;br /&gt;
&lt;br /&gt;
Перезагрузка конфигурации Nginx после первоначальной настройки сайта для доступа к нему со стороны Let&#039;s Encrypt по HTTP:&lt;br /&gt;
 # service nginx reload&lt;br /&gt;
 Performing sanity check on nginx configuration:&lt;br /&gt;
 nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok&lt;br /&gt;
 nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful&lt;br /&gt;
&lt;br /&gt;
== Получение сертификата ==&lt;br /&gt;
&lt;br /&gt;
Получение сертификата для домена:&lt;br /&gt;
 # certbot --nginx -d mailadmin.mydomain.ru&lt;br /&gt;
&lt;br /&gt;
Скрипт включит следующие строки в файл конфигурации сайта /usr/local/etc/nginx/mailadmin.mydomain.ru.conf: &lt;br /&gt;
     listen 443 ssl; # managed by Certbot&lt;br /&gt;
     ssl_certificate /usr/local/etc/letsencrypt/live/mailadmin.mydomain.ru/fullchain.pem; # managed by Certbot&lt;br /&gt;
     ssl_certificate_key /usr/local/etc/letsencrypt/live/mailadmin.mydomain.ru/privkey.pem; # managed by Certbot&lt;br /&gt;
     include /usr/local/etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot&lt;br /&gt;
     ssl_dhparam /usr/local/etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot&lt;br /&gt;
&lt;br /&gt;
Перезагрузка конфигурации Nginx для включения доступа по HTTPS:&lt;br /&gt;
 # service nginx reload&lt;br /&gt;
 Performing sanity check on nginx configuration:&lt;br /&gt;
 nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok&lt;br /&gt;
 nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful&lt;br /&gt;
&lt;br /&gt;
== Окончательная настройка сайта ==&lt;br /&gt;
&lt;br /&gt;
Настройки Postfix Admin по умолчанию находятся в файле /usr/local/www/mailadmin.mydomain.ru/config.inc.php. Его не рекомендуется изменять на случай обновлений пакета.&lt;br /&gt;
&lt;br /&gt;
Редактирование настроек следует делать в файле /usr/local/www/mailadmin.mydomain.ru/config.local.php (он должен начинаться с префикса):&lt;br /&gt;
 &amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
Параметр означает, что все необходимые настройки внесены в файл /usr/local/www/mailadmin.mydomain.ru/config.local.php:&lt;br /&gt;
 $CONF[&#039;configured&#039;] = true;&lt;br /&gt;
&lt;br /&gt;
Создание хеша установочного пароля:&lt;br /&gt;
 # php -r &#039;echo password_hash(&amp;quot;&amp;lt;пароль&amp;gt;&amp;quot;, PASSWORD_DEFAULT); echo &amp;quot;\n&amp;quot;;&#039;&lt;br /&gt;
 $2y$12$w7H3Vo2EIuHOHRxObmUWZ.DpsujtU5yy8PWbfYxzXBSe2tun/qjTG&lt;br /&gt;
&lt;br /&gt;
Добавление полученного хеша в файл настроек /usr/local/www/mailadmin.mydomain.ru/config.local.php:&lt;br /&gt;
 $CONF[&#039;setup_password&#039;] = &#039;$2y$12$w7H3Vo2EIuHOHRxObmUWZ.DpsujtU5yy8PWbfYxzXBSe2tun/qjTG&#039;;&lt;br /&gt;
&lt;br /&gt;
Настройка языка:&lt;br /&gt;
 $CONF[&#039;default_language&#039;] = &#039;ru&#039;;&lt;br /&gt;
&lt;br /&gt;
Пример настройки доступа Postfix Admin к СУБД в файле /usr/local/www/mailadmin.mydomain.ru/config.local.php&lt;br /&gt;
 $CONF[&#039;database_type&#039;] = &#039;mysqli&#039;;&lt;br /&gt;
 $CONF[&#039;database_host&#039;] = &#039;192.168.0.103&#039;;&lt;br /&gt;
 $CONF[&#039;database_user&#039;] = &#039;mailadmin&#039;;&lt;br /&gt;
 $CONF[&#039;database_password&#039;] = &#039;12345678&#039;;&lt;br /&gt;
 $CONF[&#039;database_name&#039;] = &#039;mailadmin&#039;;&lt;br /&gt;
&lt;br /&gt;
Настройка SMTP-сервера, куда будут отправляться уведомления о создании почтовых ящиков:&lt;br /&gt;
 $CONF[&#039;smtp_server&#039;] = &#039;192.68.0.105&#039;;&lt;br /&gt;
 $CONF[&#039;smtp_port&#039;] = &#039;25&#039;;&lt;br /&gt;
&lt;br /&gt;
Настройка способа шифрования паролей почтовых ящиков (в данном случае пароли сохраняются в базе данных Postfix Admin в открытом виде, что небезопасно):&lt;br /&gt;
 $CONF[&#039;encrypt&#039;] = &#039;cleartext&#039;;&lt;br /&gt;
&lt;br /&gt;
Настройка автоматической генерации паролей:&lt;br /&gt;
 $CONF[&#039;generate_password&#039;] = &#039;YES&#039;;&lt;br /&gt;
&lt;br /&gt;
Создание базы данных Postfix Admin:&lt;br /&gt;
 # mysql -u root -p&lt;br /&gt;
 &lt;br /&gt;
 &amp;gt; create database mailadmin;&lt;br /&gt;
 Query OK, 1 row affected (0.01 sec)&lt;br /&gt;
&lt;br /&gt;
Предоставление доступа пользователю &#039;mailadmin&#039; к базе данных &#039;mailadmin&#039; с хоста &#039;&amp;lt;IP-адрес&amp;gt;&#039; (потребуется доступ с хостов, где расположены Postfix Admin, SMTP-сервер и IMAP-сервер) и применение изменений:&lt;br /&gt;
 &amp;gt; create user &#039;mailadmin&#039;@&#039;&amp;lt;IP-адрес&amp;gt;&#039; identified by &#039;&amp;lt;пароль&amp;gt;&#039;;&lt;br /&gt;
 Query OK, 0 rows affected (0.04 sec)&lt;br /&gt;
 &lt;br /&gt;
 &amp;gt; grant all on mailadmin.* to &#039;mailadmin&#039;@&#039;&amp;lt;IP-адрес&amp;gt;&#039;;&lt;br /&gt;
 Query OK, 0 rows affected (0.00 sec)&lt;br /&gt;
 &lt;br /&gt;
 &amp;gt; flush privileges;&lt;br /&gt;
 Query OK, 0 rows affected (0.01 sec)&lt;br /&gt;
&lt;br /&gt;
Переход на сайт:&lt;br /&gt;
 https://mailadmin.mydomain.ru/setup.php&lt;br /&gt;
&lt;br /&gt;
Вывод команды содержит ошибки:&lt;br /&gt;
 Errors (MUST be fixed)&lt;br /&gt;
 ⛔Database connection string : mysql:mysql:host=192.168.128.13;dbname=mailadmin;charset=UTF8&lt;br /&gt;
 ⛔Problem connecting to database, check database configuration ($CONF[&#039;database_*&#039;] entries in config.local.php)&lt;br /&gt;
 ⛔SQLSTATE[HY000] [2002] No such file or directory&lt;br /&gt;
&lt;br /&gt;
Параметр &amp;quot;Database connection string&amp;quot; содержит строку &amp;quot;&#039;&#039;&#039;mysql:mysql:&#039;&#039;&#039;host=192.168.0.103;dbname=mailadmin;charset=UTF8&amp;quot;, в которой дублируется строка &amp;quot;mysql:&amp;quot;. Требуется исправление ошибки в функции &amp;quot;function db_connection_string()&amp;quot; в файле /usr/local/www/mailadmin.mydomain.ru/functions.inc.php:&lt;br /&gt;
 $dsn = &#039;mysql:&#039;;&lt;br /&gt;
 if ($socket) {&lt;br /&gt;
     $dsn .= &amp;quot;unix_socket={$socket}&amp;quot;;&lt;br /&gt;
 } else {&lt;br /&gt;
     $dsn .= &amp;quot;mysql:host={$CONF[&#039;database_host&#039;]}&amp;quot;;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Необходима замена строки:&lt;br /&gt;
     $dsn .= &amp;quot;mysql:host={$CONF[&#039;database_host&#039;]}&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
на строку:&lt;br /&gt;
     $dsn .= &amp;quot;host={$CONF[&#039;database_host&#039;]}&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Пример вывода сайта:&lt;br /&gt;
 &#039;&#039;&#039;Hosting Environment Check&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;Information&#039;&#039;&#039;&lt;br /&gt;
✅ PHP version - 8.4.12&lt;br /&gt;
✅ Postfixadmin public url detected as http://mailadmin.mydomain.ru/ use $CONF[&#039;site_url&#039;] to override&lt;br /&gt;
✅ Postfixadmin installed at - /usr/local/www/mailadmin.mydomain.ru/public&lt;br /&gt;
✅ config.local.php file found : /usr/local/www/mailadmin.mydomain.ru/config.local.php&lt;br /&gt;
✅ Database - MySQL support available&lt;br /&gt;
✅ Database - SQLite support available&lt;br /&gt;
✅ Password hashing - $CONF[&amp;quot;encrypt&amp;quot;] = cleartext&lt;br /&gt;
✅ Password hashing - $CONF[&amp;quot;encrypt&amp;quot;] - hash generation OK&lt;br /&gt;
✅ Database connection configured OK (using PDO mysql:host=192.168.0.103;dbname=mailadmin;charset=UTF8)&lt;br /&gt;
✅ Database connection - Connected OK&lt;br /&gt;
✅ Depends on: PHP session support - OK&lt;br /&gt;
✅ Depends on: PHP pcre support - OK&lt;br /&gt;
✅ Depends on: PHP mbstring support - OK&lt;br /&gt;
✅ Optional - PHP IMAP functions - OK&lt;br /&gt;
&lt;br /&gt;
Дальнейший вывод сайта:&lt;br /&gt;
 Database Update&lt;br /&gt;
 &lt;br /&gt;
 Everything seems fine... attempting to create/update database structure&lt;br /&gt;
 &lt;br /&gt;
 Updating database:&lt;br /&gt;
 &lt;br /&gt;
 - old version: 0; target version: 1845&lt;br /&gt;
 &lt;br /&gt;
   (If the update doesn&#039;t work, run setup.php?debug=1 to see the detailed error messages and SQL queries.)&lt;br /&gt;
 &lt;br /&gt;
 updating to version 1 (MySQL)...   done&lt;br /&gt;
 updating to version 2 (MySQL)...   done&lt;br /&gt;
 updating to version 3 (MySQL)...   done&lt;br /&gt;
 &#039;&#039;&#039;[список пропущен]&#039;&#039;&#039;&lt;br /&gt;
 updating to version 1843 (all databases)...   done&lt;br /&gt;
 updating to version 1844 (all databases)...   done&lt;br /&gt;
 updating to version 1845 (all databases)...   done&lt;br /&gt;
&lt;br /&gt;
Последняя строка сообщает об обновлении базы данных Postfix Admin до последней актуальной версии.&lt;br /&gt;
&lt;br /&gt;
Сайт предложит настроить учётную запись администратора, после чего можно использовать Postfix Admin для администрирования почтовых доменов, ящиков и алиасов.&lt;br /&gt;
&lt;br /&gt;
Приглашение в управление Postfix Admin:&lt;br /&gt;
[[Файл:2025050201.png|left|мини]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
Вид главной страницы Postfix Admin:&lt;br /&gt;
[[Файл:2025050202.png|left|мини]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
Пример почтового алиаса домена и домена, на который будет приходить почта:&lt;br /&gt;
[[Файл:2025050203.png|left|мини]]&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://wiki.bsdhowto.ru/index.php?title=Clamav%2BDovecot%2BExim&amp;diff=242</id>
		<title>Clamav+Dovecot+Exim</title>
		<link rel="alternate" type="text/html" href="https://wiki.bsdhowto.ru/index.php?title=Clamav%2BDovecot%2BExim&amp;diff=242"/>
		<updated>2025-12-04T01:53:39Z</updated>

		<summary type="html">&lt;p&gt;Igor: /* Настройка Dovecot */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Подготовка клетки для Clamav+Dovecot+Exim ==&lt;br /&gt;
&lt;br /&gt;
Перед использованием этой статьи рекомендуется пройти по ссылке [[Qjail|Qjail]].&lt;br /&gt;
&lt;br /&gt;
Создание отдельной файловой системы для клетки с Clamav+Dovecot+Exim в ZFS::&lt;br /&gt;
 # zfs create zroot/usr/jails/mail&lt;br /&gt;
&lt;br /&gt;
Создание клетки c именем &amp;quot;mail&amp;quot; и IPv4-адресом &amp;quot;192.168.0.105&amp;quot;, запуск и управление клеткой:&lt;br /&gt;
 # qjail create -4 192.168.0.105 mail&lt;br /&gt;
 # qjail start mail&lt;br /&gt;
 # qjail console mail&lt;br /&gt;
&lt;br /&gt;
== Установка security/clamav ==&lt;br /&gt;
&lt;br /&gt;
Clam Antivirus - антивирусный сканер, который можно использовать для почтовых систем.&lt;br /&gt;
&lt;br /&gt;
Подробная информация на сайте https://www.clamav.net/&lt;br /&gt;
&lt;br /&gt;
Установка из пакета:&lt;br /&gt;
 # pkg install clamav&lt;br /&gt;
 Updating FreeBSD repository catalogue...&lt;br /&gt;
 FreeBSD repository is up to date.&lt;br /&gt;
 All repositories are up to date.&lt;br /&gt;
 The following 19 package(s) will be affected (of 0 checked):&lt;br /&gt;
 &lt;br /&gt;
 New packages to be INSTALLED:&lt;br /&gt;
         arc: 5.21q_1&lt;br /&gt;
         arj: 3.10.22_12&lt;br /&gt;
         brotli: 1.1.0,1&lt;br /&gt;
         clamav: 1.4.2_1,1&lt;br /&gt;
         curl: 8.12.1&lt;br /&gt;
         &#039;&#039;&#039;[пропущен список пакетов для установки]&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
 Number of packages to be installed: 19&lt;br /&gt;
 &lt;br /&gt;
 The process will require 95 MiB more space.&lt;br /&gt;
 21 MiB to be downloaded.&lt;br /&gt;
 &lt;br /&gt;
 Proceed with this action? [y/N]: y&lt;br /&gt;
 [1/19] Fetching indexinfo-0.3.1_1.pkg: 100%    6 KiB   6.0kB/s    00:01&lt;br /&gt;
 [2/19] Fetching libnghttp2-1.65.0.pkg: 100%  136 KiB 139.4kB/s    00:01&lt;br /&gt;
 [3/19] Fetching libxml2-2.11.9.pkg: 100%  872 KiB 893.4kB/s    00:01&lt;br /&gt;
 [4/19] Fetching libidn2-2.3.8.pkg: 100%  160 KiB 164.2kB/s    00:01&lt;br /&gt;
 [5/19] Fetching liblz4-1.10.0,1.pkg: 100%  163 KiB 167.3kB/s    00:01&lt;br /&gt;
 &#039;&#039;&#039;[пропущен список скачиваемых пакетов]&#039;&#039;&#039;&lt;br /&gt;
 Checking integrity... done (0 conflicting)&lt;br /&gt;
 [1/19] Installing arc-5.21q_1...&lt;br /&gt;
 [1/19] Extracting arc-5.21q_1: 100%&lt;br /&gt;
 [2/19] Installing arj-3.10.22_12...&lt;br /&gt;
 [2/19] Extracting arj-3.10.22_12: 100%&lt;br /&gt;
 [3/19] Installing brotli-1.1.0,1...&lt;br /&gt;
 [3/19] Extracting brotli-1.1.0,1: 100%&lt;br /&gt;
 [4/19] Installing indexinfo-0.3.1_1...&lt;br /&gt;
 [4/19] Extracting indexinfo-0.3.1_1: 100%&lt;br /&gt;
 [5/19] Installing json-c-0.18...&lt;br /&gt;
 [5/19] Extracting json-c-0.18: 100%&lt;br /&gt;
 &#039;&#039;&#039;[пропущен список устанавливаемых пакетов]&#039;&#039;&#039;&lt;br /&gt;
 [19/19] Installing clamav-1.4.2_1,1...&lt;br /&gt;
 ===&amp;gt; Creating groups&lt;br /&gt;
 Creating group &#039;clamav&#039; with gid &#039;106&#039;&lt;br /&gt;
 Using existing group &#039;mail&#039;&lt;br /&gt;
 ===&amp;gt; Creating users&lt;br /&gt;
 Creating user &#039;clamav&#039; with uid &#039;106&#039;&lt;br /&gt;
 Adding user &#039;clamav&#039; to group &#039;mail&#039;&lt;br /&gt;
 [19/19] Extracting clamav-1.4.2_1,1: 100%&lt;br /&gt;
&lt;br /&gt;
Проверка установки Clamav:&lt;br /&gt;
 # pkg version -v | grep clamav&lt;br /&gt;
 clamav-1.4.2_1,1                   =   up-to-date with remote&lt;br /&gt;
&lt;br /&gt;
Установка автозапуска Clam Antivirus в /etc/rc.conf:&lt;br /&gt;
 # sysrc clamav_freshclam_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
 clamav_freshclam_enable:  -&amp;gt; YES&lt;br /&gt;
 # sysrc clamav_clamd_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
 clamav_clamd_enable:  -&amp;gt; YES&lt;br /&gt;
&lt;br /&gt;
Настройка обхода санкций перед запуском freshclam (обновление антивирусных баз данных clamav) в файле /usr/local/etc/freshclam.conf:&lt;br /&gt;
 #DatabaseMirror database.clamav.net&lt;br /&gt;
 DatabaseMirror packages.microsoft.com/clamav&lt;br /&gt;
&lt;br /&gt;
Запуск clamav_freshclam:&lt;br /&gt;
 # service clamav_freshclam start&lt;br /&gt;
 Starting clamav_freshclam.&lt;br /&gt;
&lt;br /&gt;
Запуск clamav:&lt;br /&gt;
 # service clamav_clamd start&lt;br /&gt;
 Starting clamav_clamd.&lt;br /&gt;
&lt;br /&gt;
Проверка Clamav:&lt;br /&gt;
 # sockstat -l | grep clamav&lt;br /&gt;
 clamav   clamd       1333 4   stream /var/run/clamav/clamd.sock&lt;br /&gt;
&lt;br /&gt;
== Установка Dovecot ==&lt;br /&gt;
&lt;br /&gt;
Установка из пакета:&lt;br /&gt;
 # pkg install dovecot&lt;br /&gt;
&lt;br /&gt;
Установка автозапуска Dovecot в /etc/rc.conf:&lt;br /&gt;
 # sysrc dovecot_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
 dovecot_enable:  -&amp;gt; YES&lt;br /&gt;
&lt;br /&gt;
== Настройка Dovecot ==&lt;br /&gt;
&lt;br /&gt;
Копирование файлов настроек:&lt;br /&gt;
 # cp -Rpv /usr/local/etc/dovecot/example-config/* /usr/local/etc/dovecot&lt;br /&gt;
&lt;br /&gt;
Пример настроек в /usr/local/etc/dovecot/dovecot.conf:&lt;br /&gt;
 # Использование протокола IMAP:&lt;br /&gt;
 protocols = imap&lt;br /&gt;
 # Использование всех IPv4 данного хоста (можно указать необходимые IP-адреса):&lt;br /&gt;
 listen = *&lt;br /&gt;
&lt;br /&gt;
Пример настроек в /usr/local/etc/dovecot/dovecot-sql.conf.ext:&lt;br /&gt;
 # Использование СУБД MySQL&lt;br /&gt;
 driver = mysql&lt;br /&gt;
 # Строка подключения к базе данных Postfix Admin&lt;br /&gt;
 connect = host=192.168.0.103 dbname=mailadmin user=mailadmin password=12345678&lt;br /&gt;
 # Хранение паролей пользователей почты в базе данных Postfix Admin в открытом виде (это небезопасный способ, но можно оставить по умолчанию MD5):&lt;br /&gt;
 default_pass_scheme = PLAIN&lt;br /&gt;
 # Запрос к базе данных Postfix Admin для получения информации о пользователе, например, о расположении почтового ящика:&lt;br /&gt;
 user_query = select concat(&#039;/var/spool/dovecot/&#039;, maildir) as home, 143 as uid, 143 as gid from mailbox where username = &#039;%n@%d&#039; and active=&#039;1&#039;&lt;br /&gt;
 # Запрос к базе данных Postfix Admin для получения пароля пользователя почтового ящика:&lt;br /&gt;
 password_query = select username as user, password from mailbox where username = &#039;%n@%d&#039; and active = &#039;1&#039;&lt;br /&gt;
&lt;br /&gt;
Пример настроек аутентификации в /usr/local/etc/dovecot/conf.d/10-auth.conf:&lt;br /&gt;
 !include auth-sql.conf.ext&lt;br /&gt;
&lt;br /&gt;
Пример настроек файлов журналов в /usr/local/etc/dovecot/conf.d/10-logging.conf:&lt;br /&gt;
 # Определение расположения файлов журналов&lt;br /&gt;
 log_path = /var/log/dovecot.log&lt;br /&gt;
 # Включение регистрации неудачных попыток аутентификации и причин их неудач&lt;br /&gt;
 auth_verbose = yes&lt;br /&gt;
&lt;br /&gt;
Настройки в файле /usr/local/etc/dovecot/conf.d/10-mail.conf:&lt;br /&gt;
 # Размещение почты в корневой папке /var/spool/dovecot в формате &amp;lt;домен&amp;gt;/&amp;lt;имя ящика&amp;gt;&lt;br /&gt;
 mail_location = maildir:/var/spool/dovecot/%d/%n&lt;br /&gt;
&lt;br /&gt;
== Установка mail/exim ==&lt;br /&gt;
&lt;br /&gt;
Exim - агент отправки почты для систем Unix.&lt;br /&gt;
&lt;br /&gt;
Подробная информация на сайте http://www.exim.org/&lt;br /&gt;
&lt;br /&gt;
Перед использованием этой статьи рекомендуется пройти по ссылке [[PKG|PKG]].&lt;br /&gt;
&lt;br /&gt;
Установка из пакета:&lt;br /&gt;
 # pkg install exim&lt;br /&gt;
 Updating FreeBSD repository catalogue...&lt;br /&gt;
 FreeBSD repository is up to date.&lt;br /&gt;
 All repositories are up to date.&lt;br /&gt;
 The following 46 package(s) will be affected (of 0 checked):&lt;br /&gt;
 &lt;br /&gt;
 New packages to be INSTALLED:&lt;br /&gt;
         brotli: 1.1.0,1&lt;br /&gt;
         curl: 8.12.1&lt;br /&gt;
         cyrus-sasl: 2.1.28_5&lt;br /&gt;
         exim: 4.98.2&lt;br /&gt;
         gettext-runtime: 0.23.1&lt;br /&gt;
         &#039;&#039;&#039;[пропущен список пакетов для установки]&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
 Number of packages to be installed: 46&lt;br /&gt;
 &lt;br /&gt;
 The process will require 308 MiB more space.&lt;br /&gt;
 50 MiB to be downloaded.&lt;br /&gt;
 &lt;br /&gt;
 Proceed with this action? [y/N]: y&lt;br /&gt;
 [1/46] Fetching indexinfo-0.3.1_1.pkg: 100%    6 KiB   6.0kB/s    00:01&lt;br /&gt;
 [2/46] Fetching cyrus-sasl-2.1.28_5.pkg: 100%    1 MiB   1.1MB/s    00:01&lt;br /&gt;
 [3/46] Fetching libcjson-1.7.18_2.pkg: 100%   39 KiB  39.5kB/s    00:01&lt;br /&gt;
 [4/46] Fetching libnghttp2-1.65.0.pkg: 100%  136 KiB 139.4kB/s    00:01&lt;br /&gt;
 [5/46] Fetching p5-HTTP-Date-6.06.pkg: 100%   11 KiB  11.0kB/s    00:01&lt;br /&gt;
 [пропущен список скачиваемых пакетов]&lt;br /&gt;
 Checking integrity... done (0 conflicting)&lt;br /&gt;
 [1/46] Installing brotli-1.1.0,1...&lt;br /&gt;
 [1/46] Extracting brotli-1.1.0,1: 100%&lt;br /&gt;
 [2/46] Installing cyrus-sasl-2.1.28_5...&lt;br /&gt;
 *** Added group `cyrus&#039; (id 60)&lt;br /&gt;
 *** Added user `cyrus&#039; (id 60)&lt;br /&gt;
 [2/46] Extracting cyrus-sasl-2.1.28_5: 100%&lt;br /&gt;
 [3/46] Installing icu-76.1,1...&lt;br /&gt;
 [3/46] Extracting icu-76.1,1: 100%&lt;br /&gt;
 [4/46] Installing indexinfo-0.3.1_1...&lt;br /&gt;
 [4/46] Extracting indexinfo-0.3.1_1: 100%&lt;br /&gt;
 [5/46] Installing gettext-runtime-0.23.1...&lt;br /&gt;
 [5/46] Extracting gettext-runtime-0.23.1: 100%&lt;br /&gt;
 &#039;&#039;&#039;[пропущен список устанавливаемых пакетов]&#039;&#039;&#039;&lt;br /&gt;
 =====&lt;br /&gt;
 Message from cyrus-sasl-2.1.28_5:&lt;br /&gt;
 &lt;br /&gt;
 --&lt;br /&gt;
 You can use sasldb2 for authentication, to add users use:&lt;br /&gt;
 &lt;br /&gt;
         saslpasswd2 -c username&lt;br /&gt;
 &lt;br /&gt;
 If you want to enable SMTP AUTH with the system Sendmail, read&lt;br /&gt;
 Sendmail.README&lt;br /&gt;
 &lt;br /&gt;
 NOTE: This port has been compiled with a default pwcheck_method of&lt;br /&gt;
       auxprop.  If you want to authenticate your user by /etc/passwd,&lt;br /&gt;
       PAM or LDAP, install ports/security/cyrus-sasl2-saslauthd and&lt;br /&gt;
       set sasl_pwcheck_method to saslauthd after installing the&lt;br /&gt;
       Cyrus-IMAPd 2.X port.  You should also check the&lt;br /&gt;
       /usr/local/lib/sasl2/*.conf files for the correct&lt;br /&gt;
       pwcheck_method.&lt;br /&gt;
       If you want to use GSSAPI mechanism, install&lt;br /&gt;
       ports/security/cyrus-sasl2-gssapi.&lt;br /&gt;
       If you want to use SRP mechanism, install&lt;br /&gt;
       ports/security/cyrus-sasl2-srp.&lt;br /&gt;
       If you want to use LDAP auxprop plugin, install&lt;br /&gt;
       ports/security/cyrus-sasl2-ldapdb.&lt;br /&gt;
 =====&lt;br /&gt;
 Message from openldap26-client-2.6.9_1:&lt;br /&gt;
 &lt;br /&gt;
 --&lt;br /&gt;
 The OpenLDAP client package has been successfully installed.&lt;br /&gt;
 &lt;br /&gt;
 Edit&lt;br /&gt;
   /usr/local/etc/openldap/ldap.conf&lt;br /&gt;
 to change the system-wide client defaults.&lt;br /&gt;
 &lt;br /&gt;
 Try `man ldap.conf&#039; and visit the OpenLDAP FAQ-O-Matic at&lt;br /&gt;
   http://www.OpenLDAP.org/faq/index.cgi?file=3&lt;br /&gt;
 for more information.&lt;br /&gt;
 =====&lt;br /&gt;
 Message from groff-1.23.0_4:&lt;br /&gt;
 &lt;br /&gt;
 --&lt;br /&gt;
 In order to be able to use the html driver, you need to install the following&lt;br /&gt;
 packages:&lt;br /&gt;
  - ghostscript&lt;br /&gt;
  - netpbm&lt;br /&gt;
 --&lt;br /&gt;
 ===&amp;gt;   NOTICE:&lt;br /&gt;
 &lt;br /&gt;
 The groff port currently does not have a maintainer. As a result, it is&lt;br /&gt;
 more likely to have unresolved issues, not be up-to-date, or even be removed in&lt;br /&gt;
 the future. To volunteer to maintain this port, please create an issue at:&lt;br /&gt;
 &lt;br /&gt;
 https://bugs.freebsd.org/bugzilla&lt;br /&gt;
 &lt;br /&gt;
 More information about port maintainership is available at:&lt;br /&gt;
 &lt;br /&gt;
 https://docs.freebsd.org/en/articles/contributing/#ports-contributing&lt;br /&gt;
 =====&lt;br /&gt;
 Message from mysql80-client-8.0.41:&lt;br /&gt;
 &lt;br /&gt;
 --&lt;br /&gt;
 This is the mysql CLIENT without the server.&lt;br /&gt;
 for complete server and client, please install databases/mysql80-server&lt;br /&gt;
 =====&lt;br /&gt;
 Message from exim-4.98.2:&lt;br /&gt;
 &lt;br /&gt;
 --&lt;br /&gt;
 The following documentation has been installed:&lt;br /&gt;
 &lt;br /&gt;
   man exim                              -&amp;gt; Exim options (command line)&lt;br /&gt;
   /usr/local/share/doc/exim/spec.txt    -&amp;gt; Exim Specification (User Guide)&lt;br /&gt;
   /usr/local/share/doc/exim/filter.txt  -&amp;gt; Exim Filter Specification (for end-users)&lt;br /&gt;
 &lt;br /&gt;
 Postscript, PDF, HTML and texinfo versions of these documents can be&lt;br /&gt;
 installed via one of the mail/exim-doc-* ports.&lt;br /&gt;
 &lt;br /&gt;
 An online version as well as a comprehensive FAQ and a mailing list&lt;br /&gt;
 archive is available at:&lt;br /&gt;
 &lt;br /&gt;
   http://www.exim.org/&lt;br /&gt;
 &lt;br /&gt;
 Descriptions of new features not available it the manual, and a listing&lt;br /&gt;
 of all changes, including bug fixes are documented in:&lt;br /&gt;
 &lt;br /&gt;
   /usr/local/share/doc/exim/NewStuff&lt;br /&gt;
   /usr/local/share/doc/exim/ChangeLog&lt;br /&gt;
 &lt;br /&gt;
 To use Exim instead of sendmail on startup:&lt;br /&gt;
 &lt;br /&gt;
 *) Clear the sendmail queue and stop the sendmail daemon.&lt;br /&gt;
 *) Adjust mailer.conf(5) as appropriate.&lt;br /&gt;
 *) Set the &#039;sendmail_enable&#039; rc.conf(5) variable to &#039;NONE&#039;.&lt;br /&gt;
 *) Set the &#039;daily_status_include_submit_mailq&#039; and&lt;br /&gt;
    &#039;daily_clean_hoststat_enable&#039; periodic.conf(5)&lt;br /&gt;
    variables to &#039;NO&#039;.&lt;br /&gt;
 *) Consider setting &#039;daily_queuerun_enable&#039; and&lt;br /&gt;
    &#039;daily_submit_queuerun&#039; to &amp;quot;NO&amp;quot; in periodic.conf(5),&lt;br /&gt;
    if you intend to manage queue runners / deliveries closely.&lt;br /&gt;
 *) Set the &#039;exim_enable&#039; rc.conf(5) variable to &#039;YES&#039;.&lt;br /&gt;
 *) Start exim with &#039;/usr/local/etc/rc.d/exim start&#039;.&lt;br /&gt;
 &lt;br /&gt;
 You may also want to configure newsyslog(8) to rotate Exim log files:&lt;br /&gt;
 &lt;br /&gt;
 /var/log/exim/mainlog   mailnull:mail 640 7 * @T00 ZN&lt;br /&gt;
 /var/log/exim/rejectlog mailnull:mail 640 7 * @T00 ZN&lt;br /&gt;
 &lt;br /&gt;
 Additional scripts to help upgrading are installed in:&lt;br /&gt;
 &lt;br /&gt;
   /usr/local/share/examples/exim&lt;br /&gt;
&lt;br /&gt;
Установка автозапуска Exim в /etc/rc.conf:&lt;br /&gt;
 # sysrc exim_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
 exim_enable:  -&amp;gt; YES&lt;br /&gt;
&lt;br /&gt;
== Расшифровка вывода установки mail/exim ==&lt;br /&gt;
&lt;br /&gt;
Настройка ротации файлов журнала Exim  добавлением строк в файл /etc/newslog.conf:&lt;br /&gt;
 /var/log/exim/mainlog   mailnull:mail 640 7 * @T00 ZN&lt;br /&gt;
 /var/log/exim/rejectlog mailnull:mail 640 7 * @T00 ZN&lt;br /&gt;
&lt;br /&gt;
== Настройка mail/exim ==&lt;br /&gt;
Настройки Exim устанавливаются в файле /usr/local/etc/exim/configure:&lt;br /&gt;
&lt;br /&gt;
Определение списка локальных доменов, обслуживаемых сервером (использование &amp;quot;@&amp;quot; разрешает локальные доставки):&lt;br /&gt;
 domainlist local_domains = @ : ${lookup mysql{select domain from domain where domain=&#039;${domain}&#039; and active=&#039;1&#039;}}&lt;br /&gt;
&lt;br /&gt;
Определение списка хостов, которые могут использовать сервер для пересылки исходящей почты (это обычно относится ко всей локальной сети, а также к самому серверу):&lt;br /&gt;
 hostlist   relay_from_hosts = localhost : 192.168.0.0/24&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://wiki.bsdhowto.ru/index.php?title=Clamav%2BDovecot%2BExim&amp;diff=241</id>
		<title>Clamav+Dovecot+Exim</title>
		<link rel="alternate" type="text/html" href="https://wiki.bsdhowto.ru/index.php?title=Clamav%2BDovecot%2BExim&amp;diff=241"/>
		<updated>2025-12-04T01:51:33Z</updated>

		<summary type="html">&lt;p&gt;Igor: /* Настройка Dovecot */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Подготовка клетки для Clamav+Dovecot+Exim ==&lt;br /&gt;
&lt;br /&gt;
Перед использованием этой статьи рекомендуется пройти по ссылке [[Qjail|Qjail]].&lt;br /&gt;
&lt;br /&gt;
Создание отдельной файловой системы для клетки с Clamav+Dovecot+Exim в ZFS::&lt;br /&gt;
 # zfs create zroot/usr/jails/mail&lt;br /&gt;
&lt;br /&gt;
Создание клетки c именем &amp;quot;mail&amp;quot; и IPv4-адресом &amp;quot;192.168.0.105&amp;quot;, запуск и управление клеткой:&lt;br /&gt;
 # qjail create -4 192.168.0.105 mail&lt;br /&gt;
 # qjail start mail&lt;br /&gt;
 # qjail console mail&lt;br /&gt;
&lt;br /&gt;
== Установка security/clamav ==&lt;br /&gt;
&lt;br /&gt;
Clam Antivirus - антивирусный сканер, который можно использовать для почтовых систем.&lt;br /&gt;
&lt;br /&gt;
Подробная информация на сайте https://www.clamav.net/&lt;br /&gt;
&lt;br /&gt;
Установка из пакета:&lt;br /&gt;
 # pkg install clamav&lt;br /&gt;
 Updating FreeBSD repository catalogue...&lt;br /&gt;
 FreeBSD repository is up to date.&lt;br /&gt;
 All repositories are up to date.&lt;br /&gt;
 The following 19 package(s) will be affected (of 0 checked):&lt;br /&gt;
 &lt;br /&gt;
 New packages to be INSTALLED:&lt;br /&gt;
         arc: 5.21q_1&lt;br /&gt;
         arj: 3.10.22_12&lt;br /&gt;
         brotli: 1.1.0,1&lt;br /&gt;
         clamav: 1.4.2_1,1&lt;br /&gt;
         curl: 8.12.1&lt;br /&gt;
         &#039;&#039;&#039;[пропущен список пакетов для установки]&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
 Number of packages to be installed: 19&lt;br /&gt;
 &lt;br /&gt;
 The process will require 95 MiB more space.&lt;br /&gt;
 21 MiB to be downloaded.&lt;br /&gt;
 &lt;br /&gt;
 Proceed with this action? [y/N]: y&lt;br /&gt;
 [1/19] Fetching indexinfo-0.3.1_1.pkg: 100%    6 KiB   6.0kB/s    00:01&lt;br /&gt;
 [2/19] Fetching libnghttp2-1.65.0.pkg: 100%  136 KiB 139.4kB/s    00:01&lt;br /&gt;
 [3/19] Fetching libxml2-2.11.9.pkg: 100%  872 KiB 893.4kB/s    00:01&lt;br /&gt;
 [4/19] Fetching libidn2-2.3.8.pkg: 100%  160 KiB 164.2kB/s    00:01&lt;br /&gt;
 [5/19] Fetching liblz4-1.10.0,1.pkg: 100%  163 KiB 167.3kB/s    00:01&lt;br /&gt;
 &#039;&#039;&#039;[пропущен список скачиваемых пакетов]&#039;&#039;&#039;&lt;br /&gt;
 Checking integrity... done (0 conflicting)&lt;br /&gt;
 [1/19] Installing arc-5.21q_1...&lt;br /&gt;
 [1/19] Extracting arc-5.21q_1: 100%&lt;br /&gt;
 [2/19] Installing arj-3.10.22_12...&lt;br /&gt;
 [2/19] Extracting arj-3.10.22_12: 100%&lt;br /&gt;
 [3/19] Installing brotli-1.1.0,1...&lt;br /&gt;
 [3/19] Extracting brotli-1.1.0,1: 100%&lt;br /&gt;
 [4/19] Installing indexinfo-0.3.1_1...&lt;br /&gt;
 [4/19] Extracting indexinfo-0.3.1_1: 100%&lt;br /&gt;
 [5/19] Installing json-c-0.18...&lt;br /&gt;
 [5/19] Extracting json-c-0.18: 100%&lt;br /&gt;
 &#039;&#039;&#039;[пропущен список устанавливаемых пакетов]&#039;&#039;&#039;&lt;br /&gt;
 [19/19] Installing clamav-1.4.2_1,1...&lt;br /&gt;
 ===&amp;gt; Creating groups&lt;br /&gt;
 Creating group &#039;clamav&#039; with gid &#039;106&#039;&lt;br /&gt;
 Using existing group &#039;mail&#039;&lt;br /&gt;
 ===&amp;gt; Creating users&lt;br /&gt;
 Creating user &#039;clamav&#039; with uid &#039;106&#039;&lt;br /&gt;
 Adding user &#039;clamav&#039; to group &#039;mail&#039;&lt;br /&gt;
 [19/19] Extracting clamav-1.4.2_1,1: 100%&lt;br /&gt;
&lt;br /&gt;
Проверка установки Clamav:&lt;br /&gt;
 # pkg version -v | grep clamav&lt;br /&gt;
 clamav-1.4.2_1,1                   =   up-to-date with remote&lt;br /&gt;
&lt;br /&gt;
Установка автозапуска Clam Antivirus в /etc/rc.conf:&lt;br /&gt;
 # sysrc clamav_freshclam_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
 clamav_freshclam_enable:  -&amp;gt; YES&lt;br /&gt;
 # sysrc clamav_clamd_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
 clamav_clamd_enable:  -&amp;gt; YES&lt;br /&gt;
&lt;br /&gt;
Настройка обхода санкций перед запуском freshclam (обновление антивирусных баз данных clamav) в файле /usr/local/etc/freshclam.conf:&lt;br /&gt;
 #DatabaseMirror database.clamav.net&lt;br /&gt;
 DatabaseMirror packages.microsoft.com/clamav&lt;br /&gt;
&lt;br /&gt;
Запуск clamav_freshclam:&lt;br /&gt;
 # service clamav_freshclam start&lt;br /&gt;
 Starting clamav_freshclam.&lt;br /&gt;
&lt;br /&gt;
Запуск clamav:&lt;br /&gt;
 # service clamav_clamd start&lt;br /&gt;
 Starting clamav_clamd.&lt;br /&gt;
&lt;br /&gt;
Проверка Clamav:&lt;br /&gt;
 # sockstat -l | grep clamav&lt;br /&gt;
 clamav   clamd       1333 4   stream /var/run/clamav/clamd.sock&lt;br /&gt;
&lt;br /&gt;
== Установка Dovecot ==&lt;br /&gt;
&lt;br /&gt;
Установка из пакета:&lt;br /&gt;
 # pkg install dovecot&lt;br /&gt;
&lt;br /&gt;
Установка автозапуска Dovecot в /etc/rc.conf:&lt;br /&gt;
 # sysrc dovecot_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
 dovecot_enable:  -&amp;gt; YES&lt;br /&gt;
&lt;br /&gt;
== Настройка Dovecot ==&lt;br /&gt;
&lt;br /&gt;
Копирование файлов настроек:&lt;br /&gt;
 # cp -Rpv /usr/local/etc/dovecot/example-config/* /usr/local/etc/dovecot&lt;br /&gt;
&lt;br /&gt;
Пример настроек в /usr/local/etc/dovecot/dovecot.conf:&lt;br /&gt;
 # Использование протокола IMAP:&lt;br /&gt;
 protocols = imap&lt;br /&gt;
 # Использование всех IPv4 данного хоста (можно указать необходимые IP-адреса):&lt;br /&gt;
 listen = *&lt;br /&gt;
&lt;br /&gt;
Пример настроек в /usr/local/etc/dovecot/dovecot-sql.conf.ext:&lt;br /&gt;
 # Использование СУБД MySQL&lt;br /&gt;
 driver = mysql&lt;br /&gt;
 # Строка подключения к базе данных Postfix Admin&lt;br /&gt;
 connect = host=192.168.0.103 dbname=mailadmin user=mailadmin password=12345678&lt;br /&gt;
 # Хранение паролей пользователей почты в базе данных Postfix Admin в открытом виде (это небезопасный способ, но можно оставить по умолчанию MD5):&lt;br /&gt;
 default_pass_scheme = PLAIN&lt;br /&gt;
 # Запрос к базе данных Postfix Admin для получения информации о пользователе, например, о расположении почтового ящика:&lt;br /&gt;
 user_query = select concat(&#039;/var/spool/dovecot/&#039;, maildir) as home, 143 as uid, 143 as gid from mailbox where username = &#039;%n@%d&#039; and active=&#039;1&#039;&lt;br /&gt;
 # Пример запроса пароля при использовании связки с PostfixAdmin&lt;br /&gt;
 password_query = select username as user, password from mailbox where username = &#039;%n@%d&#039; and active = &#039;1&#039;&lt;br /&gt;
&lt;br /&gt;
Пример настроек аутентификации в /usr/local/etc/dovecot/conf.d/10-auth.conf:&lt;br /&gt;
 !include auth-sql.conf.ext&lt;br /&gt;
&lt;br /&gt;
Пример настроек файлов журналов в /usr/local/etc/dovecot/conf.d/10-logging.conf:&lt;br /&gt;
 # Определение расположения файлов журналов&lt;br /&gt;
 log_path = /var/log/dovecot.log&lt;br /&gt;
 # Включение регистрации неудачных попыток аутентификации и причин их неудач&lt;br /&gt;
 auth_verbose = yes&lt;br /&gt;
&lt;br /&gt;
Настройки в файле /usr/local/etc/dovecot/conf.d/10-mail.conf:&lt;br /&gt;
 # Размещение почты в корневой папке /var/spool/dovecot в формате &amp;lt;домен&amp;gt;/&amp;lt;имя ящика&amp;gt;&lt;br /&gt;
 mail_location = maildir:/var/spool/dovecot/%d/%n&lt;br /&gt;
&lt;br /&gt;
== Установка mail/exim ==&lt;br /&gt;
&lt;br /&gt;
Exim - агент отправки почты для систем Unix.&lt;br /&gt;
&lt;br /&gt;
Подробная информация на сайте http://www.exim.org/&lt;br /&gt;
&lt;br /&gt;
Перед использованием этой статьи рекомендуется пройти по ссылке [[PKG|PKG]].&lt;br /&gt;
&lt;br /&gt;
Установка из пакета:&lt;br /&gt;
 # pkg install exim&lt;br /&gt;
 Updating FreeBSD repository catalogue...&lt;br /&gt;
 FreeBSD repository is up to date.&lt;br /&gt;
 All repositories are up to date.&lt;br /&gt;
 The following 46 package(s) will be affected (of 0 checked):&lt;br /&gt;
 &lt;br /&gt;
 New packages to be INSTALLED:&lt;br /&gt;
         brotli: 1.1.0,1&lt;br /&gt;
         curl: 8.12.1&lt;br /&gt;
         cyrus-sasl: 2.1.28_5&lt;br /&gt;
         exim: 4.98.2&lt;br /&gt;
         gettext-runtime: 0.23.1&lt;br /&gt;
         &#039;&#039;&#039;[пропущен список пакетов для установки]&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
 Number of packages to be installed: 46&lt;br /&gt;
 &lt;br /&gt;
 The process will require 308 MiB more space.&lt;br /&gt;
 50 MiB to be downloaded.&lt;br /&gt;
 &lt;br /&gt;
 Proceed with this action? [y/N]: y&lt;br /&gt;
 [1/46] Fetching indexinfo-0.3.1_1.pkg: 100%    6 KiB   6.0kB/s    00:01&lt;br /&gt;
 [2/46] Fetching cyrus-sasl-2.1.28_5.pkg: 100%    1 MiB   1.1MB/s    00:01&lt;br /&gt;
 [3/46] Fetching libcjson-1.7.18_2.pkg: 100%   39 KiB  39.5kB/s    00:01&lt;br /&gt;
 [4/46] Fetching libnghttp2-1.65.0.pkg: 100%  136 KiB 139.4kB/s    00:01&lt;br /&gt;
 [5/46] Fetching p5-HTTP-Date-6.06.pkg: 100%   11 KiB  11.0kB/s    00:01&lt;br /&gt;
 [пропущен список скачиваемых пакетов]&lt;br /&gt;
 Checking integrity... done (0 conflicting)&lt;br /&gt;
 [1/46] Installing brotli-1.1.0,1...&lt;br /&gt;
 [1/46] Extracting brotli-1.1.0,1: 100%&lt;br /&gt;
 [2/46] Installing cyrus-sasl-2.1.28_5...&lt;br /&gt;
 *** Added group `cyrus&#039; (id 60)&lt;br /&gt;
 *** Added user `cyrus&#039; (id 60)&lt;br /&gt;
 [2/46] Extracting cyrus-sasl-2.1.28_5: 100%&lt;br /&gt;
 [3/46] Installing icu-76.1,1...&lt;br /&gt;
 [3/46] Extracting icu-76.1,1: 100%&lt;br /&gt;
 [4/46] Installing indexinfo-0.3.1_1...&lt;br /&gt;
 [4/46] Extracting indexinfo-0.3.1_1: 100%&lt;br /&gt;
 [5/46] Installing gettext-runtime-0.23.1...&lt;br /&gt;
 [5/46] Extracting gettext-runtime-0.23.1: 100%&lt;br /&gt;
 &#039;&#039;&#039;[пропущен список устанавливаемых пакетов]&#039;&#039;&#039;&lt;br /&gt;
 =====&lt;br /&gt;
 Message from cyrus-sasl-2.1.28_5:&lt;br /&gt;
 &lt;br /&gt;
 --&lt;br /&gt;
 You can use sasldb2 for authentication, to add users use:&lt;br /&gt;
 &lt;br /&gt;
         saslpasswd2 -c username&lt;br /&gt;
 &lt;br /&gt;
 If you want to enable SMTP AUTH with the system Sendmail, read&lt;br /&gt;
 Sendmail.README&lt;br /&gt;
 &lt;br /&gt;
 NOTE: This port has been compiled with a default pwcheck_method of&lt;br /&gt;
       auxprop.  If you want to authenticate your user by /etc/passwd,&lt;br /&gt;
       PAM or LDAP, install ports/security/cyrus-sasl2-saslauthd and&lt;br /&gt;
       set sasl_pwcheck_method to saslauthd after installing the&lt;br /&gt;
       Cyrus-IMAPd 2.X port.  You should also check the&lt;br /&gt;
       /usr/local/lib/sasl2/*.conf files for the correct&lt;br /&gt;
       pwcheck_method.&lt;br /&gt;
       If you want to use GSSAPI mechanism, install&lt;br /&gt;
       ports/security/cyrus-sasl2-gssapi.&lt;br /&gt;
       If you want to use SRP mechanism, install&lt;br /&gt;
       ports/security/cyrus-sasl2-srp.&lt;br /&gt;
       If you want to use LDAP auxprop plugin, install&lt;br /&gt;
       ports/security/cyrus-sasl2-ldapdb.&lt;br /&gt;
 =====&lt;br /&gt;
 Message from openldap26-client-2.6.9_1:&lt;br /&gt;
 &lt;br /&gt;
 --&lt;br /&gt;
 The OpenLDAP client package has been successfully installed.&lt;br /&gt;
 &lt;br /&gt;
 Edit&lt;br /&gt;
   /usr/local/etc/openldap/ldap.conf&lt;br /&gt;
 to change the system-wide client defaults.&lt;br /&gt;
 &lt;br /&gt;
 Try `man ldap.conf&#039; and visit the OpenLDAP FAQ-O-Matic at&lt;br /&gt;
   http://www.OpenLDAP.org/faq/index.cgi?file=3&lt;br /&gt;
 for more information.&lt;br /&gt;
 =====&lt;br /&gt;
 Message from groff-1.23.0_4:&lt;br /&gt;
 &lt;br /&gt;
 --&lt;br /&gt;
 In order to be able to use the html driver, you need to install the following&lt;br /&gt;
 packages:&lt;br /&gt;
  - ghostscript&lt;br /&gt;
  - netpbm&lt;br /&gt;
 --&lt;br /&gt;
 ===&amp;gt;   NOTICE:&lt;br /&gt;
 &lt;br /&gt;
 The groff port currently does not have a maintainer. As a result, it is&lt;br /&gt;
 more likely to have unresolved issues, not be up-to-date, or even be removed in&lt;br /&gt;
 the future. To volunteer to maintain this port, please create an issue at:&lt;br /&gt;
 &lt;br /&gt;
 https://bugs.freebsd.org/bugzilla&lt;br /&gt;
 &lt;br /&gt;
 More information about port maintainership is available at:&lt;br /&gt;
 &lt;br /&gt;
 https://docs.freebsd.org/en/articles/contributing/#ports-contributing&lt;br /&gt;
 =====&lt;br /&gt;
 Message from mysql80-client-8.0.41:&lt;br /&gt;
 &lt;br /&gt;
 --&lt;br /&gt;
 This is the mysql CLIENT without the server.&lt;br /&gt;
 for complete server and client, please install databases/mysql80-server&lt;br /&gt;
 =====&lt;br /&gt;
 Message from exim-4.98.2:&lt;br /&gt;
 &lt;br /&gt;
 --&lt;br /&gt;
 The following documentation has been installed:&lt;br /&gt;
 &lt;br /&gt;
   man exim                              -&amp;gt; Exim options (command line)&lt;br /&gt;
   /usr/local/share/doc/exim/spec.txt    -&amp;gt; Exim Specification (User Guide)&lt;br /&gt;
   /usr/local/share/doc/exim/filter.txt  -&amp;gt; Exim Filter Specification (for end-users)&lt;br /&gt;
 &lt;br /&gt;
 Postscript, PDF, HTML and texinfo versions of these documents can be&lt;br /&gt;
 installed via one of the mail/exim-doc-* ports.&lt;br /&gt;
 &lt;br /&gt;
 An online version as well as a comprehensive FAQ and a mailing list&lt;br /&gt;
 archive is available at:&lt;br /&gt;
 &lt;br /&gt;
   http://www.exim.org/&lt;br /&gt;
 &lt;br /&gt;
 Descriptions of new features not available it the manual, and a listing&lt;br /&gt;
 of all changes, including bug fixes are documented in:&lt;br /&gt;
 &lt;br /&gt;
   /usr/local/share/doc/exim/NewStuff&lt;br /&gt;
   /usr/local/share/doc/exim/ChangeLog&lt;br /&gt;
 &lt;br /&gt;
 To use Exim instead of sendmail on startup:&lt;br /&gt;
 &lt;br /&gt;
 *) Clear the sendmail queue and stop the sendmail daemon.&lt;br /&gt;
 *) Adjust mailer.conf(5) as appropriate.&lt;br /&gt;
 *) Set the &#039;sendmail_enable&#039; rc.conf(5) variable to &#039;NONE&#039;.&lt;br /&gt;
 *) Set the &#039;daily_status_include_submit_mailq&#039; and&lt;br /&gt;
    &#039;daily_clean_hoststat_enable&#039; periodic.conf(5)&lt;br /&gt;
    variables to &#039;NO&#039;.&lt;br /&gt;
 *) Consider setting &#039;daily_queuerun_enable&#039; and&lt;br /&gt;
    &#039;daily_submit_queuerun&#039; to &amp;quot;NO&amp;quot; in periodic.conf(5),&lt;br /&gt;
    if you intend to manage queue runners / deliveries closely.&lt;br /&gt;
 *) Set the &#039;exim_enable&#039; rc.conf(5) variable to &#039;YES&#039;.&lt;br /&gt;
 *) Start exim with &#039;/usr/local/etc/rc.d/exim start&#039;.&lt;br /&gt;
 &lt;br /&gt;
 You may also want to configure newsyslog(8) to rotate Exim log files:&lt;br /&gt;
 &lt;br /&gt;
 /var/log/exim/mainlog   mailnull:mail 640 7 * @T00 ZN&lt;br /&gt;
 /var/log/exim/rejectlog mailnull:mail 640 7 * @T00 ZN&lt;br /&gt;
 &lt;br /&gt;
 Additional scripts to help upgrading are installed in:&lt;br /&gt;
 &lt;br /&gt;
   /usr/local/share/examples/exim&lt;br /&gt;
&lt;br /&gt;
Установка автозапуска Exim в /etc/rc.conf:&lt;br /&gt;
 # sysrc exim_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
 exim_enable:  -&amp;gt; YES&lt;br /&gt;
&lt;br /&gt;
== Расшифровка вывода установки mail/exim ==&lt;br /&gt;
&lt;br /&gt;
Настройка ротации файлов журнала Exim  добавлением строк в файл /etc/newslog.conf:&lt;br /&gt;
 /var/log/exim/mainlog   mailnull:mail 640 7 * @T00 ZN&lt;br /&gt;
 /var/log/exim/rejectlog mailnull:mail 640 7 * @T00 ZN&lt;br /&gt;
&lt;br /&gt;
== Настройка mail/exim ==&lt;br /&gt;
Настройки Exim устанавливаются в файле /usr/local/etc/exim/configure:&lt;br /&gt;
&lt;br /&gt;
Определение списка локальных доменов, обслуживаемых сервером (использование &amp;quot;@&amp;quot; разрешает локальные доставки):&lt;br /&gt;
 domainlist local_domains = @ : ${lookup mysql{select domain from domain where domain=&#039;${domain}&#039; and active=&#039;1&#039;}}&lt;br /&gt;
&lt;br /&gt;
Определение списка хостов, которые могут использовать сервер для пересылки исходящей почты (это обычно относится ко всей локальной сети, а также к самому серверу):&lt;br /&gt;
 hostlist   relay_from_hosts = localhost : 192.168.0.0/24&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://wiki.bsdhowto.ru/index.php?title=Clamav%2BDovecot%2BExim&amp;diff=240</id>
		<title>Clamav+Dovecot+Exim</title>
		<link rel="alternate" type="text/html" href="https://wiki.bsdhowto.ru/index.php?title=Clamav%2BDovecot%2BExim&amp;diff=240"/>
		<updated>2025-12-03T17:00:16Z</updated>

		<summary type="html">&lt;p&gt;Igor: /* Настройка Dovecot */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Подготовка клетки для Clamav+Dovecot+Exim ==&lt;br /&gt;
&lt;br /&gt;
Перед использованием этой статьи рекомендуется пройти по ссылке [[Qjail|Qjail]].&lt;br /&gt;
&lt;br /&gt;
Создание отдельной файловой системы для клетки с Clamav+Dovecot+Exim в ZFS::&lt;br /&gt;
 # zfs create zroot/usr/jails/mail&lt;br /&gt;
&lt;br /&gt;
Создание клетки c именем &amp;quot;mail&amp;quot; и IPv4-адресом &amp;quot;192.168.0.105&amp;quot;, запуск и управление клеткой:&lt;br /&gt;
 # qjail create -4 192.168.0.105 mail&lt;br /&gt;
 # qjail start mail&lt;br /&gt;
 # qjail console mail&lt;br /&gt;
&lt;br /&gt;
== Установка security/clamav ==&lt;br /&gt;
&lt;br /&gt;
Clam Antivirus - антивирусный сканер, который можно использовать для почтовых систем.&lt;br /&gt;
&lt;br /&gt;
Подробная информация на сайте https://www.clamav.net/&lt;br /&gt;
&lt;br /&gt;
Установка из пакета:&lt;br /&gt;
 # pkg install clamav&lt;br /&gt;
 Updating FreeBSD repository catalogue...&lt;br /&gt;
 FreeBSD repository is up to date.&lt;br /&gt;
 All repositories are up to date.&lt;br /&gt;
 The following 19 package(s) will be affected (of 0 checked):&lt;br /&gt;
 &lt;br /&gt;
 New packages to be INSTALLED:&lt;br /&gt;
         arc: 5.21q_1&lt;br /&gt;
         arj: 3.10.22_12&lt;br /&gt;
         brotli: 1.1.0,1&lt;br /&gt;
         clamav: 1.4.2_1,1&lt;br /&gt;
         curl: 8.12.1&lt;br /&gt;
         &#039;&#039;&#039;[пропущен список пакетов для установки]&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
 Number of packages to be installed: 19&lt;br /&gt;
 &lt;br /&gt;
 The process will require 95 MiB more space.&lt;br /&gt;
 21 MiB to be downloaded.&lt;br /&gt;
 &lt;br /&gt;
 Proceed with this action? [y/N]: y&lt;br /&gt;
 [1/19] Fetching indexinfo-0.3.1_1.pkg: 100%    6 KiB   6.0kB/s    00:01&lt;br /&gt;
 [2/19] Fetching libnghttp2-1.65.0.pkg: 100%  136 KiB 139.4kB/s    00:01&lt;br /&gt;
 [3/19] Fetching libxml2-2.11.9.pkg: 100%  872 KiB 893.4kB/s    00:01&lt;br /&gt;
 [4/19] Fetching libidn2-2.3.8.pkg: 100%  160 KiB 164.2kB/s    00:01&lt;br /&gt;
 [5/19] Fetching liblz4-1.10.0,1.pkg: 100%  163 KiB 167.3kB/s    00:01&lt;br /&gt;
 &#039;&#039;&#039;[пропущен список скачиваемых пакетов]&#039;&#039;&#039;&lt;br /&gt;
 Checking integrity... done (0 conflicting)&lt;br /&gt;
 [1/19] Installing arc-5.21q_1...&lt;br /&gt;
 [1/19] Extracting arc-5.21q_1: 100%&lt;br /&gt;
 [2/19] Installing arj-3.10.22_12...&lt;br /&gt;
 [2/19] Extracting arj-3.10.22_12: 100%&lt;br /&gt;
 [3/19] Installing brotli-1.1.0,1...&lt;br /&gt;
 [3/19] Extracting brotli-1.1.0,1: 100%&lt;br /&gt;
 [4/19] Installing indexinfo-0.3.1_1...&lt;br /&gt;
 [4/19] Extracting indexinfo-0.3.1_1: 100%&lt;br /&gt;
 [5/19] Installing json-c-0.18...&lt;br /&gt;
 [5/19] Extracting json-c-0.18: 100%&lt;br /&gt;
 &#039;&#039;&#039;[пропущен список устанавливаемых пакетов]&#039;&#039;&#039;&lt;br /&gt;
 [19/19] Installing clamav-1.4.2_1,1...&lt;br /&gt;
 ===&amp;gt; Creating groups&lt;br /&gt;
 Creating group &#039;clamav&#039; with gid &#039;106&#039;&lt;br /&gt;
 Using existing group &#039;mail&#039;&lt;br /&gt;
 ===&amp;gt; Creating users&lt;br /&gt;
 Creating user &#039;clamav&#039; with uid &#039;106&#039;&lt;br /&gt;
 Adding user &#039;clamav&#039; to group &#039;mail&#039;&lt;br /&gt;
 [19/19] Extracting clamav-1.4.2_1,1: 100%&lt;br /&gt;
&lt;br /&gt;
Проверка установки Clamav:&lt;br /&gt;
 # pkg version -v | grep clamav&lt;br /&gt;
 clamav-1.4.2_1,1                   =   up-to-date with remote&lt;br /&gt;
&lt;br /&gt;
Установка автозапуска Clam Antivirus в /etc/rc.conf:&lt;br /&gt;
 # sysrc clamav_freshclam_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
 clamav_freshclam_enable:  -&amp;gt; YES&lt;br /&gt;
 # sysrc clamav_clamd_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
 clamav_clamd_enable:  -&amp;gt; YES&lt;br /&gt;
&lt;br /&gt;
Настройка обхода санкций перед запуском freshclam (обновление антивирусных баз данных clamav) в файле /usr/local/etc/freshclam.conf:&lt;br /&gt;
 #DatabaseMirror database.clamav.net&lt;br /&gt;
 DatabaseMirror packages.microsoft.com/clamav&lt;br /&gt;
&lt;br /&gt;
Запуск clamav_freshclam:&lt;br /&gt;
 # service clamav_freshclam start&lt;br /&gt;
 Starting clamav_freshclam.&lt;br /&gt;
&lt;br /&gt;
Запуск clamav:&lt;br /&gt;
 # service clamav_clamd start&lt;br /&gt;
 Starting clamav_clamd.&lt;br /&gt;
&lt;br /&gt;
Проверка Clamav:&lt;br /&gt;
 # sockstat -l | grep clamav&lt;br /&gt;
 clamav   clamd       1333 4   stream /var/run/clamav/clamd.sock&lt;br /&gt;
&lt;br /&gt;
== Установка Dovecot ==&lt;br /&gt;
&lt;br /&gt;
Установка из пакета:&lt;br /&gt;
 # pkg install dovecot&lt;br /&gt;
&lt;br /&gt;
Установка автозапуска Dovecot в /etc/rc.conf:&lt;br /&gt;
 # sysrc dovecot_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
 dovecot_enable:  -&amp;gt; YES&lt;br /&gt;
&lt;br /&gt;
== Настройка Dovecot ==&lt;br /&gt;
&lt;br /&gt;
Копирование файлов настроек:&lt;br /&gt;
 # cp -Rpv /usr/local/etc/dovecot/example-config/* /usr/local/etc/dovecot&lt;br /&gt;
&lt;br /&gt;
Пример настроек в /usr/local/etc/dovecot/dovecot.conf:&lt;br /&gt;
 # Использование протокола IMAP:&lt;br /&gt;
 protocols = imap&lt;br /&gt;
 # Использование всех IPv4 данного хоста (можно указать необходимые IP-адреса):&lt;br /&gt;
 listen = *&lt;br /&gt;
&lt;br /&gt;
Пример настроек в /usr/local/etc/dovecot/dovecot-sql.conf.ext:&lt;br /&gt;
 # Использование СУБД MySQL&lt;br /&gt;
 driver = mysql&lt;br /&gt;
 # Строка подключения к базе данных Postfix Admin&lt;br /&gt;
 connect = host=192.168.0.103 dbname=mailadmin user=mailadmin password=12345678&lt;br /&gt;
 # Хранение паролей пользователей почты в базе данных Postfix Admin в открытом виде (это небезопасный способ, но можно оставить по умолчанию MD5):&lt;br /&gt;
 default_pass_scheme = PLAIN&lt;br /&gt;
 # Пример запроса имени почтового ящика при использовании связки с PostfixAdmin&lt;br /&gt;
 user_query = select concat(&#039;/var/spool/dovecot/&#039;, maildir) as home, 143 as uid, 143 as gid from mailbox where username = &#039;%n@%d&#039; and active=&#039;1&#039;&lt;br /&gt;
 # Пример запроса пароля при использовании связки с PostfixAdmin&lt;br /&gt;
 password_query = select username as user, password from mailbox where username = &#039;%n@%d&#039; and active = &#039;1&#039;&lt;br /&gt;
&lt;br /&gt;
Пример настроек аутентификации в /usr/local/etc/dovecot/conf.d/10-auth.conf:&lt;br /&gt;
 !include auth-sql.conf.ext&lt;br /&gt;
&lt;br /&gt;
Пример настроек файлов журналов в /usr/local/etc/dovecot/conf.d/10-logging.conf:&lt;br /&gt;
 # Определение расположения файлов журналов&lt;br /&gt;
 log_path = /var/log/dovecot.log&lt;br /&gt;
 # Включение регистрации неудачных попыток аутентификации и причин их неудач&lt;br /&gt;
 auth_verbose = yes&lt;br /&gt;
&lt;br /&gt;
Настройки в файле /usr/local/etc/dovecot/conf.d/10-mail.conf:&lt;br /&gt;
 # Размещение почты в корневой папке /var/spool/dovecot в формате &amp;lt;домен&amp;gt;/&amp;lt;имя ящика&amp;gt;&lt;br /&gt;
 mail_location = maildir:/var/spool/dovecot/%d/%n&lt;br /&gt;
&lt;br /&gt;
== Установка mail/exim ==&lt;br /&gt;
&lt;br /&gt;
Exim - агент отправки почты для систем Unix.&lt;br /&gt;
&lt;br /&gt;
Подробная информация на сайте http://www.exim.org/&lt;br /&gt;
&lt;br /&gt;
Перед использованием этой статьи рекомендуется пройти по ссылке [[PKG|PKG]].&lt;br /&gt;
&lt;br /&gt;
Установка из пакета:&lt;br /&gt;
 # pkg install exim&lt;br /&gt;
 Updating FreeBSD repository catalogue...&lt;br /&gt;
 FreeBSD repository is up to date.&lt;br /&gt;
 All repositories are up to date.&lt;br /&gt;
 The following 46 package(s) will be affected (of 0 checked):&lt;br /&gt;
 &lt;br /&gt;
 New packages to be INSTALLED:&lt;br /&gt;
         brotli: 1.1.0,1&lt;br /&gt;
         curl: 8.12.1&lt;br /&gt;
         cyrus-sasl: 2.1.28_5&lt;br /&gt;
         exim: 4.98.2&lt;br /&gt;
         gettext-runtime: 0.23.1&lt;br /&gt;
         &#039;&#039;&#039;[пропущен список пакетов для установки]&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
 Number of packages to be installed: 46&lt;br /&gt;
 &lt;br /&gt;
 The process will require 308 MiB more space.&lt;br /&gt;
 50 MiB to be downloaded.&lt;br /&gt;
 &lt;br /&gt;
 Proceed with this action? [y/N]: y&lt;br /&gt;
 [1/46] Fetching indexinfo-0.3.1_1.pkg: 100%    6 KiB   6.0kB/s    00:01&lt;br /&gt;
 [2/46] Fetching cyrus-sasl-2.1.28_5.pkg: 100%    1 MiB   1.1MB/s    00:01&lt;br /&gt;
 [3/46] Fetching libcjson-1.7.18_2.pkg: 100%   39 KiB  39.5kB/s    00:01&lt;br /&gt;
 [4/46] Fetching libnghttp2-1.65.0.pkg: 100%  136 KiB 139.4kB/s    00:01&lt;br /&gt;
 [5/46] Fetching p5-HTTP-Date-6.06.pkg: 100%   11 KiB  11.0kB/s    00:01&lt;br /&gt;
 [пропущен список скачиваемых пакетов]&lt;br /&gt;
 Checking integrity... done (0 conflicting)&lt;br /&gt;
 [1/46] Installing brotli-1.1.0,1...&lt;br /&gt;
 [1/46] Extracting brotli-1.1.0,1: 100%&lt;br /&gt;
 [2/46] Installing cyrus-sasl-2.1.28_5...&lt;br /&gt;
 *** Added group `cyrus&#039; (id 60)&lt;br /&gt;
 *** Added user `cyrus&#039; (id 60)&lt;br /&gt;
 [2/46] Extracting cyrus-sasl-2.1.28_5: 100%&lt;br /&gt;
 [3/46] Installing icu-76.1,1...&lt;br /&gt;
 [3/46] Extracting icu-76.1,1: 100%&lt;br /&gt;
 [4/46] Installing indexinfo-0.3.1_1...&lt;br /&gt;
 [4/46] Extracting indexinfo-0.3.1_1: 100%&lt;br /&gt;
 [5/46] Installing gettext-runtime-0.23.1...&lt;br /&gt;
 [5/46] Extracting gettext-runtime-0.23.1: 100%&lt;br /&gt;
 &#039;&#039;&#039;[пропущен список устанавливаемых пакетов]&#039;&#039;&#039;&lt;br /&gt;
 =====&lt;br /&gt;
 Message from cyrus-sasl-2.1.28_5:&lt;br /&gt;
 &lt;br /&gt;
 --&lt;br /&gt;
 You can use sasldb2 for authentication, to add users use:&lt;br /&gt;
 &lt;br /&gt;
         saslpasswd2 -c username&lt;br /&gt;
 &lt;br /&gt;
 If you want to enable SMTP AUTH with the system Sendmail, read&lt;br /&gt;
 Sendmail.README&lt;br /&gt;
 &lt;br /&gt;
 NOTE: This port has been compiled with a default pwcheck_method of&lt;br /&gt;
       auxprop.  If you want to authenticate your user by /etc/passwd,&lt;br /&gt;
       PAM or LDAP, install ports/security/cyrus-sasl2-saslauthd and&lt;br /&gt;
       set sasl_pwcheck_method to saslauthd after installing the&lt;br /&gt;
       Cyrus-IMAPd 2.X port.  You should also check the&lt;br /&gt;
       /usr/local/lib/sasl2/*.conf files for the correct&lt;br /&gt;
       pwcheck_method.&lt;br /&gt;
       If you want to use GSSAPI mechanism, install&lt;br /&gt;
       ports/security/cyrus-sasl2-gssapi.&lt;br /&gt;
       If you want to use SRP mechanism, install&lt;br /&gt;
       ports/security/cyrus-sasl2-srp.&lt;br /&gt;
       If you want to use LDAP auxprop plugin, install&lt;br /&gt;
       ports/security/cyrus-sasl2-ldapdb.&lt;br /&gt;
 =====&lt;br /&gt;
 Message from openldap26-client-2.6.9_1:&lt;br /&gt;
 &lt;br /&gt;
 --&lt;br /&gt;
 The OpenLDAP client package has been successfully installed.&lt;br /&gt;
 &lt;br /&gt;
 Edit&lt;br /&gt;
   /usr/local/etc/openldap/ldap.conf&lt;br /&gt;
 to change the system-wide client defaults.&lt;br /&gt;
 &lt;br /&gt;
 Try `man ldap.conf&#039; and visit the OpenLDAP FAQ-O-Matic at&lt;br /&gt;
   http://www.OpenLDAP.org/faq/index.cgi?file=3&lt;br /&gt;
 for more information.&lt;br /&gt;
 =====&lt;br /&gt;
 Message from groff-1.23.0_4:&lt;br /&gt;
 &lt;br /&gt;
 --&lt;br /&gt;
 In order to be able to use the html driver, you need to install the following&lt;br /&gt;
 packages:&lt;br /&gt;
  - ghostscript&lt;br /&gt;
  - netpbm&lt;br /&gt;
 --&lt;br /&gt;
 ===&amp;gt;   NOTICE:&lt;br /&gt;
 &lt;br /&gt;
 The groff port currently does not have a maintainer. As a result, it is&lt;br /&gt;
 more likely to have unresolved issues, not be up-to-date, or even be removed in&lt;br /&gt;
 the future. To volunteer to maintain this port, please create an issue at:&lt;br /&gt;
 &lt;br /&gt;
 https://bugs.freebsd.org/bugzilla&lt;br /&gt;
 &lt;br /&gt;
 More information about port maintainership is available at:&lt;br /&gt;
 &lt;br /&gt;
 https://docs.freebsd.org/en/articles/contributing/#ports-contributing&lt;br /&gt;
 =====&lt;br /&gt;
 Message from mysql80-client-8.0.41:&lt;br /&gt;
 &lt;br /&gt;
 --&lt;br /&gt;
 This is the mysql CLIENT without the server.&lt;br /&gt;
 for complete server and client, please install databases/mysql80-server&lt;br /&gt;
 =====&lt;br /&gt;
 Message from exim-4.98.2:&lt;br /&gt;
 &lt;br /&gt;
 --&lt;br /&gt;
 The following documentation has been installed:&lt;br /&gt;
 &lt;br /&gt;
   man exim                              -&amp;gt; Exim options (command line)&lt;br /&gt;
   /usr/local/share/doc/exim/spec.txt    -&amp;gt; Exim Specification (User Guide)&lt;br /&gt;
   /usr/local/share/doc/exim/filter.txt  -&amp;gt; Exim Filter Specification (for end-users)&lt;br /&gt;
 &lt;br /&gt;
 Postscript, PDF, HTML and texinfo versions of these documents can be&lt;br /&gt;
 installed via one of the mail/exim-doc-* ports.&lt;br /&gt;
 &lt;br /&gt;
 An online version as well as a comprehensive FAQ and a mailing list&lt;br /&gt;
 archive is available at:&lt;br /&gt;
 &lt;br /&gt;
   http://www.exim.org/&lt;br /&gt;
 &lt;br /&gt;
 Descriptions of new features not available it the manual, and a listing&lt;br /&gt;
 of all changes, including bug fixes are documented in:&lt;br /&gt;
 &lt;br /&gt;
   /usr/local/share/doc/exim/NewStuff&lt;br /&gt;
   /usr/local/share/doc/exim/ChangeLog&lt;br /&gt;
 &lt;br /&gt;
 To use Exim instead of sendmail on startup:&lt;br /&gt;
 &lt;br /&gt;
 *) Clear the sendmail queue and stop the sendmail daemon.&lt;br /&gt;
 *) Adjust mailer.conf(5) as appropriate.&lt;br /&gt;
 *) Set the &#039;sendmail_enable&#039; rc.conf(5) variable to &#039;NONE&#039;.&lt;br /&gt;
 *) Set the &#039;daily_status_include_submit_mailq&#039; and&lt;br /&gt;
    &#039;daily_clean_hoststat_enable&#039; periodic.conf(5)&lt;br /&gt;
    variables to &#039;NO&#039;.&lt;br /&gt;
 *) Consider setting &#039;daily_queuerun_enable&#039; and&lt;br /&gt;
    &#039;daily_submit_queuerun&#039; to &amp;quot;NO&amp;quot; in periodic.conf(5),&lt;br /&gt;
    if you intend to manage queue runners / deliveries closely.&lt;br /&gt;
 *) Set the &#039;exim_enable&#039; rc.conf(5) variable to &#039;YES&#039;.&lt;br /&gt;
 *) Start exim with &#039;/usr/local/etc/rc.d/exim start&#039;.&lt;br /&gt;
 &lt;br /&gt;
 You may also want to configure newsyslog(8) to rotate Exim log files:&lt;br /&gt;
 &lt;br /&gt;
 /var/log/exim/mainlog   mailnull:mail 640 7 * @T00 ZN&lt;br /&gt;
 /var/log/exim/rejectlog mailnull:mail 640 7 * @T00 ZN&lt;br /&gt;
 &lt;br /&gt;
 Additional scripts to help upgrading are installed in:&lt;br /&gt;
 &lt;br /&gt;
   /usr/local/share/examples/exim&lt;br /&gt;
&lt;br /&gt;
Установка автозапуска Exim в /etc/rc.conf:&lt;br /&gt;
 # sysrc exim_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
 exim_enable:  -&amp;gt; YES&lt;br /&gt;
&lt;br /&gt;
== Расшифровка вывода установки mail/exim ==&lt;br /&gt;
&lt;br /&gt;
Настройка ротации файлов журнала Exim  добавлением строк в файл /etc/newslog.conf:&lt;br /&gt;
 /var/log/exim/mainlog   mailnull:mail 640 7 * @T00 ZN&lt;br /&gt;
 /var/log/exim/rejectlog mailnull:mail 640 7 * @T00 ZN&lt;br /&gt;
&lt;br /&gt;
== Настройка mail/exim ==&lt;br /&gt;
Настройки Exim устанавливаются в файле /usr/local/etc/exim/configure:&lt;br /&gt;
&lt;br /&gt;
Определение списка локальных доменов, обслуживаемых сервером (использование &amp;quot;@&amp;quot; разрешает локальные доставки):&lt;br /&gt;
 domainlist local_domains = @ : ${lookup mysql{select domain from domain where domain=&#039;${domain}&#039; and active=&#039;1&#039;}}&lt;br /&gt;
&lt;br /&gt;
Определение списка хостов, которые могут использовать сервер для пересылки исходящей почты (это обычно относится ко всей локальной сети, а также к самому серверу):&lt;br /&gt;
 hostlist   relay_from_hosts = localhost : 192.168.0.0/24&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://wiki.bsdhowto.ru/index.php?title=Clamav%2BDovecot%2BExim&amp;diff=239</id>
		<title>Clamav+Dovecot+Exim</title>
		<link rel="alternate" type="text/html" href="https://wiki.bsdhowto.ru/index.php?title=Clamav%2BDovecot%2BExim&amp;diff=239"/>
		<updated>2025-12-03T16:22:34Z</updated>

		<summary type="html">&lt;p&gt;Igor: /* Настройка Dovecot */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Подготовка клетки для Clamav+Dovecot+Exim ==&lt;br /&gt;
&lt;br /&gt;
Перед использованием этой статьи рекомендуется пройти по ссылке [[Qjail|Qjail]].&lt;br /&gt;
&lt;br /&gt;
Создание отдельной файловой системы для клетки с Clamav+Dovecot+Exim в ZFS::&lt;br /&gt;
 # zfs create zroot/usr/jails/mail&lt;br /&gt;
&lt;br /&gt;
Создание клетки c именем &amp;quot;mail&amp;quot; и IPv4-адресом &amp;quot;192.168.0.105&amp;quot;, запуск и управление клеткой:&lt;br /&gt;
 # qjail create -4 192.168.0.105 mail&lt;br /&gt;
 # qjail start mail&lt;br /&gt;
 # qjail console mail&lt;br /&gt;
&lt;br /&gt;
== Установка security/clamav ==&lt;br /&gt;
&lt;br /&gt;
Clam Antivirus - антивирусный сканер, который можно использовать для почтовых систем.&lt;br /&gt;
&lt;br /&gt;
Подробная информация на сайте https://www.clamav.net/&lt;br /&gt;
&lt;br /&gt;
Установка из пакета:&lt;br /&gt;
 # pkg install clamav&lt;br /&gt;
 Updating FreeBSD repository catalogue...&lt;br /&gt;
 FreeBSD repository is up to date.&lt;br /&gt;
 All repositories are up to date.&lt;br /&gt;
 The following 19 package(s) will be affected (of 0 checked):&lt;br /&gt;
 &lt;br /&gt;
 New packages to be INSTALLED:&lt;br /&gt;
         arc: 5.21q_1&lt;br /&gt;
         arj: 3.10.22_12&lt;br /&gt;
         brotli: 1.1.0,1&lt;br /&gt;
         clamav: 1.4.2_1,1&lt;br /&gt;
         curl: 8.12.1&lt;br /&gt;
         &#039;&#039;&#039;[пропущен список пакетов для установки]&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
 Number of packages to be installed: 19&lt;br /&gt;
 &lt;br /&gt;
 The process will require 95 MiB more space.&lt;br /&gt;
 21 MiB to be downloaded.&lt;br /&gt;
 &lt;br /&gt;
 Proceed with this action? [y/N]: y&lt;br /&gt;
 [1/19] Fetching indexinfo-0.3.1_1.pkg: 100%    6 KiB   6.0kB/s    00:01&lt;br /&gt;
 [2/19] Fetching libnghttp2-1.65.0.pkg: 100%  136 KiB 139.4kB/s    00:01&lt;br /&gt;
 [3/19] Fetching libxml2-2.11.9.pkg: 100%  872 KiB 893.4kB/s    00:01&lt;br /&gt;
 [4/19] Fetching libidn2-2.3.8.pkg: 100%  160 KiB 164.2kB/s    00:01&lt;br /&gt;
 [5/19] Fetching liblz4-1.10.0,1.pkg: 100%  163 KiB 167.3kB/s    00:01&lt;br /&gt;
 &#039;&#039;&#039;[пропущен список скачиваемых пакетов]&#039;&#039;&#039;&lt;br /&gt;
 Checking integrity... done (0 conflicting)&lt;br /&gt;
 [1/19] Installing arc-5.21q_1...&lt;br /&gt;
 [1/19] Extracting arc-5.21q_1: 100%&lt;br /&gt;
 [2/19] Installing arj-3.10.22_12...&lt;br /&gt;
 [2/19] Extracting arj-3.10.22_12: 100%&lt;br /&gt;
 [3/19] Installing brotli-1.1.0,1...&lt;br /&gt;
 [3/19] Extracting brotli-1.1.0,1: 100%&lt;br /&gt;
 [4/19] Installing indexinfo-0.3.1_1...&lt;br /&gt;
 [4/19] Extracting indexinfo-0.3.1_1: 100%&lt;br /&gt;
 [5/19] Installing json-c-0.18...&lt;br /&gt;
 [5/19] Extracting json-c-0.18: 100%&lt;br /&gt;
 &#039;&#039;&#039;[пропущен список устанавливаемых пакетов]&#039;&#039;&#039;&lt;br /&gt;
 [19/19] Installing clamav-1.4.2_1,1...&lt;br /&gt;
 ===&amp;gt; Creating groups&lt;br /&gt;
 Creating group &#039;clamav&#039; with gid &#039;106&#039;&lt;br /&gt;
 Using existing group &#039;mail&#039;&lt;br /&gt;
 ===&amp;gt; Creating users&lt;br /&gt;
 Creating user &#039;clamav&#039; with uid &#039;106&#039;&lt;br /&gt;
 Adding user &#039;clamav&#039; to group &#039;mail&#039;&lt;br /&gt;
 [19/19] Extracting clamav-1.4.2_1,1: 100%&lt;br /&gt;
&lt;br /&gt;
Проверка установки Clamav:&lt;br /&gt;
 # pkg version -v | grep clamav&lt;br /&gt;
 clamav-1.4.2_1,1                   =   up-to-date with remote&lt;br /&gt;
&lt;br /&gt;
Установка автозапуска Clam Antivirus в /etc/rc.conf:&lt;br /&gt;
 # sysrc clamav_freshclam_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
 clamav_freshclam_enable:  -&amp;gt; YES&lt;br /&gt;
 # sysrc clamav_clamd_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
 clamav_clamd_enable:  -&amp;gt; YES&lt;br /&gt;
&lt;br /&gt;
Настройка обхода санкций перед запуском freshclam (обновление антивирусных баз данных clamav) в файле /usr/local/etc/freshclam.conf:&lt;br /&gt;
 #DatabaseMirror database.clamav.net&lt;br /&gt;
 DatabaseMirror packages.microsoft.com/clamav&lt;br /&gt;
&lt;br /&gt;
Запуск clamav_freshclam:&lt;br /&gt;
 # service clamav_freshclam start&lt;br /&gt;
 Starting clamav_freshclam.&lt;br /&gt;
&lt;br /&gt;
Запуск clamav:&lt;br /&gt;
 # service clamav_clamd start&lt;br /&gt;
 Starting clamav_clamd.&lt;br /&gt;
&lt;br /&gt;
Проверка Clamav:&lt;br /&gt;
 # sockstat -l | grep clamav&lt;br /&gt;
 clamav   clamd       1333 4   stream /var/run/clamav/clamd.sock&lt;br /&gt;
&lt;br /&gt;
== Установка Dovecot ==&lt;br /&gt;
&lt;br /&gt;
Установка из пакета:&lt;br /&gt;
 # pkg install dovecot&lt;br /&gt;
&lt;br /&gt;
Установка автозапуска Dovecot в /etc/rc.conf:&lt;br /&gt;
 # sysrc dovecot_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
 dovecot_enable:  -&amp;gt; YES&lt;br /&gt;
&lt;br /&gt;
== Настройка Dovecot ==&lt;br /&gt;
&lt;br /&gt;
Копирование файлов настроек:&lt;br /&gt;
 # cp -Rpv /usr/local/etc/dovecot/example-config/* /usr/local/etc/dovecot&lt;br /&gt;
&lt;br /&gt;
Пример настроек в /usr/local/etc/dovecot/dovecot.conf:&lt;br /&gt;
 # Использование протокола IMAP:&lt;br /&gt;
 protocols = imap&lt;br /&gt;
 # Использование всех IPv4 данного хоста (можно указать необходимые IP-адреса):&lt;br /&gt;
 listen = *&lt;br /&gt;
&lt;br /&gt;
Пример настроек в /usr/local/etc/dovecot/dovecot-sql.conf.ext:&lt;br /&gt;
 # Использование СУБД MySQL&lt;br /&gt;
 driver = mysql&lt;br /&gt;
 # Строка подключения к базе данных Postfix Admin&lt;br /&gt;
 connect = host=192.168.0.103 dbname=mailadmin user=mailadmin password=12345678&lt;br /&gt;
 # Хранение паролей пользователей почты в базе данных Postfix Admin в открытом виде (это небезопасный способ, но можно оставить по умолчанию MD5):&lt;br /&gt;
 default_pass_scheme = PLAIN&lt;br /&gt;
 # Пример запроса пароля при использовании связки с PostfixAdmin&lt;br /&gt;
 password_query = select username as user, password from mailbox where username = &#039;%n@%d&#039; and active = &#039;1&#039;&lt;br /&gt;
 # Пример запроса имени почтового ящика при использовании связки с PostfixAdmin&lt;br /&gt;
 user_query = select concat(&#039;/var/spool/dovecot/&#039;, maildir) as home, 143 as uid, 143 as gid from mailbox where username = &#039;%n@%d&#039; and active=&#039;1&#039;&lt;br /&gt;
&lt;br /&gt;
Пример настроек аутентификации в /usr/local/etc/dovecot/conf.d/10-auth.conf:&lt;br /&gt;
 !include auth-sql.conf.ext&lt;br /&gt;
&lt;br /&gt;
Пример настроек файлов журналов в /usr/local/etc/dovecot/conf.d/10-logging.conf:&lt;br /&gt;
 # Определение расположения файлов журналов&lt;br /&gt;
 log_path = /var/log/dovecot.log&lt;br /&gt;
 # Включение регистрации неудачных попыток аутентификации и причин их неудач&lt;br /&gt;
 auth_verbose = yes&lt;br /&gt;
&lt;br /&gt;
Настройки в файле /usr/local/etc/dovecot/conf.d/10-mail.conf:&lt;br /&gt;
 # Размещение почты в корневой папке /var/spool/dovecot в формате &amp;lt;домен&amp;gt;/&amp;lt;имя ящика&amp;gt;&lt;br /&gt;
 mail_location = maildir:/var/spool/dovecot/%d/%n&lt;br /&gt;
&lt;br /&gt;
== Установка mail/exim ==&lt;br /&gt;
&lt;br /&gt;
Exim - агент отправки почты для систем Unix.&lt;br /&gt;
&lt;br /&gt;
Подробная информация на сайте http://www.exim.org/&lt;br /&gt;
&lt;br /&gt;
Перед использованием этой статьи рекомендуется пройти по ссылке [[PKG|PKG]].&lt;br /&gt;
&lt;br /&gt;
Установка из пакета:&lt;br /&gt;
 # pkg install exim&lt;br /&gt;
 Updating FreeBSD repository catalogue...&lt;br /&gt;
 FreeBSD repository is up to date.&lt;br /&gt;
 All repositories are up to date.&lt;br /&gt;
 The following 46 package(s) will be affected (of 0 checked):&lt;br /&gt;
 &lt;br /&gt;
 New packages to be INSTALLED:&lt;br /&gt;
         brotli: 1.1.0,1&lt;br /&gt;
         curl: 8.12.1&lt;br /&gt;
         cyrus-sasl: 2.1.28_5&lt;br /&gt;
         exim: 4.98.2&lt;br /&gt;
         gettext-runtime: 0.23.1&lt;br /&gt;
         &#039;&#039;&#039;[пропущен список пакетов для установки]&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
 Number of packages to be installed: 46&lt;br /&gt;
 &lt;br /&gt;
 The process will require 308 MiB more space.&lt;br /&gt;
 50 MiB to be downloaded.&lt;br /&gt;
 &lt;br /&gt;
 Proceed with this action? [y/N]: y&lt;br /&gt;
 [1/46] Fetching indexinfo-0.3.1_1.pkg: 100%    6 KiB   6.0kB/s    00:01&lt;br /&gt;
 [2/46] Fetching cyrus-sasl-2.1.28_5.pkg: 100%    1 MiB   1.1MB/s    00:01&lt;br /&gt;
 [3/46] Fetching libcjson-1.7.18_2.pkg: 100%   39 KiB  39.5kB/s    00:01&lt;br /&gt;
 [4/46] Fetching libnghttp2-1.65.0.pkg: 100%  136 KiB 139.4kB/s    00:01&lt;br /&gt;
 [5/46] Fetching p5-HTTP-Date-6.06.pkg: 100%   11 KiB  11.0kB/s    00:01&lt;br /&gt;
 [пропущен список скачиваемых пакетов]&lt;br /&gt;
 Checking integrity... done (0 conflicting)&lt;br /&gt;
 [1/46] Installing brotli-1.1.0,1...&lt;br /&gt;
 [1/46] Extracting brotli-1.1.0,1: 100%&lt;br /&gt;
 [2/46] Installing cyrus-sasl-2.1.28_5...&lt;br /&gt;
 *** Added group `cyrus&#039; (id 60)&lt;br /&gt;
 *** Added user `cyrus&#039; (id 60)&lt;br /&gt;
 [2/46] Extracting cyrus-sasl-2.1.28_5: 100%&lt;br /&gt;
 [3/46] Installing icu-76.1,1...&lt;br /&gt;
 [3/46] Extracting icu-76.1,1: 100%&lt;br /&gt;
 [4/46] Installing indexinfo-0.3.1_1...&lt;br /&gt;
 [4/46] Extracting indexinfo-0.3.1_1: 100%&lt;br /&gt;
 [5/46] Installing gettext-runtime-0.23.1...&lt;br /&gt;
 [5/46] Extracting gettext-runtime-0.23.1: 100%&lt;br /&gt;
 &#039;&#039;&#039;[пропущен список устанавливаемых пакетов]&#039;&#039;&#039;&lt;br /&gt;
 =====&lt;br /&gt;
 Message from cyrus-sasl-2.1.28_5:&lt;br /&gt;
 &lt;br /&gt;
 --&lt;br /&gt;
 You can use sasldb2 for authentication, to add users use:&lt;br /&gt;
 &lt;br /&gt;
         saslpasswd2 -c username&lt;br /&gt;
 &lt;br /&gt;
 If you want to enable SMTP AUTH with the system Sendmail, read&lt;br /&gt;
 Sendmail.README&lt;br /&gt;
 &lt;br /&gt;
 NOTE: This port has been compiled with a default pwcheck_method of&lt;br /&gt;
       auxprop.  If you want to authenticate your user by /etc/passwd,&lt;br /&gt;
       PAM or LDAP, install ports/security/cyrus-sasl2-saslauthd and&lt;br /&gt;
       set sasl_pwcheck_method to saslauthd after installing the&lt;br /&gt;
       Cyrus-IMAPd 2.X port.  You should also check the&lt;br /&gt;
       /usr/local/lib/sasl2/*.conf files for the correct&lt;br /&gt;
       pwcheck_method.&lt;br /&gt;
       If you want to use GSSAPI mechanism, install&lt;br /&gt;
       ports/security/cyrus-sasl2-gssapi.&lt;br /&gt;
       If you want to use SRP mechanism, install&lt;br /&gt;
       ports/security/cyrus-sasl2-srp.&lt;br /&gt;
       If you want to use LDAP auxprop plugin, install&lt;br /&gt;
       ports/security/cyrus-sasl2-ldapdb.&lt;br /&gt;
 =====&lt;br /&gt;
 Message from openldap26-client-2.6.9_1:&lt;br /&gt;
 &lt;br /&gt;
 --&lt;br /&gt;
 The OpenLDAP client package has been successfully installed.&lt;br /&gt;
 &lt;br /&gt;
 Edit&lt;br /&gt;
   /usr/local/etc/openldap/ldap.conf&lt;br /&gt;
 to change the system-wide client defaults.&lt;br /&gt;
 &lt;br /&gt;
 Try `man ldap.conf&#039; and visit the OpenLDAP FAQ-O-Matic at&lt;br /&gt;
   http://www.OpenLDAP.org/faq/index.cgi?file=3&lt;br /&gt;
 for more information.&lt;br /&gt;
 =====&lt;br /&gt;
 Message from groff-1.23.0_4:&lt;br /&gt;
 &lt;br /&gt;
 --&lt;br /&gt;
 In order to be able to use the html driver, you need to install the following&lt;br /&gt;
 packages:&lt;br /&gt;
  - ghostscript&lt;br /&gt;
  - netpbm&lt;br /&gt;
 --&lt;br /&gt;
 ===&amp;gt;   NOTICE:&lt;br /&gt;
 &lt;br /&gt;
 The groff port currently does not have a maintainer. As a result, it is&lt;br /&gt;
 more likely to have unresolved issues, not be up-to-date, or even be removed in&lt;br /&gt;
 the future. To volunteer to maintain this port, please create an issue at:&lt;br /&gt;
 &lt;br /&gt;
 https://bugs.freebsd.org/bugzilla&lt;br /&gt;
 &lt;br /&gt;
 More information about port maintainership is available at:&lt;br /&gt;
 &lt;br /&gt;
 https://docs.freebsd.org/en/articles/contributing/#ports-contributing&lt;br /&gt;
 =====&lt;br /&gt;
 Message from mysql80-client-8.0.41:&lt;br /&gt;
 &lt;br /&gt;
 --&lt;br /&gt;
 This is the mysql CLIENT without the server.&lt;br /&gt;
 for complete server and client, please install databases/mysql80-server&lt;br /&gt;
 =====&lt;br /&gt;
 Message from exim-4.98.2:&lt;br /&gt;
 &lt;br /&gt;
 --&lt;br /&gt;
 The following documentation has been installed:&lt;br /&gt;
 &lt;br /&gt;
   man exim                              -&amp;gt; Exim options (command line)&lt;br /&gt;
   /usr/local/share/doc/exim/spec.txt    -&amp;gt; Exim Specification (User Guide)&lt;br /&gt;
   /usr/local/share/doc/exim/filter.txt  -&amp;gt; Exim Filter Specification (for end-users)&lt;br /&gt;
 &lt;br /&gt;
 Postscript, PDF, HTML and texinfo versions of these documents can be&lt;br /&gt;
 installed via one of the mail/exim-doc-* ports.&lt;br /&gt;
 &lt;br /&gt;
 An online version as well as a comprehensive FAQ and a mailing list&lt;br /&gt;
 archive is available at:&lt;br /&gt;
 &lt;br /&gt;
   http://www.exim.org/&lt;br /&gt;
 &lt;br /&gt;
 Descriptions of new features not available it the manual, and a listing&lt;br /&gt;
 of all changes, including bug fixes are documented in:&lt;br /&gt;
 &lt;br /&gt;
   /usr/local/share/doc/exim/NewStuff&lt;br /&gt;
   /usr/local/share/doc/exim/ChangeLog&lt;br /&gt;
 &lt;br /&gt;
 To use Exim instead of sendmail on startup:&lt;br /&gt;
 &lt;br /&gt;
 *) Clear the sendmail queue and stop the sendmail daemon.&lt;br /&gt;
 *) Adjust mailer.conf(5) as appropriate.&lt;br /&gt;
 *) Set the &#039;sendmail_enable&#039; rc.conf(5) variable to &#039;NONE&#039;.&lt;br /&gt;
 *) Set the &#039;daily_status_include_submit_mailq&#039; and&lt;br /&gt;
    &#039;daily_clean_hoststat_enable&#039; periodic.conf(5)&lt;br /&gt;
    variables to &#039;NO&#039;.&lt;br /&gt;
 *) Consider setting &#039;daily_queuerun_enable&#039; and&lt;br /&gt;
    &#039;daily_submit_queuerun&#039; to &amp;quot;NO&amp;quot; in periodic.conf(5),&lt;br /&gt;
    if you intend to manage queue runners / deliveries closely.&lt;br /&gt;
 *) Set the &#039;exim_enable&#039; rc.conf(5) variable to &#039;YES&#039;.&lt;br /&gt;
 *) Start exim with &#039;/usr/local/etc/rc.d/exim start&#039;.&lt;br /&gt;
 &lt;br /&gt;
 You may also want to configure newsyslog(8) to rotate Exim log files:&lt;br /&gt;
 &lt;br /&gt;
 /var/log/exim/mainlog   mailnull:mail 640 7 * @T00 ZN&lt;br /&gt;
 /var/log/exim/rejectlog mailnull:mail 640 7 * @T00 ZN&lt;br /&gt;
 &lt;br /&gt;
 Additional scripts to help upgrading are installed in:&lt;br /&gt;
 &lt;br /&gt;
   /usr/local/share/examples/exim&lt;br /&gt;
&lt;br /&gt;
Установка автозапуска Exim в /etc/rc.conf:&lt;br /&gt;
 # sysrc exim_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
 exim_enable:  -&amp;gt; YES&lt;br /&gt;
&lt;br /&gt;
== Расшифровка вывода установки mail/exim ==&lt;br /&gt;
&lt;br /&gt;
Настройка ротации файлов журнала Exim  добавлением строк в файл /etc/newslog.conf:&lt;br /&gt;
 /var/log/exim/mainlog   mailnull:mail 640 7 * @T00 ZN&lt;br /&gt;
 /var/log/exim/rejectlog mailnull:mail 640 7 * @T00 ZN&lt;br /&gt;
&lt;br /&gt;
== Настройка mail/exim ==&lt;br /&gt;
Настройки Exim устанавливаются в файле /usr/local/etc/exim/configure:&lt;br /&gt;
&lt;br /&gt;
Определение списка локальных доменов, обслуживаемых сервером (использование &amp;quot;@&amp;quot; разрешает локальные доставки):&lt;br /&gt;
 domainlist local_domains = @ : ${lookup mysql{select domain from domain where domain=&#039;${domain}&#039; and active=&#039;1&#039;}}&lt;br /&gt;
&lt;br /&gt;
Определение списка хостов, которые могут использовать сервер для пересылки исходящей почты (это обычно относится ко всей локальной сети, а также к самому серверу):&lt;br /&gt;
 hostlist   relay_from_hosts = localhost : 192.168.0.0/24&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://wiki.bsdhowto.ru/index.php?title=Clamav%2BDovecot%2BExim&amp;diff=238</id>
		<title>Clamav+Dovecot+Exim</title>
		<link rel="alternate" type="text/html" href="https://wiki.bsdhowto.ru/index.php?title=Clamav%2BDovecot%2BExim&amp;diff=238"/>
		<updated>2025-12-03T16:06:17Z</updated>

		<summary type="html">&lt;p&gt;Igor: /* Настройка Dovecot */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Подготовка клетки для Clamav+Dovecot+Exim ==&lt;br /&gt;
&lt;br /&gt;
Перед использованием этой статьи рекомендуется пройти по ссылке [[Qjail|Qjail]].&lt;br /&gt;
&lt;br /&gt;
Создание отдельной файловой системы для клетки с Clamav+Dovecot+Exim в ZFS::&lt;br /&gt;
 # zfs create zroot/usr/jails/mail&lt;br /&gt;
&lt;br /&gt;
Создание клетки c именем &amp;quot;mail&amp;quot; и IPv4-адресом &amp;quot;192.168.0.105&amp;quot;, запуск и управление клеткой:&lt;br /&gt;
 # qjail create -4 192.168.0.105 mail&lt;br /&gt;
 # qjail start mail&lt;br /&gt;
 # qjail console mail&lt;br /&gt;
&lt;br /&gt;
== Установка security/clamav ==&lt;br /&gt;
&lt;br /&gt;
Clam Antivirus - антивирусный сканер, который можно использовать для почтовых систем.&lt;br /&gt;
&lt;br /&gt;
Подробная информация на сайте https://www.clamav.net/&lt;br /&gt;
&lt;br /&gt;
Установка из пакета:&lt;br /&gt;
 # pkg install clamav&lt;br /&gt;
 Updating FreeBSD repository catalogue...&lt;br /&gt;
 FreeBSD repository is up to date.&lt;br /&gt;
 All repositories are up to date.&lt;br /&gt;
 The following 19 package(s) will be affected (of 0 checked):&lt;br /&gt;
 &lt;br /&gt;
 New packages to be INSTALLED:&lt;br /&gt;
         arc: 5.21q_1&lt;br /&gt;
         arj: 3.10.22_12&lt;br /&gt;
         brotli: 1.1.0,1&lt;br /&gt;
         clamav: 1.4.2_1,1&lt;br /&gt;
         curl: 8.12.1&lt;br /&gt;
         &#039;&#039;&#039;[пропущен список пакетов для установки]&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
 Number of packages to be installed: 19&lt;br /&gt;
 &lt;br /&gt;
 The process will require 95 MiB more space.&lt;br /&gt;
 21 MiB to be downloaded.&lt;br /&gt;
 &lt;br /&gt;
 Proceed with this action? [y/N]: y&lt;br /&gt;
 [1/19] Fetching indexinfo-0.3.1_1.pkg: 100%    6 KiB   6.0kB/s    00:01&lt;br /&gt;
 [2/19] Fetching libnghttp2-1.65.0.pkg: 100%  136 KiB 139.4kB/s    00:01&lt;br /&gt;
 [3/19] Fetching libxml2-2.11.9.pkg: 100%  872 KiB 893.4kB/s    00:01&lt;br /&gt;
 [4/19] Fetching libidn2-2.3.8.pkg: 100%  160 KiB 164.2kB/s    00:01&lt;br /&gt;
 [5/19] Fetching liblz4-1.10.0,1.pkg: 100%  163 KiB 167.3kB/s    00:01&lt;br /&gt;
 &#039;&#039;&#039;[пропущен список скачиваемых пакетов]&#039;&#039;&#039;&lt;br /&gt;
 Checking integrity... done (0 conflicting)&lt;br /&gt;
 [1/19] Installing arc-5.21q_1...&lt;br /&gt;
 [1/19] Extracting arc-5.21q_1: 100%&lt;br /&gt;
 [2/19] Installing arj-3.10.22_12...&lt;br /&gt;
 [2/19] Extracting arj-3.10.22_12: 100%&lt;br /&gt;
 [3/19] Installing brotli-1.1.0,1...&lt;br /&gt;
 [3/19] Extracting brotli-1.1.0,1: 100%&lt;br /&gt;
 [4/19] Installing indexinfo-0.3.1_1...&lt;br /&gt;
 [4/19] Extracting indexinfo-0.3.1_1: 100%&lt;br /&gt;
 [5/19] Installing json-c-0.18...&lt;br /&gt;
 [5/19] Extracting json-c-0.18: 100%&lt;br /&gt;
 &#039;&#039;&#039;[пропущен список устанавливаемых пакетов]&#039;&#039;&#039;&lt;br /&gt;
 [19/19] Installing clamav-1.4.2_1,1...&lt;br /&gt;
 ===&amp;gt; Creating groups&lt;br /&gt;
 Creating group &#039;clamav&#039; with gid &#039;106&#039;&lt;br /&gt;
 Using existing group &#039;mail&#039;&lt;br /&gt;
 ===&amp;gt; Creating users&lt;br /&gt;
 Creating user &#039;clamav&#039; with uid &#039;106&#039;&lt;br /&gt;
 Adding user &#039;clamav&#039; to group &#039;mail&#039;&lt;br /&gt;
 [19/19] Extracting clamav-1.4.2_1,1: 100%&lt;br /&gt;
&lt;br /&gt;
Проверка установки Clamav:&lt;br /&gt;
 # pkg version -v | grep clamav&lt;br /&gt;
 clamav-1.4.2_1,1                   =   up-to-date with remote&lt;br /&gt;
&lt;br /&gt;
Установка автозапуска Clam Antivirus в /etc/rc.conf:&lt;br /&gt;
 # sysrc clamav_freshclam_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
 clamav_freshclam_enable:  -&amp;gt; YES&lt;br /&gt;
 # sysrc clamav_clamd_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
 clamav_clamd_enable:  -&amp;gt; YES&lt;br /&gt;
&lt;br /&gt;
Настройка обхода санкций перед запуском freshclam (обновление антивирусных баз данных clamav) в файле /usr/local/etc/freshclam.conf:&lt;br /&gt;
 #DatabaseMirror database.clamav.net&lt;br /&gt;
 DatabaseMirror packages.microsoft.com/clamav&lt;br /&gt;
&lt;br /&gt;
Запуск clamav_freshclam:&lt;br /&gt;
 # service clamav_freshclam start&lt;br /&gt;
 Starting clamav_freshclam.&lt;br /&gt;
&lt;br /&gt;
Запуск clamav:&lt;br /&gt;
 # service clamav_clamd start&lt;br /&gt;
 Starting clamav_clamd.&lt;br /&gt;
&lt;br /&gt;
Проверка Clamav:&lt;br /&gt;
 # sockstat -l | grep clamav&lt;br /&gt;
 clamav   clamd       1333 4   stream /var/run/clamav/clamd.sock&lt;br /&gt;
&lt;br /&gt;
== Установка Dovecot ==&lt;br /&gt;
&lt;br /&gt;
Установка из пакета:&lt;br /&gt;
 # pkg install dovecot&lt;br /&gt;
&lt;br /&gt;
Установка автозапуска Dovecot в /etc/rc.conf:&lt;br /&gt;
 # sysrc dovecot_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
 dovecot_enable:  -&amp;gt; YES&lt;br /&gt;
&lt;br /&gt;
== Настройка Dovecot ==&lt;br /&gt;
&lt;br /&gt;
Копирование файлов настроек:&lt;br /&gt;
 # cp -Rpv /usr/local/etc/dovecot/example-config/* /usr/local/etc/dovecot&lt;br /&gt;
&lt;br /&gt;
Пример настроек в /usr/local/etc/dovecot/dovecot.conf:&lt;br /&gt;
 # Использование протокола IMAP:&lt;br /&gt;
 protocols = imap&lt;br /&gt;
 # Использование всех IPv4 данного хоста (можно указать необходимые IP-адреса):&lt;br /&gt;
 listen = *&lt;br /&gt;
&lt;br /&gt;
Пример настроек в /usr/local/etc/dovecot/dovecot-sql.conf.ext:&lt;br /&gt;
 # Использование СУБД MySQL&lt;br /&gt;
 driver = mysql&lt;br /&gt;
 connect = host=&amp;lt;IP-адрес&amp;gt; dbname=&amp;lt;имя базы данных&amp;gt; user=&amp;lt;имя пользователя&amp;gt; password=&amp;lt;пароль&amp;gt;&lt;br /&gt;
 # Пример при хранении паролей почтовых пользователей в базе данных в открытом виде:&lt;br /&gt;
 default_pass_scheme = PLAIN&lt;br /&gt;
 # Пример запроса пароля при использовании связки с PostfixAdmin&lt;br /&gt;
 password_query = select username as user, password from mailbox where username = &#039;%n@%d&#039; and active = &#039;1&#039;&lt;br /&gt;
 # Пример запроса имени почтового ящика при использовании связки с PostfixAdmin&lt;br /&gt;
 user_query = select concat(&#039;/var/spool/dovecot/&#039;, maildir) as home, 143 as uid, 143 as gid from mailbox where username = &#039;%n@%d&#039; and active=&#039;1&#039;&lt;br /&gt;
&lt;br /&gt;
Пример настроек аутентификации в /usr/local/etc/dovecot/conf.d/10-auth.conf:&lt;br /&gt;
 !include auth-sql.conf.ext&lt;br /&gt;
&lt;br /&gt;
Пример настроек файлов журналов в /usr/local/etc/dovecot/conf.d/10-logging.conf:&lt;br /&gt;
 # Определение расположения файлов журналов&lt;br /&gt;
 log_path = /var/log/dovecot.log&lt;br /&gt;
 # Включение регистрации неудачных попыток аутентификации и причин их неудач&lt;br /&gt;
 auth_verbose = yes&lt;br /&gt;
&lt;br /&gt;
Настройки в файле /usr/local/etc/dovecot/conf.d/10-mail.conf:&lt;br /&gt;
 # Размещение почты в корневой папке /var/spool/dovecot в формате &amp;lt;домен&amp;gt;/&amp;lt;имя ящика&amp;gt;&lt;br /&gt;
 mail_location = maildir:/var/spool/dovecot/%d/%n&lt;br /&gt;
&lt;br /&gt;
== Установка mail/exim ==&lt;br /&gt;
&lt;br /&gt;
Exim - агент отправки почты для систем Unix.&lt;br /&gt;
&lt;br /&gt;
Подробная информация на сайте http://www.exim.org/&lt;br /&gt;
&lt;br /&gt;
Перед использованием этой статьи рекомендуется пройти по ссылке [[PKG|PKG]].&lt;br /&gt;
&lt;br /&gt;
Установка из пакета:&lt;br /&gt;
 # pkg install exim&lt;br /&gt;
 Updating FreeBSD repository catalogue...&lt;br /&gt;
 FreeBSD repository is up to date.&lt;br /&gt;
 All repositories are up to date.&lt;br /&gt;
 The following 46 package(s) will be affected (of 0 checked):&lt;br /&gt;
 &lt;br /&gt;
 New packages to be INSTALLED:&lt;br /&gt;
         brotli: 1.1.0,1&lt;br /&gt;
         curl: 8.12.1&lt;br /&gt;
         cyrus-sasl: 2.1.28_5&lt;br /&gt;
         exim: 4.98.2&lt;br /&gt;
         gettext-runtime: 0.23.1&lt;br /&gt;
         &#039;&#039;&#039;[пропущен список пакетов для установки]&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
 Number of packages to be installed: 46&lt;br /&gt;
 &lt;br /&gt;
 The process will require 308 MiB more space.&lt;br /&gt;
 50 MiB to be downloaded.&lt;br /&gt;
 &lt;br /&gt;
 Proceed with this action? [y/N]: y&lt;br /&gt;
 [1/46] Fetching indexinfo-0.3.1_1.pkg: 100%    6 KiB   6.0kB/s    00:01&lt;br /&gt;
 [2/46] Fetching cyrus-sasl-2.1.28_5.pkg: 100%    1 MiB   1.1MB/s    00:01&lt;br /&gt;
 [3/46] Fetching libcjson-1.7.18_2.pkg: 100%   39 KiB  39.5kB/s    00:01&lt;br /&gt;
 [4/46] Fetching libnghttp2-1.65.0.pkg: 100%  136 KiB 139.4kB/s    00:01&lt;br /&gt;
 [5/46] Fetching p5-HTTP-Date-6.06.pkg: 100%   11 KiB  11.0kB/s    00:01&lt;br /&gt;
 [пропущен список скачиваемых пакетов]&lt;br /&gt;
 Checking integrity... done (0 conflicting)&lt;br /&gt;
 [1/46] Installing brotli-1.1.0,1...&lt;br /&gt;
 [1/46] Extracting brotli-1.1.0,1: 100%&lt;br /&gt;
 [2/46] Installing cyrus-sasl-2.1.28_5...&lt;br /&gt;
 *** Added group `cyrus&#039; (id 60)&lt;br /&gt;
 *** Added user `cyrus&#039; (id 60)&lt;br /&gt;
 [2/46] Extracting cyrus-sasl-2.1.28_5: 100%&lt;br /&gt;
 [3/46] Installing icu-76.1,1...&lt;br /&gt;
 [3/46] Extracting icu-76.1,1: 100%&lt;br /&gt;
 [4/46] Installing indexinfo-0.3.1_1...&lt;br /&gt;
 [4/46] Extracting indexinfo-0.3.1_1: 100%&lt;br /&gt;
 [5/46] Installing gettext-runtime-0.23.1...&lt;br /&gt;
 [5/46] Extracting gettext-runtime-0.23.1: 100%&lt;br /&gt;
 &#039;&#039;&#039;[пропущен список устанавливаемых пакетов]&#039;&#039;&#039;&lt;br /&gt;
 =====&lt;br /&gt;
 Message from cyrus-sasl-2.1.28_5:&lt;br /&gt;
 &lt;br /&gt;
 --&lt;br /&gt;
 You can use sasldb2 for authentication, to add users use:&lt;br /&gt;
 &lt;br /&gt;
         saslpasswd2 -c username&lt;br /&gt;
 &lt;br /&gt;
 If you want to enable SMTP AUTH with the system Sendmail, read&lt;br /&gt;
 Sendmail.README&lt;br /&gt;
 &lt;br /&gt;
 NOTE: This port has been compiled with a default pwcheck_method of&lt;br /&gt;
       auxprop.  If you want to authenticate your user by /etc/passwd,&lt;br /&gt;
       PAM or LDAP, install ports/security/cyrus-sasl2-saslauthd and&lt;br /&gt;
       set sasl_pwcheck_method to saslauthd after installing the&lt;br /&gt;
       Cyrus-IMAPd 2.X port.  You should also check the&lt;br /&gt;
       /usr/local/lib/sasl2/*.conf files for the correct&lt;br /&gt;
       pwcheck_method.&lt;br /&gt;
       If you want to use GSSAPI mechanism, install&lt;br /&gt;
       ports/security/cyrus-sasl2-gssapi.&lt;br /&gt;
       If you want to use SRP mechanism, install&lt;br /&gt;
       ports/security/cyrus-sasl2-srp.&lt;br /&gt;
       If you want to use LDAP auxprop plugin, install&lt;br /&gt;
       ports/security/cyrus-sasl2-ldapdb.&lt;br /&gt;
 =====&lt;br /&gt;
 Message from openldap26-client-2.6.9_1:&lt;br /&gt;
 &lt;br /&gt;
 --&lt;br /&gt;
 The OpenLDAP client package has been successfully installed.&lt;br /&gt;
 &lt;br /&gt;
 Edit&lt;br /&gt;
   /usr/local/etc/openldap/ldap.conf&lt;br /&gt;
 to change the system-wide client defaults.&lt;br /&gt;
 &lt;br /&gt;
 Try `man ldap.conf&#039; and visit the OpenLDAP FAQ-O-Matic at&lt;br /&gt;
   http://www.OpenLDAP.org/faq/index.cgi?file=3&lt;br /&gt;
 for more information.&lt;br /&gt;
 =====&lt;br /&gt;
 Message from groff-1.23.0_4:&lt;br /&gt;
 &lt;br /&gt;
 --&lt;br /&gt;
 In order to be able to use the html driver, you need to install the following&lt;br /&gt;
 packages:&lt;br /&gt;
  - ghostscript&lt;br /&gt;
  - netpbm&lt;br /&gt;
 --&lt;br /&gt;
 ===&amp;gt;   NOTICE:&lt;br /&gt;
 &lt;br /&gt;
 The groff port currently does not have a maintainer. As a result, it is&lt;br /&gt;
 more likely to have unresolved issues, not be up-to-date, or even be removed in&lt;br /&gt;
 the future. To volunteer to maintain this port, please create an issue at:&lt;br /&gt;
 &lt;br /&gt;
 https://bugs.freebsd.org/bugzilla&lt;br /&gt;
 &lt;br /&gt;
 More information about port maintainership is available at:&lt;br /&gt;
 &lt;br /&gt;
 https://docs.freebsd.org/en/articles/contributing/#ports-contributing&lt;br /&gt;
 =====&lt;br /&gt;
 Message from mysql80-client-8.0.41:&lt;br /&gt;
 &lt;br /&gt;
 --&lt;br /&gt;
 This is the mysql CLIENT without the server.&lt;br /&gt;
 for complete server and client, please install databases/mysql80-server&lt;br /&gt;
 =====&lt;br /&gt;
 Message from exim-4.98.2:&lt;br /&gt;
 &lt;br /&gt;
 --&lt;br /&gt;
 The following documentation has been installed:&lt;br /&gt;
 &lt;br /&gt;
   man exim                              -&amp;gt; Exim options (command line)&lt;br /&gt;
   /usr/local/share/doc/exim/spec.txt    -&amp;gt; Exim Specification (User Guide)&lt;br /&gt;
   /usr/local/share/doc/exim/filter.txt  -&amp;gt; Exim Filter Specification (for end-users)&lt;br /&gt;
 &lt;br /&gt;
 Postscript, PDF, HTML and texinfo versions of these documents can be&lt;br /&gt;
 installed via one of the mail/exim-doc-* ports.&lt;br /&gt;
 &lt;br /&gt;
 An online version as well as a comprehensive FAQ and a mailing list&lt;br /&gt;
 archive is available at:&lt;br /&gt;
 &lt;br /&gt;
   http://www.exim.org/&lt;br /&gt;
 &lt;br /&gt;
 Descriptions of new features not available it the manual, and a listing&lt;br /&gt;
 of all changes, including bug fixes are documented in:&lt;br /&gt;
 &lt;br /&gt;
   /usr/local/share/doc/exim/NewStuff&lt;br /&gt;
   /usr/local/share/doc/exim/ChangeLog&lt;br /&gt;
 &lt;br /&gt;
 To use Exim instead of sendmail on startup:&lt;br /&gt;
 &lt;br /&gt;
 *) Clear the sendmail queue and stop the sendmail daemon.&lt;br /&gt;
 *) Adjust mailer.conf(5) as appropriate.&lt;br /&gt;
 *) Set the &#039;sendmail_enable&#039; rc.conf(5) variable to &#039;NONE&#039;.&lt;br /&gt;
 *) Set the &#039;daily_status_include_submit_mailq&#039; and&lt;br /&gt;
    &#039;daily_clean_hoststat_enable&#039; periodic.conf(5)&lt;br /&gt;
    variables to &#039;NO&#039;.&lt;br /&gt;
 *) Consider setting &#039;daily_queuerun_enable&#039; and&lt;br /&gt;
    &#039;daily_submit_queuerun&#039; to &amp;quot;NO&amp;quot; in periodic.conf(5),&lt;br /&gt;
    if you intend to manage queue runners / deliveries closely.&lt;br /&gt;
 *) Set the &#039;exim_enable&#039; rc.conf(5) variable to &#039;YES&#039;.&lt;br /&gt;
 *) Start exim with &#039;/usr/local/etc/rc.d/exim start&#039;.&lt;br /&gt;
 &lt;br /&gt;
 You may also want to configure newsyslog(8) to rotate Exim log files:&lt;br /&gt;
 &lt;br /&gt;
 /var/log/exim/mainlog   mailnull:mail 640 7 * @T00 ZN&lt;br /&gt;
 /var/log/exim/rejectlog mailnull:mail 640 7 * @T00 ZN&lt;br /&gt;
 &lt;br /&gt;
 Additional scripts to help upgrading are installed in:&lt;br /&gt;
 &lt;br /&gt;
   /usr/local/share/examples/exim&lt;br /&gt;
&lt;br /&gt;
Установка автозапуска Exim в /etc/rc.conf:&lt;br /&gt;
 # sysrc exim_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
 exim_enable:  -&amp;gt; YES&lt;br /&gt;
&lt;br /&gt;
== Расшифровка вывода установки mail/exim ==&lt;br /&gt;
&lt;br /&gt;
Настройка ротации файлов журнала Exim  добавлением строк в файл /etc/newslog.conf:&lt;br /&gt;
 /var/log/exim/mainlog   mailnull:mail 640 7 * @T00 ZN&lt;br /&gt;
 /var/log/exim/rejectlog mailnull:mail 640 7 * @T00 ZN&lt;br /&gt;
&lt;br /&gt;
== Настройка mail/exim ==&lt;br /&gt;
Настройки Exim устанавливаются в файле /usr/local/etc/exim/configure:&lt;br /&gt;
&lt;br /&gt;
Определение списка локальных доменов, обслуживаемых сервером (использование &amp;quot;@&amp;quot; разрешает локальные доставки):&lt;br /&gt;
 domainlist local_domains = @ : ${lookup mysql{select domain from domain where domain=&#039;${domain}&#039; and active=&#039;1&#039;}}&lt;br /&gt;
&lt;br /&gt;
Определение списка хостов, которые могут использовать сервер для пересылки исходящей почты (это обычно относится ко всей локальной сети, а также к самому серверу):&lt;br /&gt;
 hostlist   relay_from_hosts = localhost : 192.168.0.0/24&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://wiki.bsdhowto.ru/index.php?title=Clamav%2BDovecot%2BExim&amp;diff=237</id>
		<title>Clamav+Dovecot+Exim</title>
		<link rel="alternate" type="text/html" href="https://wiki.bsdhowto.ru/index.php?title=Clamav%2BDovecot%2BExim&amp;diff=237"/>
		<updated>2025-12-03T15:43:15Z</updated>

		<summary type="html">&lt;p&gt;Igor: /* Настройка Dovecot */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Подготовка клетки для Clamav+Dovecot+Exim ==&lt;br /&gt;
&lt;br /&gt;
Перед использованием этой статьи рекомендуется пройти по ссылке [[Qjail|Qjail]].&lt;br /&gt;
&lt;br /&gt;
Создание отдельной файловой системы для клетки с Clamav+Dovecot+Exim в ZFS::&lt;br /&gt;
 # zfs create zroot/usr/jails/mail&lt;br /&gt;
&lt;br /&gt;
Создание клетки c именем &amp;quot;mail&amp;quot; и IPv4-адресом &amp;quot;192.168.0.105&amp;quot;, запуск и управление клеткой:&lt;br /&gt;
 # qjail create -4 192.168.0.105 mail&lt;br /&gt;
 # qjail start mail&lt;br /&gt;
 # qjail console mail&lt;br /&gt;
&lt;br /&gt;
== Установка security/clamav ==&lt;br /&gt;
&lt;br /&gt;
Clam Antivirus - антивирусный сканер, который можно использовать для почтовых систем.&lt;br /&gt;
&lt;br /&gt;
Подробная информация на сайте https://www.clamav.net/&lt;br /&gt;
&lt;br /&gt;
Установка из пакета:&lt;br /&gt;
 # pkg install clamav&lt;br /&gt;
 Updating FreeBSD repository catalogue...&lt;br /&gt;
 FreeBSD repository is up to date.&lt;br /&gt;
 All repositories are up to date.&lt;br /&gt;
 The following 19 package(s) will be affected (of 0 checked):&lt;br /&gt;
 &lt;br /&gt;
 New packages to be INSTALLED:&lt;br /&gt;
         arc: 5.21q_1&lt;br /&gt;
         arj: 3.10.22_12&lt;br /&gt;
         brotli: 1.1.0,1&lt;br /&gt;
         clamav: 1.4.2_1,1&lt;br /&gt;
         curl: 8.12.1&lt;br /&gt;
         &#039;&#039;&#039;[пропущен список пакетов для установки]&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
 Number of packages to be installed: 19&lt;br /&gt;
 &lt;br /&gt;
 The process will require 95 MiB more space.&lt;br /&gt;
 21 MiB to be downloaded.&lt;br /&gt;
 &lt;br /&gt;
 Proceed with this action? [y/N]: y&lt;br /&gt;
 [1/19] Fetching indexinfo-0.3.1_1.pkg: 100%    6 KiB   6.0kB/s    00:01&lt;br /&gt;
 [2/19] Fetching libnghttp2-1.65.0.pkg: 100%  136 KiB 139.4kB/s    00:01&lt;br /&gt;
 [3/19] Fetching libxml2-2.11.9.pkg: 100%  872 KiB 893.4kB/s    00:01&lt;br /&gt;
 [4/19] Fetching libidn2-2.3.8.pkg: 100%  160 KiB 164.2kB/s    00:01&lt;br /&gt;
 [5/19] Fetching liblz4-1.10.0,1.pkg: 100%  163 KiB 167.3kB/s    00:01&lt;br /&gt;
 &#039;&#039;&#039;[пропущен список скачиваемых пакетов]&#039;&#039;&#039;&lt;br /&gt;
 Checking integrity... done (0 conflicting)&lt;br /&gt;
 [1/19] Installing arc-5.21q_1...&lt;br /&gt;
 [1/19] Extracting arc-5.21q_1: 100%&lt;br /&gt;
 [2/19] Installing arj-3.10.22_12...&lt;br /&gt;
 [2/19] Extracting arj-3.10.22_12: 100%&lt;br /&gt;
 [3/19] Installing brotli-1.1.0,1...&lt;br /&gt;
 [3/19] Extracting brotli-1.1.0,1: 100%&lt;br /&gt;
 [4/19] Installing indexinfo-0.3.1_1...&lt;br /&gt;
 [4/19] Extracting indexinfo-0.3.1_1: 100%&lt;br /&gt;
 [5/19] Installing json-c-0.18...&lt;br /&gt;
 [5/19] Extracting json-c-0.18: 100%&lt;br /&gt;
 &#039;&#039;&#039;[пропущен список устанавливаемых пакетов]&#039;&#039;&#039;&lt;br /&gt;
 [19/19] Installing clamav-1.4.2_1,1...&lt;br /&gt;
 ===&amp;gt; Creating groups&lt;br /&gt;
 Creating group &#039;clamav&#039; with gid &#039;106&#039;&lt;br /&gt;
 Using existing group &#039;mail&#039;&lt;br /&gt;
 ===&amp;gt; Creating users&lt;br /&gt;
 Creating user &#039;clamav&#039; with uid &#039;106&#039;&lt;br /&gt;
 Adding user &#039;clamav&#039; to group &#039;mail&#039;&lt;br /&gt;
 [19/19] Extracting clamav-1.4.2_1,1: 100%&lt;br /&gt;
&lt;br /&gt;
Проверка установки Clamav:&lt;br /&gt;
 # pkg version -v | grep clamav&lt;br /&gt;
 clamav-1.4.2_1,1                   =   up-to-date with remote&lt;br /&gt;
&lt;br /&gt;
Установка автозапуска Clam Antivirus в /etc/rc.conf:&lt;br /&gt;
 # sysrc clamav_freshclam_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
 clamav_freshclam_enable:  -&amp;gt; YES&lt;br /&gt;
 # sysrc clamav_clamd_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
 clamav_clamd_enable:  -&amp;gt; YES&lt;br /&gt;
&lt;br /&gt;
Настройка обхода санкций перед запуском freshclam (обновление антивирусных баз данных clamav) в файле /usr/local/etc/freshclam.conf:&lt;br /&gt;
 #DatabaseMirror database.clamav.net&lt;br /&gt;
 DatabaseMirror packages.microsoft.com/clamav&lt;br /&gt;
&lt;br /&gt;
Запуск clamav_freshclam:&lt;br /&gt;
 # service clamav_freshclam start&lt;br /&gt;
 Starting clamav_freshclam.&lt;br /&gt;
&lt;br /&gt;
Запуск clamav:&lt;br /&gt;
 # service clamav_clamd start&lt;br /&gt;
 Starting clamav_clamd.&lt;br /&gt;
&lt;br /&gt;
Проверка Clamav:&lt;br /&gt;
 # sockstat -l | grep clamav&lt;br /&gt;
 clamav   clamd       1333 4   stream /var/run/clamav/clamd.sock&lt;br /&gt;
&lt;br /&gt;
== Установка Dovecot ==&lt;br /&gt;
&lt;br /&gt;
Установка из пакета:&lt;br /&gt;
 # pkg install dovecot&lt;br /&gt;
&lt;br /&gt;
Установка автозапуска Dovecot в /etc/rc.conf:&lt;br /&gt;
 # sysrc dovecot_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
 dovecot_enable:  -&amp;gt; YES&lt;br /&gt;
&lt;br /&gt;
== Настройка Dovecot ==&lt;br /&gt;
&lt;br /&gt;
Копирование файлов настроек:&lt;br /&gt;
 # cp -Rpv /usr/local/etc/dovecot/example-config/* /usr/local/etc/dovecot&lt;br /&gt;
&lt;br /&gt;
Пример настроек в /usr/local/etc/dovecot/dovecot.conf:&lt;br /&gt;
 # Использование протокола IMAP:&lt;br /&gt;
 protocols = imap&lt;br /&gt;
 # Использование всех IPv4 данного хоста (можно использовать конкретные IP-адреса):&lt;br /&gt;
 listen = *&lt;br /&gt;
&lt;br /&gt;
Пример настроек в /usr/local/etc/dovecot/dovecot-sql.conf.ext:&lt;br /&gt;
 # Использование СУБД MySQL&lt;br /&gt;
 driver = mysql&lt;br /&gt;
 connect = host=&amp;lt;IP-адрес&amp;gt; dbname=&amp;lt;имя базы данных&amp;gt; user=&amp;lt;имя пользователя&amp;gt; password=&amp;lt;пароль&amp;gt;&lt;br /&gt;
 # Пример при хранении паролей почтовых пользователей в базе данных в открытом виде:&lt;br /&gt;
 default_pass_scheme = PLAIN&lt;br /&gt;
 # Пример запроса пароля при использовании связки с PostfixAdmin&lt;br /&gt;
 password_query = select username as user, password from mailbox where username = &#039;%n@%d&#039; and active = &#039;1&#039;&lt;br /&gt;
 # Пример запроса имени почтового ящика при использовании связки с PostfixAdmin&lt;br /&gt;
 user_query = select concat(&#039;/var/spool/dovecot/&#039;, maildir) as home, 143 as uid, 143 as gid from mailbox where username = &#039;%n@%d&#039; and active=&#039;1&#039;&lt;br /&gt;
&lt;br /&gt;
Пример настроек аутентификации в /usr/local/etc/dovecot/conf.d/10-auth.conf:&lt;br /&gt;
 !include auth-sql.conf.ext&lt;br /&gt;
&lt;br /&gt;
Пример настроек файлов журналов в /usr/local/etc/dovecot/conf.d/10-logging.conf:&lt;br /&gt;
 # Определение расположения файлов журналов&lt;br /&gt;
 log_path = /var/log/dovecot.log&lt;br /&gt;
 # Включение регистрации неудачных попыток аутентификации и причин их неудач&lt;br /&gt;
 auth_verbose = yes&lt;br /&gt;
&lt;br /&gt;
Настройки в файле /usr/local/etc/dovecot/conf.d/10-mail.conf:&lt;br /&gt;
 # Размещение почты в корневой папке /var/spool/dovecot в формате &amp;lt;домен&amp;gt;/&amp;lt;имя ящика&amp;gt;&lt;br /&gt;
 mail_location = maildir:/var/spool/dovecot/%d/%n&lt;br /&gt;
&lt;br /&gt;
== Установка mail/exim ==&lt;br /&gt;
&lt;br /&gt;
Exim - агент отправки почты для систем Unix.&lt;br /&gt;
&lt;br /&gt;
Подробная информация на сайте http://www.exim.org/&lt;br /&gt;
&lt;br /&gt;
Перед использованием этой статьи рекомендуется пройти по ссылке [[PKG|PKG]].&lt;br /&gt;
&lt;br /&gt;
Установка из пакета:&lt;br /&gt;
 # pkg install exim&lt;br /&gt;
 Updating FreeBSD repository catalogue...&lt;br /&gt;
 FreeBSD repository is up to date.&lt;br /&gt;
 All repositories are up to date.&lt;br /&gt;
 The following 46 package(s) will be affected (of 0 checked):&lt;br /&gt;
 &lt;br /&gt;
 New packages to be INSTALLED:&lt;br /&gt;
         brotli: 1.1.0,1&lt;br /&gt;
         curl: 8.12.1&lt;br /&gt;
         cyrus-sasl: 2.1.28_5&lt;br /&gt;
         exim: 4.98.2&lt;br /&gt;
         gettext-runtime: 0.23.1&lt;br /&gt;
         &#039;&#039;&#039;[пропущен список пакетов для установки]&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
 Number of packages to be installed: 46&lt;br /&gt;
 &lt;br /&gt;
 The process will require 308 MiB more space.&lt;br /&gt;
 50 MiB to be downloaded.&lt;br /&gt;
 &lt;br /&gt;
 Proceed with this action? [y/N]: y&lt;br /&gt;
 [1/46] Fetching indexinfo-0.3.1_1.pkg: 100%    6 KiB   6.0kB/s    00:01&lt;br /&gt;
 [2/46] Fetching cyrus-sasl-2.1.28_5.pkg: 100%    1 MiB   1.1MB/s    00:01&lt;br /&gt;
 [3/46] Fetching libcjson-1.7.18_2.pkg: 100%   39 KiB  39.5kB/s    00:01&lt;br /&gt;
 [4/46] Fetching libnghttp2-1.65.0.pkg: 100%  136 KiB 139.4kB/s    00:01&lt;br /&gt;
 [5/46] Fetching p5-HTTP-Date-6.06.pkg: 100%   11 KiB  11.0kB/s    00:01&lt;br /&gt;
 [пропущен список скачиваемых пакетов]&lt;br /&gt;
 Checking integrity... done (0 conflicting)&lt;br /&gt;
 [1/46] Installing brotli-1.1.0,1...&lt;br /&gt;
 [1/46] Extracting brotli-1.1.0,1: 100%&lt;br /&gt;
 [2/46] Installing cyrus-sasl-2.1.28_5...&lt;br /&gt;
 *** Added group `cyrus&#039; (id 60)&lt;br /&gt;
 *** Added user `cyrus&#039; (id 60)&lt;br /&gt;
 [2/46] Extracting cyrus-sasl-2.1.28_5: 100%&lt;br /&gt;
 [3/46] Installing icu-76.1,1...&lt;br /&gt;
 [3/46] Extracting icu-76.1,1: 100%&lt;br /&gt;
 [4/46] Installing indexinfo-0.3.1_1...&lt;br /&gt;
 [4/46] Extracting indexinfo-0.3.1_1: 100%&lt;br /&gt;
 [5/46] Installing gettext-runtime-0.23.1...&lt;br /&gt;
 [5/46] Extracting gettext-runtime-0.23.1: 100%&lt;br /&gt;
 &#039;&#039;&#039;[пропущен список устанавливаемых пакетов]&#039;&#039;&#039;&lt;br /&gt;
 =====&lt;br /&gt;
 Message from cyrus-sasl-2.1.28_5:&lt;br /&gt;
 &lt;br /&gt;
 --&lt;br /&gt;
 You can use sasldb2 for authentication, to add users use:&lt;br /&gt;
 &lt;br /&gt;
         saslpasswd2 -c username&lt;br /&gt;
 &lt;br /&gt;
 If you want to enable SMTP AUTH with the system Sendmail, read&lt;br /&gt;
 Sendmail.README&lt;br /&gt;
 &lt;br /&gt;
 NOTE: This port has been compiled with a default pwcheck_method of&lt;br /&gt;
       auxprop.  If you want to authenticate your user by /etc/passwd,&lt;br /&gt;
       PAM or LDAP, install ports/security/cyrus-sasl2-saslauthd and&lt;br /&gt;
       set sasl_pwcheck_method to saslauthd after installing the&lt;br /&gt;
       Cyrus-IMAPd 2.X port.  You should also check the&lt;br /&gt;
       /usr/local/lib/sasl2/*.conf files for the correct&lt;br /&gt;
       pwcheck_method.&lt;br /&gt;
       If you want to use GSSAPI mechanism, install&lt;br /&gt;
       ports/security/cyrus-sasl2-gssapi.&lt;br /&gt;
       If you want to use SRP mechanism, install&lt;br /&gt;
       ports/security/cyrus-sasl2-srp.&lt;br /&gt;
       If you want to use LDAP auxprop plugin, install&lt;br /&gt;
       ports/security/cyrus-sasl2-ldapdb.&lt;br /&gt;
 =====&lt;br /&gt;
 Message from openldap26-client-2.6.9_1:&lt;br /&gt;
 &lt;br /&gt;
 --&lt;br /&gt;
 The OpenLDAP client package has been successfully installed.&lt;br /&gt;
 &lt;br /&gt;
 Edit&lt;br /&gt;
   /usr/local/etc/openldap/ldap.conf&lt;br /&gt;
 to change the system-wide client defaults.&lt;br /&gt;
 &lt;br /&gt;
 Try `man ldap.conf&#039; and visit the OpenLDAP FAQ-O-Matic at&lt;br /&gt;
   http://www.OpenLDAP.org/faq/index.cgi?file=3&lt;br /&gt;
 for more information.&lt;br /&gt;
 =====&lt;br /&gt;
 Message from groff-1.23.0_4:&lt;br /&gt;
 &lt;br /&gt;
 --&lt;br /&gt;
 In order to be able to use the html driver, you need to install the following&lt;br /&gt;
 packages:&lt;br /&gt;
  - ghostscript&lt;br /&gt;
  - netpbm&lt;br /&gt;
 --&lt;br /&gt;
 ===&amp;gt;   NOTICE:&lt;br /&gt;
 &lt;br /&gt;
 The groff port currently does not have a maintainer. As a result, it is&lt;br /&gt;
 more likely to have unresolved issues, not be up-to-date, or even be removed in&lt;br /&gt;
 the future. To volunteer to maintain this port, please create an issue at:&lt;br /&gt;
 &lt;br /&gt;
 https://bugs.freebsd.org/bugzilla&lt;br /&gt;
 &lt;br /&gt;
 More information about port maintainership is available at:&lt;br /&gt;
 &lt;br /&gt;
 https://docs.freebsd.org/en/articles/contributing/#ports-contributing&lt;br /&gt;
 =====&lt;br /&gt;
 Message from mysql80-client-8.0.41:&lt;br /&gt;
 &lt;br /&gt;
 --&lt;br /&gt;
 This is the mysql CLIENT without the server.&lt;br /&gt;
 for complete server and client, please install databases/mysql80-server&lt;br /&gt;
 =====&lt;br /&gt;
 Message from exim-4.98.2:&lt;br /&gt;
 &lt;br /&gt;
 --&lt;br /&gt;
 The following documentation has been installed:&lt;br /&gt;
 &lt;br /&gt;
   man exim                              -&amp;gt; Exim options (command line)&lt;br /&gt;
   /usr/local/share/doc/exim/spec.txt    -&amp;gt; Exim Specification (User Guide)&lt;br /&gt;
   /usr/local/share/doc/exim/filter.txt  -&amp;gt; Exim Filter Specification (for end-users)&lt;br /&gt;
 &lt;br /&gt;
 Postscript, PDF, HTML and texinfo versions of these documents can be&lt;br /&gt;
 installed via one of the mail/exim-doc-* ports.&lt;br /&gt;
 &lt;br /&gt;
 An online version as well as a comprehensive FAQ and a mailing list&lt;br /&gt;
 archive is available at:&lt;br /&gt;
 &lt;br /&gt;
   http://www.exim.org/&lt;br /&gt;
 &lt;br /&gt;
 Descriptions of new features not available it the manual, and a listing&lt;br /&gt;
 of all changes, including bug fixes are documented in:&lt;br /&gt;
 &lt;br /&gt;
   /usr/local/share/doc/exim/NewStuff&lt;br /&gt;
   /usr/local/share/doc/exim/ChangeLog&lt;br /&gt;
 &lt;br /&gt;
 To use Exim instead of sendmail on startup:&lt;br /&gt;
 &lt;br /&gt;
 *) Clear the sendmail queue and stop the sendmail daemon.&lt;br /&gt;
 *) Adjust mailer.conf(5) as appropriate.&lt;br /&gt;
 *) Set the &#039;sendmail_enable&#039; rc.conf(5) variable to &#039;NONE&#039;.&lt;br /&gt;
 *) Set the &#039;daily_status_include_submit_mailq&#039; and&lt;br /&gt;
    &#039;daily_clean_hoststat_enable&#039; periodic.conf(5)&lt;br /&gt;
    variables to &#039;NO&#039;.&lt;br /&gt;
 *) Consider setting &#039;daily_queuerun_enable&#039; and&lt;br /&gt;
    &#039;daily_submit_queuerun&#039; to &amp;quot;NO&amp;quot; in periodic.conf(5),&lt;br /&gt;
    if you intend to manage queue runners / deliveries closely.&lt;br /&gt;
 *) Set the &#039;exim_enable&#039; rc.conf(5) variable to &#039;YES&#039;.&lt;br /&gt;
 *) Start exim with &#039;/usr/local/etc/rc.d/exim start&#039;.&lt;br /&gt;
 &lt;br /&gt;
 You may also want to configure newsyslog(8) to rotate Exim log files:&lt;br /&gt;
 &lt;br /&gt;
 /var/log/exim/mainlog   mailnull:mail 640 7 * @T00 ZN&lt;br /&gt;
 /var/log/exim/rejectlog mailnull:mail 640 7 * @T00 ZN&lt;br /&gt;
 &lt;br /&gt;
 Additional scripts to help upgrading are installed in:&lt;br /&gt;
 &lt;br /&gt;
   /usr/local/share/examples/exim&lt;br /&gt;
&lt;br /&gt;
Установка автозапуска Exim в /etc/rc.conf:&lt;br /&gt;
 # sysrc exim_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
 exim_enable:  -&amp;gt; YES&lt;br /&gt;
&lt;br /&gt;
== Расшифровка вывода установки mail/exim ==&lt;br /&gt;
&lt;br /&gt;
Настройка ротации файлов журнала Exim  добавлением строк в файл /etc/newslog.conf:&lt;br /&gt;
 /var/log/exim/mainlog   mailnull:mail 640 7 * @T00 ZN&lt;br /&gt;
 /var/log/exim/rejectlog mailnull:mail 640 7 * @T00 ZN&lt;br /&gt;
&lt;br /&gt;
== Настройка mail/exim ==&lt;br /&gt;
Настройки Exim устанавливаются в файле /usr/local/etc/exim/configure:&lt;br /&gt;
&lt;br /&gt;
Определение списка локальных доменов, обслуживаемых сервером (использование &amp;quot;@&amp;quot; разрешает локальные доставки):&lt;br /&gt;
 domainlist local_domains = @ : ${lookup mysql{select domain from domain where domain=&#039;${domain}&#039; and active=&#039;1&#039;}}&lt;br /&gt;
&lt;br /&gt;
Определение списка хостов, которые могут использовать сервер для пересылки исходящей почты (это обычно относится ко всей локальной сети, а также к самому серверу):&lt;br /&gt;
 hostlist   relay_from_hosts = localhost : 192.168.0.0/24&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://wiki.bsdhowto.ru/index.php?title=Clamav%2BDovecot%2BExim&amp;diff=236</id>
		<title>Clamav+Dovecot+Exim</title>
		<link rel="alternate" type="text/html" href="https://wiki.bsdhowto.ru/index.php?title=Clamav%2BDovecot%2BExim&amp;diff=236"/>
		<updated>2025-12-03T15:41:39Z</updated>

		<summary type="html">&lt;p&gt;Igor: /* Установка Dovecot */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Подготовка клетки для Clamav+Dovecot+Exim ==&lt;br /&gt;
&lt;br /&gt;
Перед использованием этой статьи рекомендуется пройти по ссылке [[Qjail|Qjail]].&lt;br /&gt;
&lt;br /&gt;
Создание отдельной файловой системы для клетки с Clamav+Dovecot+Exim в ZFS::&lt;br /&gt;
 # zfs create zroot/usr/jails/mail&lt;br /&gt;
&lt;br /&gt;
Создание клетки c именем &amp;quot;mail&amp;quot; и IPv4-адресом &amp;quot;192.168.0.105&amp;quot;, запуск и управление клеткой:&lt;br /&gt;
 # qjail create -4 192.168.0.105 mail&lt;br /&gt;
 # qjail start mail&lt;br /&gt;
 # qjail console mail&lt;br /&gt;
&lt;br /&gt;
== Установка security/clamav ==&lt;br /&gt;
&lt;br /&gt;
Clam Antivirus - антивирусный сканер, который можно использовать для почтовых систем.&lt;br /&gt;
&lt;br /&gt;
Подробная информация на сайте https://www.clamav.net/&lt;br /&gt;
&lt;br /&gt;
Установка из пакета:&lt;br /&gt;
 # pkg install clamav&lt;br /&gt;
 Updating FreeBSD repository catalogue...&lt;br /&gt;
 FreeBSD repository is up to date.&lt;br /&gt;
 All repositories are up to date.&lt;br /&gt;
 The following 19 package(s) will be affected (of 0 checked):&lt;br /&gt;
 &lt;br /&gt;
 New packages to be INSTALLED:&lt;br /&gt;
         arc: 5.21q_1&lt;br /&gt;
         arj: 3.10.22_12&lt;br /&gt;
         brotli: 1.1.0,1&lt;br /&gt;
         clamav: 1.4.2_1,1&lt;br /&gt;
         curl: 8.12.1&lt;br /&gt;
         &#039;&#039;&#039;[пропущен список пакетов для установки]&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
 Number of packages to be installed: 19&lt;br /&gt;
 &lt;br /&gt;
 The process will require 95 MiB more space.&lt;br /&gt;
 21 MiB to be downloaded.&lt;br /&gt;
 &lt;br /&gt;
 Proceed with this action? [y/N]: y&lt;br /&gt;
 [1/19] Fetching indexinfo-0.3.1_1.pkg: 100%    6 KiB   6.0kB/s    00:01&lt;br /&gt;
 [2/19] Fetching libnghttp2-1.65.0.pkg: 100%  136 KiB 139.4kB/s    00:01&lt;br /&gt;
 [3/19] Fetching libxml2-2.11.9.pkg: 100%  872 KiB 893.4kB/s    00:01&lt;br /&gt;
 [4/19] Fetching libidn2-2.3.8.pkg: 100%  160 KiB 164.2kB/s    00:01&lt;br /&gt;
 [5/19] Fetching liblz4-1.10.0,1.pkg: 100%  163 KiB 167.3kB/s    00:01&lt;br /&gt;
 &#039;&#039;&#039;[пропущен список скачиваемых пакетов]&#039;&#039;&#039;&lt;br /&gt;
 Checking integrity... done (0 conflicting)&lt;br /&gt;
 [1/19] Installing arc-5.21q_1...&lt;br /&gt;
 [1/19] Extracting arc-5.21q_1: 100%&lt;br /&gt;
 [2/19] Installing arj-3.10.22_12...&lt;br /&gt;
 [2/19] Extracting arj-3.10.22_12: 100%&lt;br /&gt;
 [3/19] Installing brotli-1.1.0,1...&lt;br /&gt;
 [3/19] Extracting brotli-1.1.0,1: 100%&lt;br /&gt;
 [4/19] Installing indexinfo-0.3.1_1...&lt;br /&gt;
 [4/19] Extracting indexinfo-0.3.1_1: 100%&lt;br /&gt;
 [5/19] Installing json-c-0.18...&lt;br /&gt;
 [5/19] Extracting json-c-0.18: 100%&lt;br /&gt;
 &#039;&#039;&#039;[пропущен список устанавливаемых пакетов]&#039;&#039;&#039;&lt;br /&gt;
 [19/19] Installing clamav-1.4.2_1,1...&lt;br /&gt;
 ===&amp;gt; Creating groups&lt;br /&gt;
 Creating group &#039;clamav&#039; with gid &#039;106&#039;&lt;br /&gt;
 Using existing group &#039;mail&#039;&lt;br /&gt;
 ===&amp;gt; Creating users&lt;br /&gt;
 Creating user &#039;clamav&#039; with uid &#039;106&#039;&lt;br /&gt;
 Adding user &#039;clamav&#039; to group &#039;mail&#039;&lt;br /&gt;
 [19/19] Extracting clamav-1.4.2_1,1: 100%&lt;br /&gt;
&lt;br /&gt;
Проверка установки Clamav:&lt;br /&gt;
 # pkg version -v | grep clamav&lt;br /&gt;
 clamav-1.4.2_1,1                   =   up-to-date with remote&lt;br /&gt;
&lt;br /&gt;
Установка автозапуска Clam Antivirus в /etc/rc.conf:&lt;br /&gt;
 # sysrc clamav_freshclam_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
 clamav_freshclam_enable:  -&amp;gt; YES&lt;br /&gt;
 # sysrc clamav_clamd_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
 clamav_clamd_enable:  -&amp;gt; YES&lt;br /&gt;
&lt;br /&gt;
Настройка обхода санкций перед запуском freshclam (обновление антивирусных баз данных clamav) в файле /usr/local/etc/freshclam.conf:&lt;br /&gt;
 #DatabaseMirror database.clamav.net&lt;br /&gt;
 DatabaseMirror packages.microsoft.com/clamav&lt;br /&gt;
&lt;br /&gt;
Запуск clamav_freshclam:&lt;br /&gt;
 # service clamav_freshclam start&lt;br /&gt;
 Starting clamav_freshclam.&lt;br /&gt;
&lt;br /&gt;
Запуск clamav:&lt;br /&gt;
 # service clamav_clamd start&lt;br /&gt;
 Starting clamav_clamd.&lt;br /&gt;
&lt;br /&gt;
Проверка Clamav:&lt;br /&gt;
 # sockstat -l | grep clamav&lt;br /&gt;
 clamav   clamd       1333 4   stream /var/run/clamav/clamd.sock&lt;br /&gt;
&lt;br /&gt;
== Установка Dovecot ==&lt;br /&gt;
&lt;br /&gt;
Установка из пакета:&lt;br /&gt;
 # pkg install dovecot&lt;br /&gt;
&lt;br /&gt;
Установка автозапуска Dovecot в /etc/rc.conf:&lt;br /&gt;
 # sysrc dovecot_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
 dovecot_enable:  -&amp;gt; YES&lt;br /&gt;
&lt;br /&gt;
== Настройка Dovecot ==&lt;br /&gt;
&lt;br /&gt;
Копирование файлов настроек:&lt;br /&gt;
 # cp -R /usr/local/etc/dovecot/example-config/* /usr/local/etc/dovecot&lt;br /&gt;
&lt;br /&gt;
Пример настроек в /usr/usr/local/etc/dovecot/dovecot.conf:&lt;br /&gt;
 # Использование протокола IMAP:&lt;br /&gt;
 protocols = imap&lt;br /&gt;
 # Использование всех IPv4 данного хоста (можно использовать конкретные IP-адреса):&lt;br /&gt;
 listen = *&lt;br /&gt;
&lt;br /&gt;
Пример настроек в /usr/local/etc/dovecot/dovecot-sql.conf.ext:&lt;br /&gt;
 # Использование СУБД MySQL&lt;br /&gt;
 driver = mysql&lt;br /&gt;
 connect = host=&amp;lt;IP-адрес&amp;gt; dbname=&amp;lt;имя базы данных&amp;gt; user=&amp;lt;имя пользователя&amp;gt; password=&amp;lt;пароль&amp;gt;&lt;br /&gt;
 # Пример при хранении паролей почтовых пользователей в базе данных в открытом виде:&lt;br /&gt;
 default_pass_scheme = PLAIN&lt;br /&gt;
 # Пример запроса пароля при использовании связки с PostfixAdmin&lt;br /&gt;
 password_query = select username as user, password from mailbox where username = &#039;%n@%d&#039; and active = &#039;1&#039;&lt;br /&gt;
 # Пример запроса имени почтового ящика при использовании связки с PostfixAdmin&lt;br /&gt;
 user_query = select concat(&#039;/var/spool/dovecot/&#039;, maildir) as home, 143 as uid, 143 as gid from mailbox where username = &#039;%n@%d&#039; and active=&#039;1&#039;&lt;br /&gt;
&lt;br /&gt;
Пример настроек аутентификации в /usr/local/etc/dovecot/conf.d/10-auth.conf:&lt;br /&gt;
 !include auth-sql.conf.ext&lt;br /&gt;
&lt;br /&gt;
Пример настроек файлов журналов в /usr/local/etc/dovecot/conf.d/10-logging.conf:&lt;br /&gt;
 # Определение расположения файлов журналов&lt;br /&gt;
 log_path = /var/log/dovecot.log&lt;br /&gt;
 # Включение регистрации неудачных попыток аутентификации и причин их неудач&lt;br /&gt;
 auth_verbose = yes&lt;br /&gt;
&lt;br /&gt;
Настройки в файле /usr/local/etc/dovecot/conf.d/10-mail.conf:&lt;br /&gt;
 # Размещение почты в корневой папке /var/spool/dovecot в формате &amp;lt;домен&amp;gt;/&amp;lt;имя ящика&amp;gt;&lt;br /&gt;
 mail_location = maildir:/var/spool/dovecot/%d/%n&lt;br /&gt;
&lt;br /&gt;
== Установка mail/exim ==&lt;br /&gt;
&lt;br /&gt;
Exim - агент отправки почты для систем Unix.&lt;br /&gt;
&lt;br /&gt;
Подробная информация на сайте http://www.exim.org/&lt;br /&gt;
&lt;br /&gt;
Перед использованием этой статьи рекомендуется пройти по ссылке [[PKG|PKG]].&lt;br /&gt;
&lt;br /&gt;
Установка из пакета:&lt;br /&gt;
 # pkg install exim&lt;br /&gt;
 Updating FreeBSD repository catalogue...&lt;br /&gt;
 FreeBSD repository is up to date.&lt;br /&gt;
 All repositories are up to date.&lt;br /&gt;
 The following 46 package(s) will be affected (of 0 checked):&lt;br /&gt;
 &lt;br /&gt;
 New packages to be INSTALLED:&lt;br /&gt;
         brotli: 1.1.0,1&lt;br /&gt;
         curl: 8.12.1&lt;br /&gt;
         cyrus-sasl: 2.1.28_5&lt;br /&gt;
         exim: 4.98.2&lt;br /&gt;
         gettext-runtime: 0.23.1&lt;br /&gt;
         &#039;&#039;&#039;[пропущен список пакетов для установки]&#039;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
 Number of packages to be installed: 46&lt;br /&gt;
 &lt;br /&gt;
 The process will require 308 MiB more space.&lt;br /&gt;
 50 MiB to be downloaded.&lt;br /&gt;
 &lt;br /&gt;
 Proceed with this action? [y/N]: y&lt;br /&gt;
 [1/46] Fetching indexinfo-0.3.1_1.pkg: 100%    6 KiB   6.0kB/s    00:01&lt;br /&gt;
 [2/46] Fetching cyrus-sasl-2.1.28_5.pkg: 100%    1 MiB   1.1MB/s    00:01&lt;br /&gt;
 [3/46] Fetching libcjson-1.7.18_2.pkg: 100%   39 KiB  39.5kB/s    00:01&lt;br /&gt;
 [4/46] Fetching libnghttp2-1.65.0.pkg: 100%  136 KiB 139.4kB/s    00:01&lt;br /&gt;
 [5/46] Fetching p5-HTTP-Date-6.06.pkg: 100%   11 KiB  11.0kB/s    00:01&lt;br /&gt;
 [пропущен список скачиваемых пакетов]&lt;br /&gt;
 Checking integrity... done (0 conflicting)&lt;br /&gt;
 [1/46] Installing brotli-1.1.0,1...&lt;br /&gt;
 [1/46] Extracting brotli-1.1.0,1: 100%&lt;br /&gt;
 [2/46] Installing cyrus-sasl-2.1.28_5...&lt;br /&gt;
 *** Added group `cyrus&#039; (id 60)&lt;br /&gt;
 *** Added user `cyrus&#039; (id 60)&lt;br /&gt;
 [2/46] Extracting cyrus-sasl-2.1.28_5: 100%&lt;br /&gt;
 [3/46] Installing icu-76.1,1...&lt;br /&gt;
 [3/46] Extracting icu-76.1,1: 100%&lt;br /&gt;
 [4/46] Installing indexinfo-0.3.1_1...&lt;br /&gt;
 [4/46] Extracting indexinfo-0.3.1_1: 100%&lt;br /&gt;
 [5/46] Installing gettext-runtime-0.23.1...&lt;br /&gt;
 [5/46] Extracting gettext-runtime-0.23.1: 100%&lt;br /&gt;
 &#039;&#039;&#039;[пропущен список устанавливаемых пакетов]&#039;&#039;&#039;&lt;br /&gt;
 =====&lt;br /&gt;
 Message from cyrus-sasl-2.1.28_5:&lt;br /&gt;
 &lt;br /&gt;
 --&lt;br /&gt;
 You can use sasldb2 for authentication, to add users use:&lt;br /&gt;
 &lt;br /&gt;
         saslpasswd2 -c username&lt;br /&gt;
 &lt;br /&gt;
 If you want to enable SMTP AUTH with the system Sendmail, read&lt;br /&gt;
 Sendmail.README&lt;br /&gt;
 &lt;br /&gt;
 NOTE: This port has been compiled with a default pwcheck_method of&lt;br /&gt;
       auxprop.  If you want to authenticate your user by /etc/passwd,&lt;br /&gt;
       PAM or LDAP, install ports/security/cyrus-sasl2-saslauthd and&lt;br /&gt;
       set sasl_pwcheck_method to saslauthd after installing the&lt;br /&gt;
       Cyrus-IMAPd 2.X port.  You should also check the&lt;br /&gt;
       /usr/local/lib/sasl2/*.conf files for the correct&lt;br /&gt;
       pwcheck_method.&lt;br /&gt;
       If you want to use GSSAPI mechanism, install&lt;br /&gt;
       ports/security/cyrus-sasl2-gssapi.&lt;br /&gt;
       If you want to use SRP mechanism, install&lt;br /&gt;
       ports/security/cyrus-sasl2-srp.&lt;br /&gt;
       If you want to use LDAP auxprop plugin, install&lt;br /&gt;
       ports/security/cyrus-sasl2-ldapdb.&lt;br /&gt;
 =====&lt;br /&gt;
 Message from openldap26-client-2.6.9_1:&lt;br /&gt;
 &lt;br /&gt;
 --&lt;br /&gt;
 The OpenLDAP client package has been successfully installed.&lt;br /&gt;
 &lt;br /&gt;
 Edit&lt;br /&gt;
   /usr/local/etc/openldap/ldap.conf&lt;br /&gt;
 to change the system-wide client defaults.&lt;br /&gt;
 &lt;br /&gt;
 Try `man ldap.conf&#039; and visit the OpenLDAP FAQ-O-Matic at&lt;br /&gt;
   http://www.OpenLDAP.org/faq/index.cgi?file=3&lt;br /&gt;
 for more information.&lt;br /&gt;
 =====&lt;br /&gt;
 Message from groff-1.23.0_4:&lt;br /&gt;
 &lt;br /&gt;
 --&lt;br /&gt;
 In order to be able to use the html driver, you need to install the following&lt;br /&gt;
 packages:&lt;br /&gt;
  - ghostscript&lt;br /&gt;
  - netpbm&lt;br /&gt;
 --&lt;br /&gt;
 ===&amp;gt;   NOTICE:&lt;br /&gt;
 &lt;br /&gt;
 The groff port currently does not have a maintainer. As a result, it is&lt;br /&gt;
 more likely to have unresolved issues, not be up-to-date, or even be removed in&lt;br /&gt;
 the future. To volunteer to maintain this port, please create an issue at:&lt;br /&gt;
 &lt;br /&gt;
 https://bugs.freebsd.org/bugzilla&lt;br /&gt;
 &lt;br /&gt;
 More information about port maintainership is available at:&lt;br /&gt;
 &lt;br /&gt;
 https://docs.freebsd.org/en/articles/contributing/#ports-contributing&lt;br /&gt;
 =====&lt;br /&gt;
 Message from mysql80-client-8.0.41:&lt;br /&gt;
 &lt;br /&gt;
 --&lt;br /&gt;
 This is the mysql CLIENT without the server.&lt;br /&gt;
 for complete server and client, please install databases/mysql80-server&lt;br /&gt;
 =====&lt;br /&gt;
 Message from exim-4.98.2:&lt;br /&gt;
 &lt;br /&gt;
 --&lt;br /&gt;
 The following documentation has been installed:&lt;br /&gt;
 &lt;br /&gt;
   man exim                              -&amp;gt; Exim options (command line)&lt;br /&gt;
   /usr/local/share/doc/exim/spec.txt    -&amp;gt; Exim Specification (User Guide)&lt;br /&gt;
   /usr/local/share/doc/exim/filter.txt  -&amp;gt; Exim Filter Specification (for end-users)&lt;br /&gt;
 &lt;br /&gt;
 Postscript, PDF, HTML and texinfo versions of these documents can be&lt;br /&gt;
 installed via one of the mail/exim-doc-* ports.&lt;br /&gt;
 &lt;br /&gt;
 An online version as well as a comprehensive FAQ and a mailing list&lt;br /&gt;
 archive is available at:&lt;br /&gt;
 &lt;br /&gt;
   http://www.exim.org/&lt;br /&gt;
 &lt;br /&gt;
 Descriptions of new features not available it the manual, and a listing&lt;br /&gt;
 of all changes, including bug fixes are documented in:&lt;br /&gt;
 &lt;br /&gt;
   /usr/local/share/doc/exim/NewStuff&lt;br /&gt;
   /usr/local/share/doc/exim/ChangeLog&lt;br /&gt;
 &lt;br /&gt;
 To use Exim instead of sendmail on startup:&lt;br /&gt;
 &lt;br /&gt;
 *) Clear the sendmail queue and stop the sendmail daemon.&lt;br /&gt;
 *) Adjust mailer.conf(5) as appropriate.&lt;br /&gt;
 *) Set the &#039;sendmail_enable&#039; rc.conf(5) variable to &#039;NONE&#039;.&lt;br /&gt;
 *) Set the &#039;daily_status_include_submit_mailq&#039; and&lt;br /&gt;
    &#039;daily_clean_hoststat_enable&#039; periodic.conf(5)&lt;br /&gt;
    variables to &#039;NO&#039;.&lt;br /&gt;
 *) Consider setting &#039;daily_queuerun_enable&#039; and&lt;br /&gt;
    &#039;daily_submit_queuerun&#039; to &amp;quot;NO&amp;quot; in periodic.conf(5),&lt;br /&gt;
    if you intend to manage queue runners / deliveries closely.&lt;br /&gt;
 *) Set the &#039;exim_enable&#039; rc.conf(5) variable to &#039;YES&#039;.&lt;br /&gt;
 *) Start exim with &#039;/usr/local/etc/rc.d/exim start&#039;.&lt;br /&gt;
 &lt;br /&gt;
 You may also want to configure newsyslog(8) to rotate Exim log files:&lt;br /&gt;
 &lt;br /&gt;
 /var/log/exim/mainlog   mailnull:mail 640 7 * @T00 ZN&lt;br /&gt;
 /var/log/exim/rejectlog mailnull:mail 640 7 * @T00 ZN&lt;br /&gt;
 &lt;br /&gt;
 Additional scripts to help upgrading are installed in:&lt;br /&gt;
 &lt;br /&gt;
   /usr/local/share/examples/exim&lt;br /&gt;
&lt;br /&gt;
Установка автозапуска Exim в /etc/rc.conf:&lt;br /&gt;
 # sysrc exim_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
 exim_enable:  -&amp;gt; YES&lt;br /&gt;
&lt;br /&gt;
== Расшифровка вывода установки mail/exim ==&lt;br /&gt;
&lt;br /&gt;
Настройка ротации файлов журнала Exim  добавлением строк в файл /etc/newslog.conf:&lt;br /&gt;
 /var/log/exim/mainlog   mailnull:mail 640 7 * @T00 ZN&lt;br /&gt;
 /var/log/exim/rejectlog mailnull:mail 640 7 * @T00 ZN&lt;br /&gt;
&lt;br /&gt;
== Настройка mail/exim ==&lt;br /&gt;
Настройки Exim устанавливаются в файле /usr/local/etc/exim/configure:&lt;br /&gt;
&lt;br /&gt;
Определение списка локальных доменов, обслуживаемых сервером (использование &amp;quot;@&amp;quot; разрешает локальные доставки):&lt;br /&gt;
 domainlist local_domains = @ : ${lookup mysql{select domain from domain where domain=&#039;${domain}&#039; and active=&#039;1&#039;}}&lt;br /&gt;
&lt;br /&gt;
Определение списка хостов, которые могут использовать сервер для пересылки исходящей почты (это обычно относится ко всей локальной сети, а также к самому серверу):&lt;br /&gt;
 hostlist   relay_from_hosts = localhost : 192.168.0.0/24&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://wiki.bsdhowto.ru/index.php?title=Postfix_Admin&amp;diff=235</id>
		<title>Postfix Admin</title>
		<link rel="alternate" type="text/html" href="https://wiki.bsdhowto.ru/index.php?title=Postfix_Admin&amp;diff=235"/>
		<updated>2025-12-02T16:48:56Z</updated>

		<summary type="html">&lt;p&gt;Igor: /* Окончательная настройка сайта */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Установка postfixadmin-php84 ==&lt;br /&gt;
&lt;br /&gt;
Postfix Admin — веб-инструмент управления, написанный на PHP для Postfix (но прекрасно подходит и для Exim) с виртуальными доменами в стиле Postfix, использующими поиск в MySQL или PostgreSQL. Так-же Postfix Admin работает на Apache, Lighttpd и на любом веб-сервере с поддержкой PHP 5.1.2+.&lt;br /&gt;
&lt;br /&gt;
Подробная информация о Postfix Admin на сайте http://www.postfixadmin.org/&lt;br /&gt;
&lt;br /&gt;
Установка из пакета (предварительная установка пакетов PKG и PHP не требуется, дополнительная информация о которых в статьях [[PKG]] и [[PHP+Nginx|Установка lang/php84]]; потребуется установка СУБД, например - MySQL, дополнительная информация о которой в статье [[MySQL]]):&lt;br /&gt;
 # pkg install postfixadmin-php84&lt;br /&gt;
&lt;br /&gt;
Проверка установки postfixadmin-php84:&lt;br /&gt;
 # pkg version -v | grep php84&lt;br /&gt;
 php84-8.4.5_1                      =   up-to-date with remote&lt;br /&gt;
 php84-mbstring-8.4.5_1             =   up-to-date with remote&lt;br /&gt;
 php84-pdo-8.4.5_1                  =   up-to-date with remote&lt;br /&gt;
 php84-pdo_sqlite-8.4.5_1           =   up-to-date with remote&lt;br /&gt;
 php84-pecl-imap-1.0.3              =   up-to-date with remote&lt;br /&gt;
 php84-session-8.4.5_1              =   up-to-date with remote&lt;br /&gt;
 postfixadmin-php84-3.4.d.20211018  =   up-to-date with remote&lt;br /&gt;
&lt;br /&gt;
Вывод команды содержит список установленных расширений PHP. В списке отсутствует расширение php84-pdo_mysql, которое требуется для СУБД MySQL, если для Postfix Admin будет использована она.&lt;br /&gt;
&lt;br /&gt;
Установка из пакета расширения php84-pdo_mysql:&lt;br /&gt;
 # pkg install php84-pdo_mysql&lt;br /&gt;
 Updating FreeBSD repository catalogue...&lt;br /&gt;
 FreeBSD repository is up to date.&lt;br /&gt;
 All repositories are up to date.&lt;br /&gt;
 The following 1 package(s) will be affected (of 0 checked):&lt;br /&gt;
 &lt;br /&gt;
 New packages to be INSTALLED:&lt;br /&gt;
         php84-pdo_mysql: 8.4.5_1&lt;br /&gt;
 &lt;br /&gt;
 Number of packages to be installed: 1&lt;br /&gt;
 &lt;br /&gt;
 19 KiB to be downloaded.&lt;br /&gt;
 &lt;br /&gt;
 Proceed with this action? [y/N]: y&lt;br /&gt;
 [1/1] Fetching php84-pdo_mysql-8.4.5_1.pkg: 100%   19 KiB  19.7kB/s    00:01&lt;br /&gt;
 Checking integrity... done (0 conflicting)&lt;br /&gt;
 [1/1] Installing php84-pdo_mysql-8.4.5_1...&lt;br /&gt;
 [1/1] Extracting php84-pdo_mysql-8.4.5_1: 100%&lt;br /&gt;
 =====&lt;br /&gt;
 Message from php84-pdo_mysql-8.4.5_1:&lt;br /&gt;
 &lt;br /&gt;
 --&lt;br /&gt;
 This file has been added to automatically load the installed extension:&lt;br /&gt;
 /usr/local/etc/php/ext-30-pdo_mysql.ini.sample&lt;br /&gt;
&lt;br /&gt;
Повторная проверка установки:&lt;br /&gt;
 # pkg version -v | grep php84&lt;br /&gt;
 php84-8.4.5_1                      =   up-to-date with remote&lt;br /&gt;
 php84-mbstring-8.4.5_1             =   up-to-date with remote&lt;br /&gt;
 php84-pdo-8.4.5_1                  =   up-to-date with remote&lt;br /&gt;
 php84-pdo_mysql-8.4.5_1            =   up-to-date with remote&lt;br /&gt;
 php84-pdo_sqlite-8.4.5_1           =   up-to-date with remote&lt;br /&gt;
 php84-pecl-imap-1.0.3              =   up-to-date with remote&lt;br /&gt;
 php84-session-8.4.5_1              =   up-to-date with remote&lt;br /&gt;
 postfixadmin-php84-3.4.d.20211018  =   up-to-date with remote&lt;br /&gt;
&lt;br /&gt;
Вывод команды содержит список всех необходимых установленных расширений PHP.&lt;br /&gt;
&lt;br /&gt;
Перезапуск PHP-FPM после установки расширений PHP:&lt;br /&gt;
 # service php_fpm restart&lt;br /&gt;
 Performing sanity check on php-fpm configuration:&lt;br /&gt;
 [28-Apr-2025 16:58:14] NOTICE: configuration file /usr/local/etc/php-fpm.conf test is successful&lt;br /&gt;
 Stopping php_fpm.&lt;br /&gt;
 Performing sanity check on php-fpm configuration:&lt;br /&gt;
 [28-Apr-2025 16:58:14] NOTICE: configuration file /usr/local/etc/php-fpm.conf test is successful&lt;br /&gt;
 Starting php_fpm.&lt;br /&gt;
&lt;br /&gt;
== Начальная настройка postfixadmin-php84 ==&lt;br /&gt;
&lt;br /&gt;
Копирование структуры сайта:&lt;br /&gt;
 # cd /usr/local/www&lt;br /&gt;
 # cp -Rp postfixadmin mailadmin.mydomain.ru&lt;br /&gt;
&lt;br /&gt;
Настройка сайта Postfix Admin в файле /usr/local/etc/nginx/mailadmin.mydomain.ru.conf:&lt;br /&gt;
 server {&lt;br /&gt;
     listen       80;&lt;br /&gt;
     server_name  mailadmin.mydomain.ru;&lt;br /&gt;
 &lt;br /&gt;
     access_log   /var/log/nginx/mailadmin.mydomain.ru.access.log;&lt;br /&gt;
     error_log    /var/log/nginx/mailadmin.mydomain.ru.error.log;&lt;br /&gt;
 &lt;br /&gt;
     location / {&lt;br /&gt;
         root   /usr/local/www/mailadmin.mydomain.ru/public;&lt;br /&gt;
         index  index.php;&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000&lt;br /&gt;
     #&lt;br /&gt;
     location ~ \.php$ {&lt;br /&gt;
         fastcgi_pass   127.0.0.1:9000;&lt;br /&gt;
         fastcgi_index  index.php;&lt;br /&gt;
         fastcgi_param  SCRIPT_FILENAME  /usr/local/www/mailadmin.mydomain.ru/public$fastcgi_script_name;&lt;br /&gt;
         include        fastcgi_params;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Включение конфигурации сайта Postfix Admin в файл /usr/local/etc/nginx/nginx.conf:&lt;br /&gt;
     include /usr/local/etc/nginx/mailadmin.mydomain.ru.conf;&lt;br /&gt;
&lt;br /&gt;
Перезагрузка конфигурации Nginx после первоначальной настройки сайта для доступа к нему со стороны Let&#039;s Encrypt по HTTP:&lt;br /&gt;
 # service nginx reload&lt;br /&gt;
 Performing sanity check on nginx configuration:&lt;br /&gt;
 nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok&lt;br /&gt;
 nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful&lt;br /&gt;
&lt;br /&gt;
== Получение сертификата ==&lt;br /&gt;
&lt;br /&gt;
Получение сертификата для домена:&lt;br /&gt;
 # certbot --nginx -d mailadmin.mydomain.ru&lt;br /&gt;
&lt;br /&gt;
Скрипт включит следующие строки в файл конфигурации сайта /usr/local/etc/nginx/mailadmin.mydomain.ru.conf: &lt;br /&gt;
     listen 443 ssl; # managed by Certbot&lt;br /&gt;
     ssl_certificate /usr/local/etc/letsencrypt/live/mailadmin.mydomain.ru/fullchain.pem; # managed by Certbot&lt;br /&gt;
     ssl_certificate_key /usr/local/etc/letsencrypt/live/mailadmin.mydomain.ru/privkey.pem; # managed by Certbot&lt;br /&gt;
     include /usr/local/etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot&lt;br /&gt;
     ssl_dhparam /usr/local/etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot&lt;br /&gt;
&lt;br /&gt;
Перезагрузка конфигурации Nginx для включения доступа по HTTPS:&lt;br /&gt;
 # service nginx reload&lt;br /&gt;
 Performing sanity check on nginx configuration:&lt;br /&gt;
 nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok&lt;br /&gt;
 nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful&lt;br /&gt;
&lt;br /&gt;
== Окончательная настройка сайта ==&lt;br /&gt;
&lt;br /&gt;
Настройки Postfix Admin по умолчанию находятся в файле /usr/local/www/mailadmin.mydomain.ru/config.inc.php. Его не рекомендуется изменять на случай обновлений пакета.&lt;br /&gt;
&lt;br /&gt;
Редактирование настроек следует делать в файле /usr/local/www/mailadmin.mydomain.ru/config.local.php (он должен начинаться с префикса):&lt;br /&gt;
 &amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
Параметр означает, что все необходимые настройки внесены в файл /usr/local/www/mailadmin.mydomain.ru/config.local.php:&lt;br /&gt;
 $CONF[&#039;configured&#039;] = true;&lt;br /&gt;
&lt;br /&gt;
Создание хеша установочного пароля:&lt;br /&gt;
 # php -r &#039;echo password_hash(&amp;quot;&amp;lt;пароль&amp;gt;&amp;quot;, PASSWORD_DEFAULT); echo &amp;quot;\n&amp;quot;;&#039;&lt;br /&gt;
 $2y$12$w7H3Vo2EIuHOHRxObmUWZ.DpsujtU5yy8PWbfYxzXBSe2tun/qjTG&lt;br /&gt;
&lt;br /&gt;
Добавление полученного хеша в файл настроек /usr/local/www/mailadmin.mydomain.ru/config.local.php:&lt;br /&gt;
 $CONF[&#039;setup_password&#039;] = &#039;$2y$12$w7H3Vo2EIuHOHRxObmUWZ.DpsujtU5yy8PWbfYxzXBSe2tun/qjTG&#039;;&lt;br /&gt;
&lt;br /&gt;
Настройка языка:&lt;br /&gt;
 $CONF[&#039;default_language&#039;] = &#039;ru&#039;;&lt;br /&gt;
&lt;br /&gt;
Пример настройки доступа Postfix Admin к СУБД в файле /usr/local/www/mailadmin.mydomain.ru/config.local.php&lt;br /&gt;
 $CONF[&#039;database_type&#039;] = &#039;mysqli&#039;;&lt;br /&gt;
 $CONF[&#039;database_host&#039;] = &#039;192.168.0.103&#039;;&lt;br /&gt;
 $CONF[&#039;database_user&#039;] = &#039;mailadmin&#039;;&lt;br /&gt;
 $CONF[&#039;database_password&#039;] = &#039;12345678&#039;;&lt;br /&gt;
 $CONF[&#039;database_name&#039;] = &#039;mailadmin&#039;;&lt;br /&gt;
&lt;br /&gt;
Настройка SMTP-сервера, куда будут отправляться уведомления о создании почтовых ящиков:&lt;br /&gt;
 $CONF[&#039;smtp_server&#039;] = &#039;192.68.0.105&#039;;&lt;br /&gt;
 $CONF[&#039;smtp_port&#039;] = &#039;25&#039;;&lt;br /&gt;
&lt;br /&gt;
Настройка способа шифрования паролей почтовых ящиков (в данном случае пароли сохраняются в базе данных Postfix Admin в открытом виде, что небезопасно):&lt;br /&gt;
 $CONF[&#039;encrypt&#039;] = &#039;cleartext&#039;;&lt;br /&gt;
&lt;br /&gt;
Настройка автоматической генерации паролей:&lt;br /&gt;
 $CONF[&#039;generate_password&#039;] = &#039;YES&#039;;&lt;br /&gt;
&lt;br /&gt;
Создание базы данных Postfix Admin:&lt;br /&gt;
 # mysql -u root -p&lt;br /&gt;
 &lt;br /&gt;
 &amp;gt; create database mailadmin;&lt;br /&gt;
 Query OK, 1 row affected (0.01 sec)&lt;br /&gt;
&lt;br /&gt;
Предоставление доступа пользователю &#039;mailadmin&#039; к базе данных &#039;mailadmin&#039; с хоста &#039;&amp;lt;IP-адрес&amp;gt;&#039; (потребуется доступ с хостов, где расположены Postfix Admin, SMTP-сервер и IMAP-сервер) и применение изменений:&lt;br /&gt;
 &amp;gt; create user &#039;mailadmin&#039;@&#039;&amp;lt;IP-адрес&amp;gt;&#039; identified by &#039;&amp;lt;пароль&amp;gt;&#039;;&lt;br /&gt;
 Query OK, 0 rows affected (0.04 sec)&lt;br /&gt;
 &lt;br /&gt;
 &amp;gt; grant all on mailadmin.* to &#039;mailadmin&#039;@&#039;&amp;lt;IP-адрес&amp;gt;&#039;;&lt;br /&gt;
 Query OK, 0 rows affected (0.00 sec)&lt;br /&gt;
 &lt;br /&gt;
 &amp;gt; flush privileges;&lt;br /&gt;
 Query OK, 0 rows affected (0.01 sec)&lt;br /&gt;
&lt;br /&gt;
Переход на сайт:&lt;br /&gt;
 https://mailadmin.mydomain.ru/setup.php&lt;br /&gt;
&lt;br /&gt;
Вывод команды содержит ошибки:&lt;br /&gt;
 Errors (MUST be fixed)&lt;br /&gt;
 ⛔Database connection string : mysql:mysql:host=192.168.128.13;dbname=mailadmin;charset=UTF8&lt;br /&gt;
 ⛔Problem connecting to database, check database configuration ($CONF[&#039;database_*&#039;] entries in config.local.php)&lt;br /&gt;
 ⛔SQLSTATE[HY000] [2002] No such file or directory&lt;br /&gt;
&lt;br /&gt;
Параметр &amp;quot;Database connection string&amp;quot; содержит строку &amp;quot;&#039;&#039;&#039;mysql:mysql:&#039;&#039;&#039;host=192.168.0.103;dbname=mailadmin;charset=UTF8&amp;quot;, в которой дублируется строка &amp;quot;mysql:&amp;quot;. Требуется исправление ошибки в функции &amp;quot;function db_connection_string()&amp;quot; в файле /usr/local/www/mailadmin.mydomain.ru/functions.inc.php:&lt;br /&gt;
 $dsn = &#039;mysql:&#039;;&lt;br /&gt;
 if ($socket) {&lt;br /&gt;
     $dsn .= &amp;quot;unix_socket={$socket}&amp;quot;;&lt;br /&gt;
 } else {&lt;br /&gt;
     $dsn .= &amp;quot;mysql:host={$CONF[&#039;database_host&#039;]}&amp;quot;;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Необходима замена строки:&lt;br /&gt;
     $dsn .= &amp;quot;mysql:host={$CONF[&#039;database_host&#039;]}&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
на строку:&lt;br /&gt;
     $dsn .= &amp;quot;host={$CONF[&#039;database_host&#039;]}&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Пример вывода сайта:&lt;br /&gt;
 &#039;&#039;&#039;Hosting Environment Check&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;Information&#039;&#039;&#039;&lt;br /&gt;
 ✅ PHP version - 8.4.5&lt;br /&gt;
 ✅ Postfixadmin public url detected as http://mailadmin.mydomain.ru/ use $CONF[&#039;site_url&#039;] to override&lt;br /&gt;
 ✅ Postfixadmin installed at - /usr/local/www/mailadmin.mydomain.ru/public&lt;br /&gt;
 ✅ config.local.php file found : /usr/local/www/mailadmin.mydomain.ru/config.local.php&lt;br /&gt;
 ✅ Database - MySQL support available&lt;br /&gt;
 ✅ Database - SQLite support available&lt;br /&gt;
 ✅ Password hashing - $CONF[&amp;quot;encrypt&amp;quot;] = cleartext&lt;br /&gt;
 ✅ Password hashing - $CONF[&amp;quot;encrypt&amp;quot;] - hash generation OK&lt;br /&gt;
 ✅ Database connection configured OK (using PDO mysql:mysql:host=10.xxx.yyy.zzz;dbname=mailadmin;charset=UTF8)&lt;br /&gt;
 ✅ Database connection - Connected OK&lt;br /&gt;
 ✅ Depends on: PHP session support - OK&lt;br /&gt;
 ✅ Depends on: PHP pcre support - OK&lt;br /&gt;
 ✅ Depends on: PHP mbstring support - OK&lt;br /&gt;
 ✅ Optional - PHP IMAP functions - OK&lt;br /&gt;
&lt;br /&gt;
Дальнейший вывод сайта:&lt;br /&gt;
 Database Update&lt;br /&gt;
 &lt;br /&gt;
 Everything seems fine... attempting to create/update database structure&lt;br /&gt;
 &lt;br /&gt;
 Updating database:&lt;br /&gt;
 &lt;br /&gt;
 - old version: 0; target version: 1845&lt;br /&gt;
 &lt;br /&gt;
   (If the update doesn&#039;t work, run setup.php?debug=1 to see the detailed error messages and SQL queries.)&lt;br /&gt;
 &lt;br /&gt;
 updating to version 1 (MySQL)...   done&lt;br /&gt;
 updating to version 2 (MySQL)...   done&lt;br /&gt;
 updating to version 3 (MySQL)...   done&lt;br /&gt;
 &#039;&#039;&#039;[список пропущен]&#039;&#039;&#039;&lt;br /&gt;
 updating to version 1843 (all databases)...   done&lt;br /&gt;
 updating to version 1844 (all databases)...   done&lt;br /&gt;
 updating to version 1845 (all databases)...   done&lt;br /&gt;
&lt;br /&gt;
Последняя строка сообщает об обновлении базы данных Postfix Admin до последней актуальной версии.&lt;br /&gt;
&lt;br /&gt;
Сайт предложит настроить учётную запись администратора, после чего можно использовать Postfix Admin для администрирования почтовых доменов, ящиков и алиасов.&lt;br /&gt;
&lt;br /&gt;
Приглашение в управление Postfix Admin:&lt;br /&gt;
[[Файл:2025050201.png|left|мини]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
Вид главной страницы Postfix Admin:&lt;br /&gt;
[[Файл:2025050202.png|left|мини]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
Пример почтового алиаса домена и домена, на который будет приходить почта:&lt;br /&gt;
[[Файл:2025050203.png|left|мини]]&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://wiki.bsdhowto.ru/index.php?title=Postfix_Admin&amp;diff=234</id>
		<title>Postfix Admin</title>
		<link rel="alternate" type="text/html" href="https://wiki.bsdhowto.ru/index.php?title=Postfix_Admin&amp;diff=234"/>
		<updated>2025-12-02T16:46:11Z</updated>

		<summary type="html">&lt;p&gt;Igor: /* Окончательная настройка сайта */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Установка postfixadmin-php84 ==&lt;br /&gt;
&lt;br /&gt;
Postfix Admin — веб-инструмент управления, написанный на PHP для Postfix (но прекрасно подходит и для Exim) с виртуальными доменами в стиле Postfix, использующими поиск в MySQL или PostgreSQL. Так-же Postfix Admin работает на Apache, Lighttpd и на любом веб-сервере с поддержкой PHP 5.1.2+.&lt;br /&gt;
&lt;br /&gt;
Подробная информация о Postfix Admin на сайте http://www.postfixadmin.org/&lt;br /&gt;
&lt;br /&gt;
Установка из пакета (предварительная установка пакетов PKG и PHP не требуется, дополнительная информация о которых в статьях [[PKG]] и [[PHP+Nginx|Установка lang/php84]]; потребуется установка СУБД, например - MySQL, дополнительная информация о которой в статье [[MySQL]]):&lt;br /&gt;
 # pkg install postfixadmin-php84&lt;br /&gt;
&lt;br /&gt;
Проверка установки postfixadmin-php84:&lt;br /&gt;
 # pkg version -v | grep php84&lt;br /&gt;
 php84-8.4.5_1                      =   up-to-date with remote&lt;br /&gt;
 php84-mbstring-8.4.5_1             =   up-to-date with remote&lt;br /&gt;
 php84-pdo-8.4.5_1                  =   up-to-date with remote&lt;br /&gt;
 php84-pdo_sqlite-8.4.5_1           =   up-to-date with remote&lt;br /&gt;
 php84-pecl-imap-1.0.3              =   up-to-date with remote&lt;br /&gt;
 php84-session-8.4.5_1              =   up-to-date with remote&lt;br /&gt;
 postfixadmin-php84-3.4.d.20211018  =   up-to-date with remote&lt;br /&gt;
&lt;br /&gt;
Вывод команды содержит список установленных расширений PHP. В списке отсутствует расширение php84-pdo_mysql, которое требуется для СУБД MySQL, если для Postfix Admin будет использована она.&lt;br /&gt;
&lt;br /&gt;
Установка из пакета расширения php84-pdo_mysql:&lt;br /&gt;
 # pkg install php84-pdo_mysql&lt;br /&gt;
 Updating FreeBSD repository catalogue...&lt;br /&gt;
 FreeBSD repository is up to date.&lt;br /&gt;
 All repositories are up to date.&lt;br /&gt;
 The following 1 package(s) will be affected (of 0 checked):&lt;br /&gt;
 &lt;br /&gt;
 New packages to be INSTALLED:&lt;br /&gt;
         php84-pdo_mysql: 8.4.5_1&lt;br /&gt;
 &lt;br /&gt;
 Number of packages to be installed: 1&lt;br /&gt;
 &lt;br /&gt;
 19 KiB to be downloaded.&lt;br /&gt;
 &lt;br /&gt;
 Proceed with this action? [y/N]: y&lt;br /&gt;
 [1/1] Fetching php84-pdo_mysql-8.4.5_1.pkg: 100%   19 KiB  19.7kB/s    00:01&lt;br /&gt;
 Checking integrity... done (0 conflicting)&lt;br /&gt;
 [1/1] Installing php84-pdo_mysql-8.4.5_1...&lt;br /&gt;
 [1/1] Extracting php84-pdo_mysql-8.4.5_1: 100%&lt;br /&gt;
 =====&lt;br /&gt;
 Message from php84-pdo_mysql-8.4.5_1:&lt;br /&gt;
 &lt;br /&gt;
 --&lt;br /&gt;
 This file has been added to automatically load the installed extension:&lt;br /&gt;
 /usr/local/etc/php/ext-30-pdo_mysql.ini.sample&lt;br /&gt;
&lt;br /&gt;
Повторная проверка установки:&lt;br /&gt;
 # pkg version -v | grep php84&lt;br /&gt;
 php84-8.4.5_1                      =   up-to-date with remote&lt;br /&gt;
 php84-mbstring-8.4.5_1             =   up-to-date with remote&lt;br /&gt;
 php84-pdo-8.4.5_1                  =   up-to-date with remote&lt;br /&gt;
 php84-pdo_mysql-8.4.5_1            =   up-to-date with remote&lt;br /&gt;
 php84-pdo_sqlite-8.4.5_1           =   up-to-date with remote&lt;br /&gt;
 php84-pecl-imap-1.0.3              =   up-to-date with remote&lt;br /&gt;
 php84-session-8.4.5_1              =   up-to-date with remote&lt;br /&gt;
 postfixadmin-php84-3.4.d.20211018  =   up-to-date with remote&lt;br /&gt;
&lt;br /&gt;
Вывод команды содержит список всех необходимых установленных расширений PHP.&lt;br /&gt;
&lt;br /&gt;
Перезапуск PHP-FPM после установки расширений PHP:&lt;br /&gt;
 # service php_fpm restart&lt;br /&gt;
 Performing sanity check on php-fpm configuration:&lt;br /&gt;
 [28-Apr-2025 16:58:14] NOTICE: configuration file /usr/local/etc/php-fpm.conf test is successful&lt;br /&gt;
 Stopping php_fpm.&lt;br /&gt;
 Performing sanity check on php-fpm configuration:&lt;br /&gt;
 [28-Apr-2025 16:58:14] NOTICE: configuration file /usr/local/etc/php-fpm.conf test is successful&lt;br /&gt;
 Starting php_fpm.&lt;br /&gt;
&lt;br /&gt;
== Начальная настройка postfixadmin-php84 ==&lt;br /&gt;
&lt;br /&gt;
Копирование структуры сайта:&lt;br /&gt;
 # cd /usr/local/www&lt;br /&gt;
 # cp -Rp postfixadmin mailadmin.mydomain.ru&lt;br /&gt;
&lt;br /&gt;
Настройка сайта Postfix Admin в файле /usr/local/etc/nginx/mailadmin.mydomain.ru.conf:&lt;br /&gt;
 server {&lt;br /&gt;
     listen       80;&lt;br /&gt;
     server_name  mailadmin.mydomain.ru;&lt;br /&gt;
 &lt;br /&gt;
     access_log   /var/log/nginx/mailadmin.mydomain.ru.access.log;&lt;br /&gt;
     error_log    /var/log/nginx/mailadmin.mydomain.ru.error.log;&lt;br /&gt;
 &lt;br /&gt;
     location / {&lt;br /&gt;
         root   /usr/local/www/mailadmin.mydomain.ru/public;&lt;br /&gt;
         index  index.php;&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000&lt;br /&gt;
     #&lt;br /&gt;
     location ~ \.php$ {&lt;br /&gt;
         fastcgi_pass   127.0.0.1:9000;&lt;br /&gt;
         fastcgi_index  index.php;&lt;br /&gt;
         fastcgi_param  SCRIPT_FILENAME  /usr/local/www/mailadmin.mydomain.ru/public$fastcgi_script_name;&lt;br /&gt;
         include        fastcgi_params;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Включение конфигурации сайта Postfix Admin в файл /usr/local/etc/nginx/nginx.conf:&lt;br /&gt;
     include /usr/local/etc/nginx/mailadmin.mydomain.ru.conf;&lt;br /&gt;
&lt;br /&gt;
Перезагрузка конфигурации Nginx после первоначальной настройки сайта для доступа к нему со стороны Let&#039;s Encrypt по HTTP:&lt;br /&gt;
 # service nginx reload&lt;br /&gt;
 Performing sanity check on nginx configuration:&lt;br /&gt;
 nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok&lt;br /&gt;
 nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful&lt;br /&gt;
&lt;br /&gt;
== Получение сертификата ==&lt;br /&gt;
&lt;br /&gt;
Получение сертификата для домена:&lt;br /&gt;
 # certbot --nginx -d mailadmin.mydomain.ru&lt;br /&gt;
&lt;br /&gt;
Скрипт включит следующие строки в файл конфигурации сайта /usr/local/etc/nginx/mailadmin.mydomain.ru.conf: &lt;br /&gt;
     listen 443 ssl; # managed by Certbot&lt;br /&gt;
     ssl_certificate /usr/local/etc/letsencrypt/live/mailadmin.mydomain.ru/fullchain.pem; # managed by Certbot&lt;br /&gt;
     ssl_certificate_key /usr/local/etc/letsencrypt/live/mailadmin.mydomain.ru/privkey.pem; # managed by Certbot&lt;br /&gt;
     include /usr/local/etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot&lt;br /&gt;
     ssl_dhparam /usr/local/etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot&lt;br /&gt;
&lt;br /&gt;
Перезагрузка конфигурации Nginx для включения доступа по HTTPS:&lt;br /&gt;
 # service nginx reload&lt;br /&gt;
 Performing sanity check on nginx configuration:&lt;br /&gt;
 nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok&lt;br /&gt;
 nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful&lt;br /&gt;
&lt;br /&gt;
== Окончательная настройка сайта ==&lt;br /&gt;
&lt;br /&gt;
Настройки Postfix Admin по умолчанию находятся в файле /usr/local/www/mailadmin.mydomain.ru/config.inc.php. Его не рекомендуется изменять на случай обновлений пакета.&lt;br /&gt;
&lt;br /&gt;
Редактирование настроек следует делать в файле /usr/local/www/mailadmin.mydomain.ru/config.local.php (он должен начинаться с префикса):&lt;br /&gt;
 &amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
Параметр означает, что все необходимые настройки внесены в файл /usr/local/www/mailadmin.mydomain.ru/config.local.php:&lt;br /&gt;
 $CONF[&#039;configured&#039;] = true;&lt;br /&gt;
&lt;br /&gt;
Создание хеша установочного пароля:&lt;br /&gt;
 # php -r &#039;echo password_hash(&amp;quot;&amp;lt;пароль&amp;gt;&amp;quot;, PASSWORD_DEFAULT); echo &amp;quot;\n&amp;quot;;&#039;&lt;br /&gt;
 $2y$12$w7H3Vo2EIuHOHRxObmUWZ.DpsujtU5yy8PWbfYxzXBSe2tun/qjTG&lt;br /&gt;
&lt;br /&gt;
Добавление полученного хеша в файл настроек /usr/local/www/mailadmin.mydomain.ru/config.local.php:&lt;br /&gt;
 $CONF[&#039;setup_password&#039;] = &#039;$2y$12$w7H3Vo2EIuHOHRxObmUWZ.DpsujtU5yy8PWbfYxzXBSe2tun/qjTG&#039;;&lt;br /&gt;
&lt;br /&gt;
Настройка языка:&lt;br /&gt;
 $CONF[&#039;default_language&#039;] = &#039;ru&#039;;&lt;br /&gt;
&lt;br /&gt;
Пример настройки доступа Postfix Admin к СУБД в файле /usr/local/www/mailadmin.mydomain.ru/config.local.php&lt;br /&gt;
 $CONF[&#039;database_type&#039;] = &#039;mysqli&#039;;&lt;br /&gt;
 $CONF[&#039;database_host&#039;] = &#039;192.168.0.103&#039;;&lt;br /&gt;
 $CONF[&#039;database_user&#039;] = &#039;mailadmin&#039;;&lt;br /&gt;
 $CONF[&#039;database_password&#039;] = &#039;12345678&#039;;&lt;br /&gt;
 $CONF[&#039;database_name&#039;] = &#039;mailadmin&#039;;&lt;br /&gt;
&lt;br /&gt;
Настройка SMTP-сервера, куда будут отправляться уведомления о создании почтовых ящиков:&lt;br /&gt;
 $CONF[&#039;smtp_server&#039;] = &#039;192.68.0.105&#039;;&lt;br /&gt;
 $CONF[&#039;smtp_port&#039;] = &#039;25&#039;;&lt;br /&gt;
&lt;br /&gt;
Настройка способа шифрования паролей почтовых ящиков (в данном случае пароли сохраняются в базе данных Postfix Admin в открытом виде, что небезопасно):&lt;br /&gt;
 $CONF[&#039;encrypt&#039;] = &#039;cleartext&#039;;&lt;br /&gt;
&lt;br /&gt;
Настройка автоматической генерации паролей:&lt;br /&gt;
 $CONF[&#039;generate_password&#039;] = &#039;YES&#039;;&lt;br /&gt;
&lt;br /&gt;
Создание базы данных Postfix Admin:&lt;br /&gt;
 # mysql -u root -p&lt;br /&gt;
 &lt;br /&gt;
 &amp;gt; create database mailadmin;&lt;br /&gt;
 Query OK, 1 row affected (0.01 sec)&lt;br /&gt;
&lt;br /&gt;
Предоставление доступа пользователю &#039;mailadmin&#039; к базе данных &#039;mailadmin&#039; с хоста &#039;&amp;lt;IP-адрес&amp;gt;&#039; (потребуется доступ с хостов, где расположены Postfix Admin, SMTP-сервер и IMAP-сервер) и применение изменений:&lt;br /&gt;
 &amp;gt; create user &#039;mailadmin&#039;@&#039;&amp;lt;IP-адрес&amp;gt;&#039; identified by &#039;&amp;lt;пароль&amp;gt;&#039;;&lt;br /&gt;
 Query OK, 0 rows affected (0.04 sec)&lt;br /&gt;
 &lt;br /&gt;
 &amp;gt; grant all on mailadmin.* to &#039;mailadmin&#039;@&#039;&amp;lt;IP-адрес&amp;gt;&#039;;&lt;br /&gt;
 Query OK, 0 rows affected (0.00 sec)&lt;br /&gt;
 &lt;br /&gt;
 &amp;gt; flush privileges;&lt;br /&gt;
 Query OK, 0 rows affected (0.01 sec)&lt;br /&gt;
&lt;br /&gt;
Переход на сайт:&lt;br /&gt;
 https://mailadmin.mydomain.ru/setup.php&lt;br /&gt;
&lt;br /&gt;
Вывод команды содержит ошибки:&lt;br /&gt;
 Errors (MUST be fixed)&lt;br /&gt;
 ⛔Database connection string : mysql:mysql:host=192.168.128.13;dbname=mailadmin;charset=UTF8&lt;br /&gt;
 ⛔Problem connecting to database, check database configuration ($CONF[&#039;database_*&#039;] entries in config.local.php)&lt;br /&gt;
 ⛔SQLSTATE[HY000] [2002] No such file or directory&lt;br /&gt;
&lt;br /&gt;
Параметр &amp;quot;Database connection string&amp;quot; содержит строку &amp;quot;&#039;&#039;&#039;mysql:mysql:&#039;&#039;&#039;host=192.168.0.103;dbname=mailadmin;charset=UTF8&amp;quot;. Требуется исправление ошибки в функции &amp;quot;function db_connection_string()&amp;quot; в файле /usr/local/www/mailadmin.mydomain.ru/functions.inc.php:&lt;br /&gt;
 $dsn = &#039;mysql:&#039;;&lt;br /&gt;
 if ($socket) {&lt;br /&gt;
     $dsn .= &amp;quot;unix_socket={$socket}&amp;quot;;&lt;br /&gt;
 } else {&lt;br /&gt;
     $dsn .= &amp;quot;mysql:host={$CONF[&#039;database_host&#039;]}&amp;quot;;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Необходима замена строки:&lt;br /&gt;
     $dsn .= &amp;quot;mysql:host={$CONF[&#039;database_host&#039;]}&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
на строку:&lt;br /&gt;
     $dsn .= &amp;quot;host={$CONF[&#039;database_host&#039;]}&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Пример вывода сайта:&lt;br /&gt;
 &#039;&#039;&#039;Hosting Environment Check&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;Information&#039;&#039;&#039;&lt;br /&gt;
 ✅ PHP version - 8.4.5&lt;br /&gt;
 ✅ Postfixadmin public url detected as http://mailadmin.mydomain.ru/ use $CONF[&#039;site_url&#039;] to override&lt;br /&gt;
 ✅ Postfixadmin installed at - /usr/local/www/mailadmin.mydomain.ru/public&lt;br /&gt;
 ✅ config.local.php file found : /usr/local/www/mailadmin.mydomain.ru/config.local.php&lt;br /&gt;
 ✅ Database - MySQL support available&lt;br /&gt;
 ✅ Database - SQLite support available&lt;br /&gt;
 ✅ Password hashing - $CONF[&amp;quot;encrypt&amp;quot;] = cleartext&lt;br /&gt;
 ✅ Password hashing - $CONF[&amp;quot;encrypt&amp;quot;] - hash generation OK&lt;br /&gt;
 ✅ Database connection configured OK (using PDO mysql:mysql:host=10.xxx.yyy.zzz;dbname=mailadmin;charset=UTF8)&lt;br /&gt;
 ✅ Database connection - Connected OK&lt;br /&gt;
 ✅ Depends on: PHP session support - OK&lt;br /&gt;
 ✅ Depends on: PHP pcre support - OK&lt;br /&gt;
 ✅ Depends on: PHP mbstring support - OK&lt;br /&gt;
 ✅ Optional - PHP IMAP functions - OK&lt;br /&gt;
&lt;br /&gt;
Дальнейший вывод сайта:&lt;br /&gt;
 Database Update&lt;br /&gt;
 &lt;br /&gt;
 Everything seems fine... attempting to create/update database structure&lt;br /&gt;
 &lt;br /&gt;
 Updating database:&lt;br /&gt;
 &lt;br /&gt;
 - old version: 0; target version: 1845&lt;br /&gt;
 &lt;br /&gt;
   (If the update doesn&#039;t work, run setup.php?debug=1 to see the detailed error messages and SQL queries.)&lt;br /&gt;
 &lt;br /&gt;
 updating to version 1 (MySQL)...   done&lt;br /&gt;
 updating to version 2 (MySQL)...   done&lt;br /&gt;
 updating to version 3 (MySQL)...   done&lt;br /&gt;
 &#039;&#039;&#039;[список пропущен]&#039;&#039;&#039;&lt;br /&gt;
 updating to version 1843 (all databases)...   done&lt;br /&gt;
 updating to version 1844 (all databases)...   done&lt;br /&gt;
 updating to version 1845 (all databases)...   done&lt;br /&gt;
&lt;br /&gt;
Последняя строка сообщает об обновлении базы данных Postfix Admin до последней актуальной версии.&lt;br /&gt;
&lt;br /&gt;
Сайт предложит настроить учётную запись администратора, после чего можно использовать Postfix Admin для администрирования почтовых доменов, ящиков и алиасов.&lt;br /&gt;
&lt;br /&gt;
Приглашение в управление Postfix Admin:&lt;br /&gt;
[[Файл:2025050201.png|left|мини]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
Вид главной страницы Postfix Admin:&lt;br /&gt;
[[Файл:2025050202.png|left|мини]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
Пример почтового алиаса домена и домена, на который будет приходить почта:&lt;br /&gt;
[[Файл:2025050203.png|left|мини]]&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://wiki.bsdhowto.ru/index.php?title=Postfix_Admin&amp;diff=233</id>
		<title>Postfix Admin</title>
		<link rel="alternate" type="text/html" href="https://wiki.bsdhowto.ru/index.php?title=Postfix_Admin&amp;diff=233"/>
		<updated>2025-12-02T16:12:53Z</updated>

		<summary type="html">&lt;p&gt;Igor: /* Окончательная настройка сайта */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Установка postfixadmin-php84 ==&lt;br /&gt;
&lt;br /&gt;
Postfix Admin — веб-инструмент управления, написанный на PHP для Postfix (но прекрасно подходит и для Exim) с виртуальными доменами в стиле Postfix, использующими поиск в MySQL или PostgreSQL. Так-же Postfix Admin работает на Apache, Lighttpd и на любом веб-сервере с поддержкой PHP 5.1.2+.&lt;br /&gt;
&lt;br /&gt;
Подробная информация о Postfix Admin на сайте http://www.postfixadmin.org/&lt;br /&gt;
&lt;br /&gt;
Установка из пакета (предварительная установка пакетов PKG и PHP не требуется, дополнительная информация о которых в статьях [[PKG]] и [[PHP+Nginx|Установка lang/php84]]; потребуется установка СУБД, например - MySQL, дополнительная информация о которой в статье [[MySQL]]):&lt;br /&gt;
 # pkg install postfixadmin-php84&lt;br /&gt;
&lt;br /&gt;
Проверка установки postfixadmin-php84:&lt;br /&gt;
 # pkg version -v | grep php84&lt;br /&gt;
 php84-8.4.5_1                      =   up-to-date with remote&lt;br /&gt;
 php84-mbstring-8.4.5_1             =   up-to-date with remote&lt;br /&gt;
 php84-pdo-8.4.5_1                  =   up-to-date with remote&lt;br /&gt;
 php84-pdo_sqlite-8.4.5_1           =   up-to-date with remote&lt;br /&gt;
 php84-pecl-imap-1.0.3              =   up-to-date with remote&lt;br /&gt;
 php84-session-8.4.5_1              =   up-to-date with remote&lt;br /&gt;
 postfixadmin-php84-3.4.d.20211018  =   up-to-date with remote&lt;br /&gt;
&lt;br /&gt;
Вывод команды содержит список установленных расширений PHP. В списке отсутствует расширение php84-pdo_mysql, которое требуется для СУБД MySQL, если для Postfix Admin будет использована она.&lt;br /&gt;
&lt;br /&gt;
Установка из пакета расширения php84-pdo_mysql:&lt;br /&gt;
 # pkg install php84-pdo_mysql&lt;br /&gt;
 Updating FreeBSD repository catalogue...&lt;br /&gt;
 FreeBSD repository is up to date.&lt;br /&gt;
 All repositories are up to date.&lt;br /&gt;
 The following 1 package(s) will be affected (of 0 checked):&lt;br /&gt;
 &lt;br /&gt;
 New packages to be INSTALLED:&lt;br /&gt;
         php84-pdo_mysql: 8.4.5_1&lt;br /&gt;
 &lt;br /&gt;
 Number of packages to be installed: 1&lt;br /&gt;
 &lt;br /&gt;
 19 KiB to be downloaded.&lt;br /&gt;
 &lt;br /&gt;
 Proceed with this action? [y/N]: y&lt;br /&gt;
 [1/1] Fetching php84-pdo_mysql-8.4.5_1.pkg: 100%   19 KiB  19.7kB/s    00:01&lt;br /&gt;
 Checking integrity... done (0 conflicting)&lt;br /&gt;
 [1/1] Installing php84-pdo_mysql-8.4.5_1...&lt;br /&gt;
 [1/1] Extracting php84-pdo_mysql-8.4.5_1: 100%&lt;br /&gt;
 =====&lt;br /&gt;
 Message from php84-pdo_mysql-8.4.5_1:&lt;br /&gt;
 &lt;br /&gt;
 --&lt;br /&gt;
 This file has been added to automatically load the installed extension:&lt;br /&gt;
 /usr/local/etc/php/ext-30-pdo_mysql.ini.sample&lt;br /&gt;
&lt;br /&gt;
Повторная проверка установки:&lt;br /&gt;
 # pkg version -v | grep php84&lt;br /&gt;
 php84-8.4.5_1                      =   up-to-date with remote&lt;br /&gt;
 php84-mbstring-8.4.5_1             =   up-to-date with remote&lt;br /&gt;
 php84-pdo-8.4.5_1                  =   up-to-date with remote&lt;br /&gt;
 php84-pdo_mysql-8.4.5_1            =   up-to-date with remote&lt;br /&gt;
 php84-pdo_sqlite-8.4.5_1           =   up-to-date with remote&lt;br /&gt;
 php84-pecl-imap-1.0.3              =   up-to-date with remote&lt;br /&gt;
 php84-session-8.4.5_1              =   up-to-date with remote&lt;br /&gt;
 postfixadmin-php84-3.4.d.20211018  =   up-to-date with remote&lt;br /&gt;
&lt;br /&gt;
Вывод команды содержит список всех необходимых установленных расширений PHP.&lt;br /&gt;
&lt;br /&gt;
Перезапуск PHP-FPM после установки расширений PHP:&lt;br /&gt;
 # service php_fpm restart&lt;br /&gt;
 Performing sanity check on php-fpm configuration:&lt;br /&gt;
 [28-Apr-2025 16:58:14] NOTICE: configuration file /usr/local/etc/php-fpm.conf test is successful&lt;br /&gt;
 Stopping php_fpm.&lt;br /&gt;
 Performing sanity check on php-fpm configuration:&lt;br /&gt;
 [28-Apr-2025 16:58:14] NOTICE: configuration file /usr/local/etc/php-fpm.conf test is successful&lt;br /&gt;
 Starting php_fpm.&lt;br /&gt;
&lt;br /&gt;
== Начальная настройка postfixadmin-php84 ==&lt;br /&gt;
&lt;br /&gt;
Копирование структуры сайта:&lt;br /&gt;
 # cd /usr/local/www&lt;br /&gt;
 # cp -Rp postfixadmin mailadmin.mydomain.ru&lt;br /&gt;
&lt;br /&gt;
Настройка сайта Postfix Admin в файле /usr/local/etc/nginx/mailadmin.mydomain.ru.conf:&lt;br /&gt;
 server {&lt;br /&gt;
     listen       80;&lt;br /&gt;
     server_name  mailadmin.mydomain.ru;&lt;br /&gt;
 &lt;br /&gt;
     access_log   /var/log/nginx/mailadmin.mydomain.ru.access.log;&lt;br /&gt;
     error_log    /var/log/nginx/mailadmin.mydomain.ru.error.log;&lt;br /&gt;
 &lt;br /&gt;
     location / {&lt;br /&gt;
         root   /usr/local/www/mailadmin.mydomain.ru/public;&lt;br /&gt;
         index  index.php;&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000&lt;br /&gt;
     #&lt;br /&gt;
     location ~ \.php$ {&lt;br /&gt;
         fastcgi_pass   127.0.0.1:9000;&lt;br /&gt;
         fastcgi_index  index.php;&lt;br /&gt;
         fastcgi_param  SCRIPT_FILENAME  /usr/local/www/mailadmin.mydomain.ru/public$fastcgi_script_name;&lt;br /&gt;
         include        fastcgi_params;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Включение конфигурации сайта Postfix Admin в файл /usr/local/etc/nginx/nginx.conf:&lt;br /&gt;
     include /usr/local/etc/nginx/mailadmin.mydomain.ru.conf;&lt;br /&gt;
&lt;br /&gt;
Перезагрузка конфигурации Nginx после первоначальной настройки сайта для доступа к нему со стороны Let&#039;s Encrypt по HTTP:&lt;br /&gt;
 # service nginx reload&lt;br /&gt;
 Performing sanity check on nginx configuration:&lt;br /&gt;
 nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok&lt;br /&gt;
 nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful&lt;br /&gt;
&lt;br /&gt;
== Получение сертификата ==&lt;br /&gt;
&lt;br /&gt;
Получение сертификата для домена:&lt;br /&gt;
 # certbot --nginx -d mailadmin.mydomain.ru&lt;br /&gt;
&lt;br /&gt;
Скрипт включит следующие строки в файл конфигурации сайта /usr/local/etc/nginx/mailadmin.mydomain.ru.conf: &lt;br /&gt;
     listen 443 ssl; # managed by Certbot&lt;br /&gt;
     ssl_certificate /usr/local/etc/letsencrypt/live/mailadmin.mydomain.ru/fullchain.pem; # managed by Certbot&lt;br /&gt;
     ssl_certificate_key /usr/local/etc/letsencrypt/live/mailadmin.mydomain.ru/privkey.pem; # managed by Certbot&lt;br /&gt;
     include /usr/local/etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot&lt;br /&gt;
     ssl_dhparam /usr/local/etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot&lt;br /&gt;
&lt;br /&gt;
Перезагрузка конфигурации Nginx для включения доступа по HTTPS:&lt;br /&gt;
 # service nginx reload&lt;br /&gt;
 Performing sanity check on nginx configuration:&lt;br /&gt;
 nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok&lt;br /&gt;
 nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful&lt;br /&gt;
&lt;br /&gt;
== Окончательная настройка сайта ==&lt;br /&gt;
&lt;br /&gt;
Настройки Postfix Admin по умолчанию находятся в файле /usr/local/www/mailadmin.mydomain.ru/config.inc.php. Его не рекомендуется изменять на случай обновлений пакета.&lt;br /&gt;
&lt;br /&gt;
Редактирование настроек следует делать в файле /usr/local/www/mailadmin.mydomain.ru/config.local.php (он должен начинаться с префикса):&lt;br /&gt;
 &amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
Параметр означает, что все необходимые настройки внесены в файл /usr/local/www/mailadmin.mydomain.ru/config.local.php:&lt;br /&gt;
 $CONF[&#039;configured&#039;] = true;&lt;br /&gt;
&lt;br /&gt;
Создание хеша установочного пароля:&lt;br /&gt;
 # php -r &#039;echo password_hash(&amp;quot;&amp;lt;пароль&amp;gt;&amp;quot;, PASSWORD_DEFAULT); echo &amp;quot;\n&amp;quot;;&#039;&lt;br /&gt;
 $2y$12$w7H3Vo2EIuHOHRxObmUWZ.DpsujtU5yy8PWbfYxzXBSe2tun/qjTG&lt;br /&gt;
&lt;br /&gt;
Добавление полученного хеша в файл настроек /usr/local/www/mailadmin.mydomain.ru/config.local.php:&lt;br /&gt;
 $CONF[&#039;setup_password&#039;] = &#039;$2y$12$w7H3Vo2EIuHOHRxObmUWZ.DpsujtU5yy8PWbfYxzXBSe2tun/qjTG&#039;;&lt;br /&gt;
&lt;br /&gt;
Настройка языка:&lt;br /&gt;
 $CONF[&#039;default_language&#039;] = &#039;ru&#039;;&lt;br /&gt;
&lt;br /&gt;
Пример настройки доступа Postfix Admin к СУБД в файле /usr/local/www/mailadmin.mydomain.ru/config.local.php&lt;br /&gt;
 $CONF[&#039;database_type&#039;] = &#039;mysqli&#039;;&lt;br /&gt;
 $CONF[&#039;database_host&#039;] = &#039;192.168.0.103&#039;;&lt;br /&gt;
 $CONF[&#039;database_user&#039;] = &#039;mailadmin&#039;;&lt;br /&gt;
 $CONF[&#039;database_password&#039;] = &#039;12345678&#039;;&lt;br /&gt;
 $CONF[&#039;database_name&#039;] = &#039;mailadmin&#039;;&lt;br /&gt;
&lt;br /&gt;
Настройка SMTP-сервера, куда будут отправляться уведомления о создании почтовых ящиков:&lt;br /&gt;
 $CONF[&#039;smtp_server&#039;] = &#039;192.68.0.105&#039;;&lt;br /&gt;
 $CONF[&#039;smtp_port&#039;] = &#039;25&#039;;&lt;br /&gt;
&lt;br /&gt;
Настройка способа шифрования паролей почтовых ящиков (в данном случае пароли сохраняются в базе данных Postfix Admin в открытом виде, что небезопасно):&lt;br /&gt;
 $CONF[&#039;encrypt&#039;] = &#039;cleartext&#039;;&lt;br /&gt;
&lt;br /&gt;
Настройка автоматической генерации паролей:&lt;br /&gt;
 $CONF[&#039;generate_password&#039;] = &#039;YES&#039;;&lt;br /&gt;
&lt;br /&gt;
Создание базы данных Postfix Admin:&lt;br /&gt;
 # mysql -u root -p&lt;br /&gt;
 &lt;br /&gt;
 &amp;gt; create database mailadmin;&lt;br /&gt;
 Query OK, 1 row affected (0.01 sec)&lt;br /&gt;
&lt;br /&gt;
Предоставление доступа пользователю &#039;mailadmin&#039; к базе данных &#039;mailadmin&#039; с хоста &#039;&amp;lt;IP-адрес&amp;gt;&#039; (потребуется доступ с хостов, где расположены Postfix Admin, SMTP-сервер и IMAP-сервер) и применение изменений:&lt;br /&gt;
 &amp;gt; create user &#039;mailadmin&#039;@&#039;&amp;lt;IP-адрес&amp;gt;&#039; identified by &#039;&amp;lt;пароль&amp;gt;&#039;;&lt;br /&gt;
 Query OK, 0 rows affected (0.04 sec)&lt;br /&gt;
 &lt;br /&gt;
 &amp;gt; grant all on mailadmin.* to &#039;mailadmin&#039;@&#039;&amp;lt;IP-адрес&amp;gt;&#039;;&lt;br /&gt;
 Query OK, 0 rows affected (0.00 sec)&lt;br /&gt;
 &lt;br /&gt;
 &amp;gt; flush privileges;&lt;br /&gt;
 Query OK, 0 rows affected (0.01 sec)&lt;br /&gt;
&lt;br /&gt;
Переход на сайт:&lt;br /&gt;
 https://mailadmin.mydomain.ru/setup.php&lt;br /&gt;
&lt;br /&gt;
Пример вывода сайта:&lt;br /&gt;
 &#039;&#039;&#039;Hosting Environment Check&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;Information&#039;&#039;&#039;&lt;br /&gt;
 ✅ PHP version - 8.4.5&lt;br /&gt;
 ✅ Postfixadmin public url detected as http://mailadmin.mydomain.ru/ use $CONF[&#039;site_url&#039;] to override&lt;br /&gt;
 ✅ Postfixadmin installed at - /usr/local/www/mailadmin.mydomain.ru/public&lt;br /&gt;
 ✅ config.local.php file found : /usr/local/www/mailadmin.mydomain.ru/config.local.php&lt;br /&gt;
 ✅ Database - MySQL support available&lt;br /&gt;
 ✅ Database - SQLite support available&lt;br /&gt;
 ✅ Password hashing - $CONF[&amp;quot;encrypt&amp;quot;] = cleartext&lt;br /&gt;
 ✅ Password hashing - $CONF[&amp;quot;encrypt&amp;quot;] - hash generation OK&lt;br /&gt;
 ✅ Database connection configured OK (using PDO mysql:mysql:host=10.xxx.yyy.zzz;dbname=mailadmin;charset=UTF8)&lt;br /&gt;
 ✅ Database connection - Connected OK&lt;br /&gt;
 ✅ Depends on: PHP session support - OK&lt;br /&gt;
 ✅ Depends on: PHP pcre support - OK&lt;br /&gt;
 ✅ Depends on: PHP mbstring support - OK&lt;br /&gt;
 ✅ Optional - PHP IMAP functions - OK&lt;br /&gt;
&lt;br /&gt;
Дальнейший вывод сайта:&lt;br /&gt;
 Database Update&lt;br /&gt;
 &lt;br /&gt;
 Everything seems fine... attempting to create/update database structure&lt;br /&gt;
 &lt;br /&gt;
 Updating database:&lt;br /&gt;
 &lt;br /&gt;
 - old version: 0; target version: 1845&lt;br /&gt;
 &lt;br /&gt;
   (If the update doesn&#039;t work, run setup.php?debug=1 to see the detailed error messages and SQL queries.)&lt;br /&gt;
 &lt;br /&gt;
 updating to version 1 (MySQL)...   done&lt;br /&gt;
 updating to version 2 (MySQL)...   done&lt;br /&gt;
 updating to version 3 (MySQL)...   done&lt;br /&gt;
 &#039;&#039;&#039;[список пропущен]&#039;&#039;&#039;&lt;br /&gt;
 updating to version 1843 (all databases)...   done&lt;br /&gt;
 updating to version 1844 (all databases)...   done&lt;br /&gt;
 updating to version 1845 (all databases)...   done&lt;br /&gt;
&lt;br /&gt;
Последняя строка сообщает об обновлении базы данных Postfix Admin до последней актуальной версии.&lt;br /&gt;
&lt;br /&gt;
Сайт предложит настроить учётную запись администратора, после чего можно использовать Postfix Admin для администрирования почтовых доменов, ящиков и алиасов.&lt;br /&gt;
&lt;br /&gt;
Приглашение в управление Postfix Admin:&lt;br /&gt;
[[Файл:2025050201.png|left|мини]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
Вид главной страницы Postfix Admin:&lt;br /&gt;
[[Файл:2025050202.png|left|мини]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
Пример почтового алиаса домена и домена, на который будет приходить почта:&lt;br /&gt;
[[Файл:2025050203.png|left|мини]]&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://wiki.bsdhowto.ru/index.php?title=Postfix_Admin&amp;diff=232</id>
		<title>Postfix Admin</title>
		<link rel="alternate" type="text/html" href="https://wiki.bsdhowto.ru/index.php?title=Postfix_Admin&amp;diff=232"/>
		<updated>2025-12-02T16:11:03Z</updated>

		<summary type="html">&lt;p&gt;Igor: /* Окончательная настройка сайта */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Установка postfixadmin-php84 ==&lt;br /&gt;
&lt;br /&gt;
Postfix Admin — веб-инструмент управления, написанный на PHP для Postfix (но прекрасно подходит и для Exim) с виртуальными доменами в стиле Postfix, использующими поиск в MySQL или PostgreSQL. Так-же Postfix Admin работает на Apache, Lighttpd и на любом веб-сервере с поддержкой PHP 5.1.2+.&lt;br /&gt;
&lt;br /&gt;
Подробная информация о Postfix Admin на сайте http://www.postfixadmin.org/&lt;br /&gt;
&lt;br /&gt;
Установка из пакета (предварительная установка пакетов PKG и PHP не требуется, дополнительная информация о которых в статьях [[PKG]] и [[PHP+Nginx|Установка lang/php84]]; потребуется установка СУБД, например - MySQL, дополнительная информация о которой в статье [[MySQL]]):&lt;br /&gt;
 # pkg install postfixadmin-php84&lt;br /&gt;
&lt;br /&gt;
Проверка установки postfixadmin-php84:&lt;br /&gt;
 # pkg version -v | grep php84&lt;br /&gt;
 php84-8.4.5_1                      =   up-to-date with remote&lt;br /&gt;
 php84-mbstring-8.4.5_1             =   up-to-date with remote&lt;br /&gt;
 php84-pdo-8.4.5_1                  =   up-to-date with remote&lt;br /&gt;
 php84-pdo_sqlite-8.4.5_1           =   up-to-date with remote&lt;br /&gt;
 php84-pecl-imap-1.0.3              =   up-to-date with remote&lt;br /&gt;
 php84-session-8.4.5_1              =   up-to-date with remote&lt;br /&gt;
 postfixadmin-php84-3.4.d.20211018  =   up-to-date with remote&lt;br /&gt;
&lt;br /&gt;
Вывод команды содержит список установленных расширений PHP. В списке отсутствует расширение php84-pdo_mysql, которое требуется для СУБД MySQL, если для Postfix Admin будет использована она.&lt;br /&gt;
&lt;br /&gt;
Установка из пакета расширения php84-pdo_mysql:&lt;br /&gt;
 # pkg install php84-pdo_mysql&lt;br /&gt;
 Updating FreeBSD repository catalogue...&lt;br /&gt;
 FreeBSD repository is up to date.&lt;br /&gt;
 All repositories are up to date.&lt;br /&gt;
 The following 1 package(s) will be affected (of 0 checked):&lt;br /&gt;
 &lt;br /&gt;
 New packages to be INSTALLED:&lt;br /&gt;
         php84-pdo_mysql: 8.4.5_1&lt;br /&gt;
 &lt;br /&gt;
 Number of packages to be installed: 1&lt;br /&gt;
 &lt;br /&gt;
 19 KiB to be downloaded.&lt;br /&gt;
 &lt;br /&gt;
 Proceed with this action? [y/N]: y&lt;br /&gt;
 [1/1] Fetching php84-pdo_mysql-8.4.5_1.pkg: 100%   19 KiB  19.7kB/s    00:01&lt;br /&gt;
 Checking integrity... done (0 conflicting)&lt;br /&gt;
 [1/1] Installing php84-pdo_mysql-8.4.5_1...&lt;br /&gt;
 [1/1] Extracting php84-pdo_mysql-8.4.5_1: 100%&lt;br /&gt;
 =====&lt;br /&gt;
 Message from php84-pdo_mysql-8.4.5_1:&lt;br /&gt;
 &lt;br /&gt;
 --&lt;br /&gt;
 This file has been added to automatically load the installed extension:&lt;br /&gt;
 /usr/local/etc/php/ext-30-pdo_mysql.ini.sample&lt;br /&gt;
&lt;br /&gt;
Повторная проверка установки:&lt;br /&gt;
 # pkg version -v | grep php84&lt;br /&gt;
 php84-8.4.5_1                      =   up-to-date with remote&lt;br /&gt;
 php84-mbstring-8.4.5_1             =   up-to-date with remote&lt;br /&gt;
 php84-pdo-8.4.5_1                  =   up-to-date with remote&lt;br /&gt;
 php84-pdo_mysql-8.4.5_1            =   up-to-date with remote&lt;br /&gt;
 php84-pdo_sqlite-8.4.5_1           =   up-to-date with remote&lt;br /&gt;
 php84-pecl-imap-1.0.3              =   up-to-date with remote&lt;br /&gt;
 php84-session-8.4.5_1              =   up-to-date with remote&lt;br /&gt;
 postfixadmin-php84-3.4.d.20211018  =   up-to-date with remote&lt;br /&gt;
&lt;br /&gt;
Вывод команды содержит список всех необходимых установленных расширений PHP.&lt;br /&gt;
&lt;br /&gt;
Перезапуск PHP-FPM после установки расширений PHP:&lt;br /&gt;
 # service php_fpm restart&lt;br /&gt;
 Performing sanity check on php-fpm configuration:&lt;br /&gt;
 [28-Apr-2025 16:58:14] NOTICE: configuration file /usr/local/etc/php-fpm.conf test is successful&lt;br /&gt;
 Stopping php_fpm.&lt;br /&gt;
 Performing sanity check on php-fpm configuration:&lt;br /&gt;
 [28-Apr-2025 16:58:14] NOTICE: configuration file /usr/local/etc/php-fpm.conf test is successful&lt;br /&gt;
 Starting php_fpm.&lt;br /&gt;
&lt;br /&gt;
== Начальная настройка postfixadmin-php84 ==&lt;br /&gt;
&lt;br /&gt;
Копирование структуры сайта:&lt;br /&gt;
 # cd /usr/local/www&lt;br /&gt;
 # cp -Rp postfixadmin mailadmin.mydomain.ru&lt;br /&gt;
&lt;br /&gt;
Настройка сайта Postfix Admin в файле /usr/local/etc/nginx/mailadmin.mydomain.ru.conf:&lt;br /&gt;
 server {&lt;br /&gt;
     listen       80;&lt;br /&gt;
     server_name  mailadmin.mydomain.ru;&lt;br /&gt;
 &lt;br /&gt;
     access_log   /var/log/nginx/mailadmin.mydomain.ru.access.log;&lt;br /&gt;
     error_log    /var/log/nginx/mailadmin.mydomain.ru.error.log;&lt;br /&gt;
 &lt;br /&gt;
     location / {&lt;br /&gt;
         root   /usr/local/www/mailadmin.mydomain.ru/public;&lt;br /&gt;
         index  index.php;&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000&lt;br /&gt;
     #&lt;br /&gt;
     location ~ \.php$ {&lt;br /&gt;
         fastcgi_pass   127.0.0.1:9000;&lt;br /&gt;
         fastcgi_index  index.php;&lt;br /&gt;
         fastcgi_param  SCRIPT_FILENAME  /usr/local/www/mailadmin.mydomain.ru/public$fastcgi_script_name;&lt;br /&gt;
         include        fastcgi_params;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Включение конфигурации сайта Postfix Admin в файл /usr/local/etc/nginx/nginx.conf:&lt;br /&gt;
     include /usr/local/etc/nginx/mailadmin.mydomain.ru.conf;&lt;br /&gt;
&lt;br /&gt;
Перезагрузка конфигурации Nginx после первоначальной настройки сайта для доступа к нему со стороны Let&#039;s Encrypt по HTTP:&lt;br /&gt;
 # service nginx reload&lt;br /&gt;
 Performing sanity check on nginx configuration:&lt;br /&gt;
 nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok&lt;br /&gt;
 nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful&lt;br /&gt;
&lt;br /&gt;
== Получение сертификата ==&lt;br /&gt;
&lt;br /&gt;
Получение сертификата для домена:&lt;br /&gt;
 # certbot --nginx -d mailadmin.mydomain.ru&lt;br /&gt;
&lt;br /&gt;
Скрипт включит следующие строки в файл конфигурации сайта /usr/local/etc/nginx/mailadmin.mydomain.ru.conf: &lt;br /&gt;
     listen 443 ssl; # managed by Certbot&lt;br /&gt;
     ssl_certificate /usr/local/etc/letsencrypt/live/mailadmin.mydomain.ru/fullchain.pem; # managed by Certbot&lt;br /&gt;
     ssl_certificate_key /usr/local/etc/letsencrypt/live/mailadmin.mydomain.ru/privkey.pem; # managed by Certbot&lt;br /&gt;
     include /usr/local/etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot&lt;br /&gt;
     ssl_dhparam /usr/local/etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot&lt;br /&gt;
&lt;br /&gt;
Перезагрузка конфигурации Nginx для включения доступа по HTTPS:&lt;br /&gt;
 # service nginx reload&lt;br /&gt;
 Performing sanity check on nginx configuration:&lt;br /&gt;
 nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok&lt;br /&gt;
 nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful&lt;br /&gt;
&lt;br /&gt;
== Окончательная настройка сайта ==&lt;br /&gt;
&lt;br /&gt;
Настройки Postfix Admin по умолчанию находятся в файле /usr/local/www/mailadmin.mydomain.ru/config.inc.php. Его не рекомендуется изменять на случай обновлений пакета.&lt;br /&gt;
&lt;br /&gt;
Редактирование настроек следует делать в файле /usr/local/www/mailadmin.mydomain.ru/config.local.php (он должен начинаться с префикса):&lt;br /&gt;
 &amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
Параметр означает, что все необходимые настройки внесены в файл /usr/local/www/mailadmin.mydomain.ru/config.local.php:&lt;br /&gt;
 $CONF[&#039;configured&#039;] = true;&lt;br /&gt;
&lt;br /&gt;
Создание хеша установочного пароля:&lt;br /&gt;
 # php -r &#039;echo password_hash(&amp;quot;&amp;lt;пароль&amp;gt;&amp;quot;, PASSWORD_DEFAULT); echo &amp;quot;\n&amp;quot;;&#039;&lt;br /&gt;
 $2y$12$w7H3Vo2EIuHOHRxObmUWZ.DpsujtU5yy8PWbfYxzXBSe2tun/qjTG&lt;br /&gt;
&lt;br /&gt;
Добавление полученного хеша в файл настроек /usr/local/www/mailadmin.mydomain.ru/config.local.php:&lt;br /&gt;
 $CONF[&#039;setup_password&#039;] = &#039;$2y$12$w7H3Vo2EIuHOHRxObmUWZ.DpsujtU5yy8PWbfYxzXBSe2tun/qjTG&#039;;&lt;br /&gt;
&lt;br /&gt;
Настройка языка:&lt;br /&gt;
 $CONF[&#039;default_language&#039;] = &#039;ru&#039;;&lt;br /&gt;
&lt;br /&gt;
Пример настройки доступа Postfix Admin к СУБД в файле /usr/local/www/mailadmin.mydomain.ru/config.local.php&lt;br /&gt;
 $CONF[&#039;database_type&#039;] = &#039;mysqli&#039;;&lt;br /&gt;
 $CONF[&#039;database_host&#039;] = &#039;192.168.0.103&#039;;&lt;br /&gt;
 $CONF[&#039;database_user&#039;] = &#039;mailadmin&#039;;&lt;br /&gt;
 $CONF[&#039;database_password&#039;] = &#039;12345678&#039;;&lt;br /&gt;
 $CONF[&#039;database_name&#039;] = &#039;mailadmin&#039;;&lt;br /&gt;
&lt;br /&gt;
Настройка SMTP-сервера, куда будут отправляться уведомления о создании почтовых ящиков:&lt;br /&gt;
 $CONF[&#039;smtp_server&#039;] = &#039;192.68.0.105&#039;;&lt;br /&gt;
 $CONF[&#039;smtp_port&#039;] = &#039;25&#039;;&lt;br /&gt;
&lt;br /&gt;
Настройка способа шифрования паролей почтовых ящиков (в данном случае пароли сохраняются в базе данных Postfix Admin в открытом виде, что небезопасно):&lt;br /&gt;
 $CONF[&#039;encrypt&#039;] = &#039;cleartext&#039;;&lt;br /&gt;
&lt;br /&gt;
Настройка автоматической генерации паролей:&lt;br /&gt;
 $CONF[&#039;generate_password&#039;] = &#039;YES&#039;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Создание базы данных Postfix Admin:&lt;br /&gt;
 # mysql -u root -p&lt;br /&gt;
 &lt;br /&gt;
 &amp;gt; create database mailadmin;&lt;br /&gt;
 Query OK, 1 row affected (0.01 sec)&lt;br /&gt;
&lt;br /&gt;
Предоставление доступа пользователю &#039;mailadmin&#039; к базе данных &#039;mailadmin&#039; с хоста &#039;&amp;lt;IP-адрес&amp;gt;&#039; (потребуется доступ с хостов, где расположены Postfix Admin, SMTP-сервер и IMAP-сервер) и применение изменений:&lt;br /&gt;
 &amp;gt; create user &#039;mailadmin&#039;@&#039;&amp;lt;IP-адрес&amp;gt;&#039; identified by &#039;&amp;lt;пароль&amp;gt;&#039;;&lt;br /&gt;
 Query OK, 0 rows affected (0.04 sec)&lt;br /&gt;
 &lt;br /&gt;
 &amp;gt; grant all on mailadmin.* to &#039;mailadmin&#039;@&#039;&amp;lt;IP-адрес&amp;gt;&#039;;&lt;br /&gt;
 Query OK, 0 rows affected (0.00 sec)&lt;br /&gt;
 &lt;br /&gt;
 &amp;gt; flush privileges;&lt;br /&gt;
 Query OK, 0 rows affected (0.01 sec)&lt;br /&gt;
&lt;br /&gt;
Переход на сайт:&lt;br /&gt;
 https://mailadmin.mydomain.ru/setup.php&lt;br /&gt;
&lt;br /&gt;
Пример вывода сайта:&lt;br /&gt;
 &#039;&#039;&#039;Hosting Environment Check&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;Information&#039;&#039;&#039;&lt;br /&gt;
 ✅ PHP version - 8.4.5&lt;br /&gt;
 ✅ Postfixadmin public url detected as http://mailadmin.mydomain.ru/ use $CONF[&#039;site_url&#039;] to override&lt;br /&gt;
 ✅ Postfixadmin installed at - /usr/local/www/mailadmin.mydomain.ru/public&lt;br /&gt;
 ✅ config.local.php file found : /usr/local/www/mailadmin.mydomain.ru/config.local.php&lt;br /&gt;
 ✅ Database - MySQL support available&lt;br /&gt;
 ✅ Database - SQLite support available&lt;br /&gt;
 ✅ Password hashing - $CONF[&amp;quot;encrypt&amp;quot;] = cleartext&lt;br /&gt;
 ✅ Password hashing - $CONF[&amp;quot;encrypt&amp;quot;] - hash generation OK&lt;br /&gt;
 ✅ Database connection configured OK (using PDO mysql:mysql:host=10.xxx.yyy.zzz;dbname=mailadmin;charset=UTF8)&lt;br /&gt;
 ✅ Database connection - Connected OK&lt;br /&gt;
 ✅ Depends on: PHP session support - OK&lt;br /&gt;
 ✅ Depends on: PHP pcre support - OK&lt;br /&gt;
 ✅ Depends on: PHP mbstring support - OK&lt;br /&gt;
 ✅ Optional - PHP IMAP functions - OK&lt;br /&gt;
&lt;br /&gt;
Дальнейший вывод сайта:&lt;br /&gt;
 Database Update&lt;br /&gt;
 &lt;br /&gt;
 Everything seems fine... attempting to create/update database structure&lt;br /&gt;
 &lt;br /&gt;
 Updating database:&lt;br /&gt;
 &lt;br /&gt;
 - old version: 0; target version: 1845&lt;br /&gt;
 &lt;br /&gt;
   (If the update doesn&#039;t work, run setup.php?debug=1 to see the detailed error messages and SQL queries.)&lt;br /&gt;
 &lt;br /&gt;
 updating to version 1 (MySQL)...   done&lt;br /&gt;
 updating to version 2 (MySQL)...   done&lt;br /&gt;
 updating to version 3 (MySQL)...   done&lt;br /&gt;
 &#039;&#039;&#039;[список пропущен]&#039;&#039;&#039;&lt;br /&gt;
 updating to version 1843 (all databases)...   done&lt;br /&gt;
 updating to version 1844 (all databases)...   done&lt;br /&gt;
 updating to version 1845 (all databases)...   done&lt;br /&gt;
&lt;br /&gt;
Последняя строка сообщает об обновлении базы данных Postfix Admin до последней актуальной версии.&lt;br /&gt;
&lt;br /&gt;
Сайт предложит настроить учётную запись администратора, после чего можно использовать Postfix Admin для администрирования почтовых доменов, ящиков и алиасов.&lt;br /&gt;
&lt;br /&gt;
Приглашение в управление Postfix Admin:&lt;br /&gt;
[[Файл:2025050201.png|left|мини]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
Вид главной страницы Postfix Admin:&lt;br /&gt;
[[Файл:2025050202.png|left|мини]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
Пример почтового алиаса домена и домена, на который будет приходить почта:&lt;br /&gt;
[[Файл:2025050203.png|left|мини]]&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://wiki.bsdhowto.ru/index.php?title=Postfix_Admin&amp;diff=231</id>
		<title>Postfix Admin</title>
		<link rel="alternate" type="text/html" href="https://wiki.bsdhowto.ru/index.php?title=Postfix_Admin&amp;diff=231"/>
		<updated>2025-12-02T15:38:36Z</updated>

		<summary type="html">&lt;p&gt;Igor: /* Окончательная настройка сайта */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Установка postfixadmin-php84 ==&lt;br /&gt;
&lt;br /&gt;
Postfix Admin — веб-инструмент управления, написанный на PHP для Postfix (но прекрасно подходит и для Exim) с виртуальными доменами в стиле Postfix, использующими поиск в MySQL или PostgreSQL. Так-же Postfix Admin работает на Apache, Lighttpd и на любом веб-сервере с поддержкой PHP 5.1.2+.&lt;br /&gt;
&lt;br /&gt;
Подробная информация о Postfix Admin на сайте http://www.postfixadmin.org/&lt;br /&gt;
&lt;br /&gt;
Установка из пакета (предварительная установка пакетов PKG и PHP не требуется, дополнительная информация о которых в статьях [[PKG]] и [[PHP+Nginx|Установка lang/php84]]; потребуется установка СУБД, например - MySQL, дополнительная информация о которой в статье [[MySQL]]):&lt;br /&gt;
 # pkg install postfixadmin-php84&lt;br /&gt;
&lt;br /&gt;
Проверка установки postfixadmin-php84:&lt;br /&gt;
 # pkg version -v | grep php84&lt;br /&gt;
 php84-8.4.5_1                      =   up-to-date with remote&lt;br /&gt;
 php84-mbstring-8.4.5_1             =   up-to-date with remote&lt;br /&gt;
 php84-pdo-8.4.5_1                  =   up-to-date with remote&lt;br /&gt;
 php84-pdo_sqlite-8.4.5_1           =   up-to-date with remote&lt;br /&gt;
 php84-pecl-imap-1.0.3              =   up-to-date with remote&lt;br /&gt;
 php84-session-8.4.5_1              =   up-to-date with remote&lt;br /&gt;
 postfixadmin-php84-3.4.d.20211018  =   up-to-date with remote&lt;br /&gt;
&lt;br /&gt;
Вывод команды содержит список установленных расширений PHP. В списке отсутствует расширение php84-pdo_mysql, которое требуется для СУБД MySQL, если для Postfix Admin будет использована она.&lt;br /&gt;
&lt;br /&gt;
Установка из пакета расширения php84-pdo_mysql:&lt;br /&gt;
 # pkg install php84-pdo_mysql&lt;br /&gt;
 Updating FreeBSD repository catalogue...&lt;br /&gt;
 FreeBSD repository is up to date.&lt;br /&gt;
 All repositories are up to date.&lt;br /&gt;
 The following 1 package(s) will be affected (of 0 checked):&lt;br /&gt;
 &lt;br /&gt;
 New packages to be INSTALLED:&lt;br /&gt;
         php84-pdo_mysql: 8.4.5_1&lt;br /&gt;
 &lt;br /&gt;
 Number of packages to be installed: 1&lt;br /&gt;
 &lt;br /&gt;
 19 KiB to be downloaded.&lt;br /&gt;
 &lt;br /&gt;
 Proceed with this action? [y/N]: y&lt;br /&gt;
 [1/1] Fetching php84-pdo_mysql-8.4.5_1.pkg: 100%   19 KiB  19.7kB/s    00:01&lt;br /&gt;
 Checking integrity... done (0 conflicting)&lt;br /&gt;
 [1/1] Installing php84-pdo_mysql-8.4.5_1...&lt;br /&gt;
 [1/1] Extracting php84-pdo_mysql-8.4.5_1: 100%&lt;br /&gt;
 =====&lt;br /&gt;
 Message from php84-pdo_mysql-8.4.5_1:&lt;br /&gt;
 &lt;br /&gt;
 --&lt;br /&gt;
 This file has been added to automatically load the installed extension:&lt;br /&gt;
 /usr/local/etc/php/ext-30-pdo_mysql.ini.sample&lt;br /&gt;
&lt;br /&gt;
Повторная проверка установки:&lt;br /&gt;
 # pkg version -v | grep php84&lt;br /&gt;
 php84-8.4.5_1                      =   up-to-date with remote&lt;br /&gt;
 php84-mbstring-8.4.5_1             =   up-to-date with remote&lt;br /&gt;
 php84-pdo-8.4.5_1                  =   up-to-date with remote&lt;br /&gt;
 php84-pdo_mysql-8.4.5_1            =   up-to-date with remote&lt;br /&gt;
 php84-pdo_sqlite-8.4.5_1           =   up-to-date with remote&lt;br /&gt;
 php84-pecl-imap-1.0.3              =   up-to-date with remote&lt;br /&gt;
 php84-session-8.4.5_1              =   up-to-date with remote&lt;br /&gt;
 postfixadmin-php84-3.4.d.20211018  =   up-to-date with remote&lt;br /&gt;
&lt;br /&gt;
Вывод команды содержит список всех необходимых установленных расширений PHP.&lt;br /&gt;
&lt;br /&gt;
Перезапуск PHP-FPM после установки расширений PHP:&lt;br /&gt;
 # service php_fpm restart&lt;br /&gt;
 Performing sanity check on php-fpm configuration:&lt;br /&gt;
 [28-Apr-2025 16:58:14] NOTICE: configuration file /usr/local/etc/php-fpm.conf test is successful&lt;br /&gt;
 Stopping php_fpm.&lt;br /&gt;
 Performing sanity check on php-fpm configuration:&lt;br /&gt;
 [28-Apr-2025 16:58:14] NOTICE: configuration file /usr/local/etc/php-fpm.conf test is successful&lt;br /&gt;
 Starting php_fpm.&lt;br /&gt;
&lt;br /&gt;
== Начальная настройка postfixadmin-php84 ==&lt;br /&gt;
&lt;br /&gt;
Копирование структуры сайта:&lt;br /&gt;
 # cd /usr/local/www&lt;br /&gt;
 # cp -Rp postfixadmin mailadmin.mydomain.ru&lt;br /&gt;
&lt;br /&gt;
Настройка сайта Postfix Admin в файле /usr/local/etc/nginx/mailadmin.mydomain.ru.conf:&lt;br /&gt;
 server {&lt;br /&gt;
     listen       80;&lt;br /&gt;
     server_name  mailadmin.mydomain.ru;&lt;br /&gt;
 &lt;br /&gt;
     access_log   /var/log/nginx/mailadmin.mydomain.ru.access.log;&lt;br /&gt;
     error_log    /var/log/nginx/mailadmin.mydomain.ru.error.log;&lt;br /&gt;
 &lt;br /&gt;
     location / {&lt;br /&gt;
         root   /usr/local/www/mailadmin.mydomain.ru/public;&lt;br /&gt;
         index  index.php;&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000&lt;br /&gt;
     #&lt;br /&gt;
     location ~ \.php$ {&lt;br /&gt;
         fastcgi_pass   127.0.0.1:9000;&lt;br /&gt;
         fastcgi_index  index.php;&lt;br /&gt;
         fastcgi_param  SCRIPT_FILENAME  /usr/local/www/mailadmin.mydomain.ru/public$fastcgi_script_name;&lt;br /&gt;
         include        fastcgi_params;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Включение конфигурации сайта Postfix Admin в файл /usr/local/etc/nginx/nginx.conf:&lt;br /&gt;
     include /usr/local/etc/nginx/mailadmin.mydomain.ru.conf;&lt;br /&gt;
&lt;br /&gt;
Перезагрузка конфигурации Nginx после первоначальной настройки сайта для доступа к нему со стороны Let&#039;s Encrypt по HTTP:&lt;br /&gt;
 # service nginx reload&lt;br /&gt;
 Performing sanity check on nginx configuration:&lt;br /&gt;
 nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok&lt;br /&gt;
 nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful&lt;br /&gt;
&lt;br /&gt;
== Получение сертификата ==&lt;br /&gt;
&lt;br /&gt;
Получение сертификата для домена:&lt;br /&gt;
 # certbot --nginx -d mailadmin.mydomain.ru&lt;br /&gt;
&lt;br /&gt;
Скрипт включит следующие строки в файл конфигурации сайта /usr/local/etc/nginx/mailadmin.mydomain.ru.conf: &lt;br /&gt;
     listen 443 ssl; # managed by Certbot&lt;br /&gt;
     ssl_certificate /usr/local/etc/letsencrypt/live/mailadmin.mydomain.ru/fullchain.pem; # managed by Certbot&lt;br /&gt;
     ssl_certificate_key /usr/local/etc/letsencrypt/live/mailadmin.mydomain.ru/privkey.pem; # managed by Certbot&lt;br /&gt;
     include /usr/local/etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot&lt;br /&gt;
     ssl_dhparam /usr/local/etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot&lt;br /&gt;
&lt;br /&gt;
Перезагрузка конфигурации Nginx для включения доступа по HTTPS:&lt;br /&gt;
 # service nginx reload&lt;br /&gt;
 Performing sanity check on nginx configuration:&lt;br /&gt;
 nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok&lt;br /&gt;
 nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful&lt;br /&gt;
&lt;br /&gt;
== Окончательная настройка сайта ==&lt;br /&gt;
&lt;br /&gt;
Настройки Postfix Admin по умолчанию находятся в файле /usr/local/www/mailadmin.mydomain.ru/config.inc.php. Его не рекомендуется изменять на случай обновлений пакета.&lt;br /&gt;
&lt;br /&gt;
Редактирование настроек следует делать в файле /usr/local/www/mailadmin.mydomain.ru/config.local.php (он должен начинаться с префикса):&lt;br /&gt;
 &amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
Параметр подразумевает, что все необходимые настройки внесены в файл /usr/local/www/mailadmin.mydomain.ru/config.local.php:&lt;br /&gt;
 $CONF[&#039;configured&#039;] = true;&lt;br /&gt;
&lt;br /&gt;
Создание хеша установочного пароля:&lt;br /&gt;
 # php -r &#039;echo password_hash(&amp;quot;&amp;lt;пароль&amp;gt;&amp;quot;, PASSWORD_DEFAULT); echo &amp;quot;\n&amp;quot;;&#039;&lt;br /&gt;
 $2y$12$w7H3Vo2EIuHOHRxObmUWZ.DpsujtU5yy8PWbfYxzXBSe2tun/qjTG&lt;br /&gt;
&lt;br /&gt;
Добавление полученного хеша файл настроек /usr/local/www/mailadmin.mydomain.ru/config.local.php:&lt;br /&gt;
 $CONF[&#039;setup_password&#039;] = &#039;$2y$12$w7H3Vo2EIuHOHRxObmUWZ.DpsujtU5yy8PWbfYxzXBSe2tun/qjTG&#039;;&lt;br /&gt;
&lt;br /&gt;
Настройка языка:&lt;br /&gt;
 $CONF[&#039;default_language&#039;] = &#039;ru&#039;;&lt;br /&gt;
&lt;br /&gt;
Пример настройки доступа Postfix Admin к СУБД в файле /usr/local/www/mailadmin.mydomain.ru/config.local.php&lt;br /&gt;
 $CONF[&#039;database_type&#039;] = &#039;mysqli&#039;;&lt;br /&gt;
 $CONF[&#039;database_host&#039;] = &#039;192.168.0.103&#039;;&lt;br /&gt;
 $CONF[&#039;database_user&#039;] = &#039;mailadmin&#039;;&lt;br /&gt;
 $CONF[&#039;database_password&#039;] = &#039;12345678&#039;;&lt;br /&gt;
 $CONF[&#039;database_name&#039;] = &#039;mailadmin&#039;;&lt;br /&gt;
&lt;br /&gt;
Пример способа шифрования паролей почтовых ящиков (в данном случае пароли сохраняються в базе данных Postfix Admin в открытом виде, что небезопасно):&lt;br /&gt;
 $CONF[&#039;encrypt&#039;] = &#039;cleartext&#039;;&lt;br /&gt;
&lt;br /&gt;
Создание базы данных Postfix Admin:&lt;br /&gt;
 # mysql -u root -p&lt;br /&gt;
 &lt;br /&gt;
 &amp;gt; create database mailadmin;&lt;br /&gt;
 Query OK, 1 row affected (0.01 sec)&lt;br /&gt;
&lt;br /&gt;
Предоставление доступа пользователю &#039;mailadmin&#039; к базе данных &#039;mailadmin&#039; с хоста &#039;&amp;lt;IP-адрес&amp;gt;&#039; (потребуется доступ с хостов, где расположены Postfix Admin, SMTP-сервер и IMAP-сервер) и применение изменений:&lt;br /&gt;
 &amp;gt; create user &#039;mailadmin&#039;@&#039;&amp;lt;IP-адрес&amp;gt;&#039; identified by &#039;&amp;lt;пароль&amp;gt;&#039;;&lt;br /&gt;
 Query OK, 0 rows affected (0.04 sec)&lt;br /&gt;
 &lt;br /&gt;
 &amp;gt; grant all on mailadmin.* to &#039;mailadmin&#039;@&#039;&amp;lt;IP-адрес&amp;gt;&#039;;&lt;br /&gt;
 Query OK, 0 rows affected (0.00 sec)&lt;br /&gt;
 &lt;br /&gt;
 &amp;gt; flush privileges;&lt;br /&gt;
 Query OK, 0 rows affected (0.01 sec)&lt;br /&gt;
&lt;br /&gt;
Переход на сайт:&lt;br /&gt;
 https://mailadmin.mydomain.ru/setup.php&lt;br /&gt;
&lt;br /&gt;
Пример вывода сайта:&lt;br /&gt;
 &#039;&#039;&#039;Hosting Environment Check&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;Information&#039;&#039;&#039;&lt;br /&gt;
 ✅ PHP version - 8.4.5&lt;br /&gt;
 ✅ Postfixadmin public url detected as http://mailadmin.mydomain.ru/ use $CONF[&#039;site_url&#039;] to override&lt;br /&gt;
 ✅ Postfixadmin installed at - /usr/local/www/mailadmin.mydomain.ru/public&lt;br /&gt;
 ✅ config.local.php file found : /usr/local/www/mailadmin.mydomain.ru/config.local.php&lt;br /&gt;
 ✅ Database - MySQL support available&lt;br /&gt;
 ✅ Database - SQLite support available&lt;br /&gt;
 ✅ Password hashing - $CONF[&amp;quot;encrypt&amp;quot;] = cleartext&lt;br /&gt;
 ✅ Password hashing - $CONF[&amp;quot;encrypt&amp;quot;] - hash generation OK&lt;br /&gt;
 ✅ Database connection configured OK (using PDO mysql:mysql:host=10.xxx.yyy.zzz;dbname=mailadmin;charset=UTF8)&lt;br /&gt;
 ✅ Database connection - Connected OK&lt;br /&gt;
 ✅ Depends on: PHP session support - OK&lt;br /&gt;
 ✅ Depends on: PHP pcre support - OK&lt;br /&gt;
 ✅ Depends on: PHP mbstring support - OK&lt;br /&gt;
 ✅ Optional - PHP IMAP functions - OK&lt;br /&gt;
&lt;br /&gt;
Дальнейший вывод сайта:&lt;br /&gt;
 Database Update&lt;br /&gt;
 &lt;br /&gt;
 Everything seems fine... attempting to create/update database structure&lt;br /&gt;
 &lt;br /&gt;
 Updating database:&lt;br /&gt;
 &lt;br /&gt;
 - old version: 0; target version: 1845&lt;br /&gt;
 &lt;br /&gt;
   (If the update doesn&#039;t work, run setup.php?debug=1 to see the detailed error messages and SQL queries.)&lt;br /&gt;
 &lt;br /&gt;
 updating to version 1 (MySQL)...   done&lt;br /&gt;
 updating to version 2 (MySQL)...   done&lt;br /&gt;
 updating to version 3 (MySQL)...   done&lt;br /&gt;
 &#039;&#039;&#039;[список пропущен]&#039;&#039;&#039;&lt;br /&gt;
 updating to version 1843 (all databases)...   done&lt;br /&gt;
 updating to version 1844 (all databases)...   done&lt;br /&gt;
 updating to version 1845 (all databases)...   done&lt;br /&gt;
&lt;br /&gt;
Последняя строка сообщает об обновлении базы данных Postfix Admin до последней актуальной версии.&lt;br /&gt;
&lt;br /&gt;
Сайт предложит настроить учётную запись администратора, после чего можно использовать Postfix Admin для администрирования почтовых доменов, ящиков и алиасов.&lt;br /&gt;
&lt;br /&gt;
Приглашение в управление Postfix Admin:&lt;br /&gt;
[[Файл:2025050201.png|left|мини]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
Вид главной страницы Postfix Admin:&lt;br /&gt;
[[Файл:2025050202.png|left|мини]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
Пример почтового алиаса домена и домена, на который будет приходить почта:&lt;br /&gt;
[[Файл:2025050203.png|left|мини]]&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://wiki.bsdhowto.ru/index.php?title=Postfix_Admin&amp;diff=230</id>
		<title>Postfix Admin</title>
		<link rel="alternate" type="text/html" href="https://wiki.bsdhowto.ru/index.php?title=Postfix_Admin&amp;diff=230"/>
		<updated>2025-12-02T15:33:33Z</updated>

		<summary type="html">&lt;p&gt;Igor: /* Окончательная настройка сайта */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Установка postfixadmin-php84 ==&lt;br /&gt;
&lt;br /&gt;
Postfix Admin — веб-инструмент управления, написанный на PHP для Postfix (но прекрасно подходит и для Exim) с виртуальными доменами в стиле Postfix, использующими поиск в MySQL или PostgreSQL. Так-же Postfix Admin работает на Apache, Lighttpd и на любом веб-сервере с поддержкой PHP 5.1.2+.&lt;br /&gt;
&lt;br /&gt;
Подробная информация о Postfix Admin на сайте http://www.postfixadmin.org/&lt;br /&gt;
&lt;br /&gt;
Установка из пакета (предварительная установка пакетов PKG и PHP не требуется, дополнительная информация о которых в статьях [[PKG]] и [[PHP+Nginx|Установка lang/php84]]; потребуется установка СУБД, например - MySQL, дополнительная информация о которой в статье [[MySQL]]):&lt;br /&gt;
 # pkg install postfixadmin-php84&lt;br /&gt;
&lt;br /&gt;
Проверка установки postfixadmin-php84:&lt;br /&gt;
 # pkg version -v | grep php84&lt;br /&gt;
 php84-8.4.5_1                      =   up-to-date with remote&lt;br /&gt;
 php84-mbstring-8.4.5_1             =   up-to-date with remote&lt;br /&gt;
 php84-pdo-8.4.5_1                  =   up-to-date with remote&lt;br /&gt;
 php84-pdo_sqlite-8.4.5_1           =   up-to-date with remote&lt;br /&gt;
 php84-pecl-imap-1.0.3              =   up-to-date with remote&lt;br /&gt;
 php84-session-8.4.5_1              =   up-to-date with remote&lt;br /&gt;
 postfixadmin-php84-3.4.d.20211018  =   up-to-date with remote&lt;br /&gt;
&lt;br /&gt;
Вывод команды содержит список установленных расширений PHP. В списке отсутствует расширение php84-pdo_mysql, которое требуется для СУБД MySQL, если для Postfix Admin будет использована она.&lt;br /&gt;
&lt;br /&gt;
Установка из пакета расширения php84-pdo_mysql:&lt;br /&gt;
 # pkg install php84-pdo_mysql&lt;br /&gt;
 Updating FreeBSD repository catalogue...&lt;br /&gt;
 FreeBSD repository is up to date.&lt;br /&gt;
 All repositories are up to date.&lt;br /&gt;
 The following 1 package(s) will be affected (of 0 checked):&lt;br /&gt;
 &lt;br /&gt;
 New packages to be INSTALLED:&lt;br /&gt;
         php84-pdo_mysql: 8.4.5_1&lt;br /&gt;
 &lt;br /&gt;
 Number of packages to be installed: 1&lt;br /&gt;
 &lt;br /&gt;
 19 KiB to be downloaded.&lt;br /&gt;
 &lt;br /&gt;
 Proceed with this action? [y/N]: y&lt;br /&gt;
 [1/1] Fetching php84-pdo_mysql-8.4.5_1.pkg: 100%   19 KiB  19.7kB/s    00:01&lt;br /&gt;
 Checking integrity... done (0 conflicting)&lt;br /&gt;
 [1/1] Installing php84-pdo_mysql-8.4.5_1...&lt;br /&gt;
 [1/1] Extracting php84-pdo_mysql-8.4.5_1: 100%&lt;br /&gt;
 =====&lt;br /&gt;
 Message from php84-pdo_mysql-8.4.5_1:&lt;br /&gt;
 &lt;br /&gt;
 --&lt;br /&gt;
 This file has been added to automatically load the installed extension:&lt;br /&gt;
 /usr/local/etc/php/ext-30-pdo_mysql.ini.sample&lt;br /&gt;
&lt;br /&gt;
Повторная проверка установки:&lt;br /&gt;
 # pkg version -v | grep php84&lt;br /&gt;
 php84-8.4.5_1                      =   up-to-date with remote&lt;br /&gt;
 php84-mbstring-8.4.5_1             =   up-to-date with remote&lt;br /&gt;
 php84-pdo-8.4.5_1                  =   up-to-date with remote&lt;br /&gt;
 php84-pdo_mysql-8.4.5_1            =   up-to-date with remote&lt;br /&gt;
 php84-pdo_sqlite-8.4.5_1           =   up-to-date with remote&lt;br /&gt;
 php84-pecl-imap-1.0.3              =   up-to-date with remote&lt;br /&gt;
 php84-session-8.4.5_1              =   up-to-date with remote&lt;br /&gt;
 postfixadmin-php84-3.4.d.20211018  =   up-to-date with remote&lt;br /&gt;
&lt;br /&gt;
Вывод команды содержит список всех необходимых установленных расширений PHP.&lt;br /&gt;
&lt;br /&gt;
Перезапуск PHP-FPM после установки расширений PHP:&lt;br /&gt;
 # service php_fpm restart&lt;br /&gt;
 Performing sanity check on php-fpm configuration:&lt;br /&gt;
 [28-Apr-2025 16:58:14] NOTICE: configuration file /usr/local/etc/php-fpm.conf test is successful&lt;br /&gt;
 Stopping php_fpm.&lt;br /&gt;
 Performing sanity check on php-fpm configuration:&lt;br /&gt;
 [28-Apr-2025 16:58:14] NOTICE: configuration file /usr/local/etc/php-fpm.conf test is successful&lt;br /&gt;
 Starting php_fpm.&lt;br /&gt;
&lt;br /&gt;
== Начальная настройка postfixadmin-php84 ==&lt;br /&gt;
&lt;br /&gt;
Копирование структуры сайта:&lt;br /&gt;
 # cd /usr/local/www&lt;br /&gt;
 # cp -Rp postfixadmin mailadmin.mydomain.ru&lt;br /&gt;
&lt;br /&gt;
Настройка сайта Postfix Admin в файле /usr/local/etc/nginx/mailadmin.mydomain.ru.conf:&lt;br /&gt;
 server {&lt;br /&gt;
     listen       80;&lt;br /&gt;
     server_name  mailadmin.mydomain.ru;&lt;br /&gt;
 &lt;br /&gt;
     access_log   /var/log/nginx/mailadmin.mydomain.ru.access.log;&lt;br /&gt;
     error_log    /var/log/nginx/mailadmin.mydomain.ru.error.log;&lt;br /&gt;
 &lt;br /&gt;
     location / {&lt;br /&gt;
         root   /usr/local/www/mailadmin.mydomain.ru/public;&lt;br /&gt;
         index  index.php;&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000&lt;br /&gt;
     #&lt;br /&gt;
     location ~ \.php$ {&lt;br /&gt;
         fastcgi_pass   127.0.0.1:9000;&lt;br /&gt;
         fastcgi_index  index.php;&lt;br /&gt;
         fastcgi_param  SCRIPT_FILENAME  /usr/local/www/mailadmin.mydomain.ru/public$fastcgi_script_name;&lt;br /&gt;
         include        fastcgi_params;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Включение конфигурации сайта Postfix Admin в файл /usr/local/etc/nginx/nginx.conf:&lt;br /&gt;
     include /usr/local/etc/nginx/mailadmin.mydomain.ru.conf;&lt;br /&gt;
&lt;br /&gt;
Перезагрузка конфигурации Nginx после первоначальной настройки сайта для доступа к нему со стороны Let&#039;s Encrypt по HTTP:&lt;br /&gt;
 # service nginx reload&lt;br /&gt;
 Performing sanity check on nginx configuration:&lt;br /&gt;
 nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok&lt;br /&gt;
 nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful&lt;br /&gt;
&lt;br /&gt;
== Получение сертификата ==&lt;br /&gt;
&lt;br /&gt;
Получение сертификата для домена:&lt;br /&gt;
 # certbot --nginx -d mailadmin.mydomain.ru&lt;br /&gt;
&lt;br /&gt;
Скрипт включит следующие строки в файл конфигурации сайта /usr/local/etc/nginx/mailadmin.mydomain.ru.conf: &lt;br /&gt;
     listen 443 ssl; # managed by Certbot&lt;br /&gt;
     ssl_certificate /usr/local/etc/letsencrypt/live/mailadmin.mydomain.ru/fullchain.pem; # managed by Certbot&lt;br /&gt;
     ssl_certificate_key /usr/local/etc/letsencrypt/live/mailadmin.mydomain.ru/privkey.pem; # managed by Certbot&lt;br /&gt;
     include /usr/local/etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot&lt;br /&gt;
     ssl_dhparam /usr/local/etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot&lt;br /&gt;
&lt;br /&gt;
Перезагрузка конфигурации Nginx для включения доступа по HTTPS:&lt;br /&gt;
 # service nginx reload&lt;br /&gt;
 Performing sanity check on nginx configuration:&lt;br /&gt;
 nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok&lt;br /&gt;
 nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful&lt;br /&gt;
&lt;br /&gt;
== Окончательная настройка сайта ==&lt;br /&gt;
&lt;br /&gt;
Настройки Postfix Admin по умолчанию находятся в файле /usr/local/www/mailadmin.mydomain.ru/config.inc.php. Его не рекомендуется изменять на случай обновлений пакета.&lt;br /&gt;
&lt;br /&gt;
Изменяемые настройки следует размещать в файле /usr/local/www/mailadmin.mydomain.ru/config.local.php (он должен начинаться с префикса):&lt;br /&gt;
 &amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
Параметр подразумевает, что все необходимые настройки внесены в файл /usr/local/www/mailadmin.mydomain.ru/config.local.php:&lt;br /&gt;
 $CONF[&#039;configured&#039;] = true;&lt;br /&gt;
&lt;br /&gt;
Создание хеша установочного пароля:&lt;br /&gt;
 # php -r &#039;echo password_hash(&amp;quot;&amp;lt;пароль&amp;gt;&amp;quot;, PASSWORD_DEFAULT); echo &amp;quot;\n&amp;quot;;&#039;&lt;br /&gt;
 $2y$12$w7H3Vo2EIuHOHRxObmUWZ.DpsujtU5yy8PWbfYxzXBSe2tun/qjTG&lt;br /&gt;
&lt;br /&gt;
Добавление полученного хеша файл настроек /usr/local/www/mailadmin.mydomain.ru/config.local.php:&lt;br /&gt;
 $CONF[&#039;setup_password&#039;] = &#039;$2y$12$w7H3Vo2EIuHOHRxObmUWZ.DpsujtU5yy8PWbfYxzXBSe2tun/qjTG&#039;;&lt;br /&gt;
&lt;br /&gt;
Настройка языка:&lt;br /&gt;
 $CONF[&#039;default_language&#039;] = &#039;ru&#039;;&lt;br /&gt;
&lt;br /&gt;
Пример настройки доступа Postfix Admin к СУБД в файле /usr/local/www/mailadmin.mydomain.ru/config.local.php&lt;br /&gt;
 $CONF[&#039;database_type&#039;] = &#039;mysqli&#039;;&lt;br /&gt;
 $CONF[&#039;database_host&#039;] = &#039;&amp;lt;IP-адрес СУБД&amp;gt;&#039;;&lt;br /&gt;
 $CONF[&#039;database_user&#039;] = &#039;mailadmin&#039;;&lt;br /&gt;
 $CONF[&#039;database_password&#039;] = &#039;&amp;lt;пароль&amp;gt;&#039;;&lt;br /&gt;
 $CONF[&#039;database_name&#039;] = &#039;mailadmin&#039;;&lt;br /&gt;
&lt;br /&gt;
Пример способа шифрования паролей почтовых ящиков (в данном случае пароли сохраняються в базе данных Postfix Admin в открытом виде, что небезопасно):&lt;br /&gt;
 $CONF[&#039;encrypt&#039;] = &#039;cleartext&#039;;&lt;br /&gt;
&lt;br /&gt;
Создание базы данных Postfix Admin:&lt;br /&gt;
 # mysql -u root -p&lt;br /&gt;
 &lt;br /&gt;
 &amp;gt; create database mailadmin;&lt;br /&gt;
 Query OK, 1 row affected (0.01 sec)&lt;br /&gt;
&lt;br /&gt;
Предоставление доступа пользователю &#039;mailadmin&#039; к базе данных &#039;mailadmin&#039; с хоста &#039;&amp;lt;IP-адрес&amp;gt;&#039; (потребуется доступ с хостов, где расположены Postfix Admin, SMTP-сервер и IMAP-сервер) и применение изменений:&lt;br /&gt;
 &amp;gt; create user &#039;mailadmin&#039;@&#039;&amp;lt;IP-адрес&amp;gt;&#039; identified by &#039;&amp;lt;пароль&amp;gt;&#039;;&lt;br /&gt;
 Query OK, 0 rows affected (0.04 sec)&lt;br /&gt;
 &lt;br /&gt;
 &amp;gt; grant all on mailadmin.* to &#039;mailadmin&#039;@&#039;&amp;lt;IP-адрес&amp;gt;&#039;;&lt;br /&gt;
 Query OK, 0 rows affected (0.00 sec)&lt;br /&gt;
 &lt;br /&gt;
 &amp;gt; flush privileges;&lt;br /&gt;
 Query OK, 0 rows affected (0.01 sec)&lt;br /&gt;
&lt;br /&gt;
Переход на сайт:&lt;br /&gt;
 https://mailadmin.mydomain.ru/setup.php&lt;br /&gt;
&lt;br /&gt;
Пример вывода сайта:&lt;br /&gt;
 &#039;&#039;&#039;Hosting Environment Check&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;Information&#039;&#039;&#039;&lt;br /&gt;
 ✅ PHP version - 8.4.5&lt;br /&gt;
 ✅ Postfixadmin public url detected as http://mailadmin.mydomain.ru/ use $CONF[&#039;site_url&#039;] to override&lt;br /&gt;
 ✅ Postfixadmin installed at - /usr/local/www/mailadmin.mydomain.ru/public&lt;br /&gt;
 ✅ config.local.php file found : /usr/local/www/mailadmin.mydomain.ru/config.local.php&lt;br /&gt;
 ✅ Database - MySQL support available&lt;br /&gt;
 ✅ Database - SQLite support available&lt;br /&gt;
 ✅ Password hashing - $CONF[&amp;quot;encrypt&amp;quot;] = cleartext&lt;br /&gt;
 ✅ Password hashing - $CONF[&amp;quot;encrypt&amp;quot;] - hash generation OK&lt;br /&gt;
 ✅ Database connection configured OK (using PDO mysql:mysql:host=10.xxx.yyy.zzz;dbname=mailadmin;charset=UTF8)&lt;br /&gt;
 ✅ Database connection - Connected OK&lt;br /&gt;
 ✅ Depends on: PHP session support - OK&lt;br /&gt;
 ✅ Depends on: PHP pcre support - OK&lt;br /&gt;
 ✅ Depends on: PHP mbstring support - OK&lt;br /&gt;
 ✅ Optional - PHP IMAP functions - OK&lt;br /&gt;
&lt;br /&gt;
Дальнейший вывод сайта:&lt;br /&gt;
 Database Update&lt;br /&gt;
 &lt;br /&gt;
 Everything seems fine... attempting to create/update database structure&lt;br /&gt;
 &lt;br /&gt;
 Updating database:&lt;br /&gt;
 &lt;br /&gt;
 - old version: 0; target version: 1845&lt;br /&gt;
 &lt;br /&gt;
   (If the update doesn&#039;t work, run setup.php?debug=1 to see the detailed error messages and SQL queries.)&lt;br /&gt;
 &lt;br /&gt;
 updating to version 1 (MySQL)...   done&lt;br /&gt;
 updating to version 2 (MySQL)...   done&lt;br /&gt;
 updating to version 3 (MySQL)...   done&lt;br /&gt;
 &#039;&#039;&#039;[список пропущен]&#039;&#039;&#039;&lt;br /&gt;
 updating to version 1843 (all databases)...   done&lt;br /&gt;
 updating to version 1844 (all databases)...   done&lt;br /&gt;
 updating to version 1845 (all databases)...   done&lt;br /&gt;
&lt;br /&gt;
Последняя строка сообщает об обновлении базы данных Postfix Admin до последней актуальной версии.&lt;br /&gt;
&lt;br /&gt;
Сайт предложит настроить учётную запись администратора, после чего можно использовать Postfix Admin для администрирования почтовых доменов, ящиков и алиасов.&lt;br /&gt;
&lt;br /&gt;
Приглашение в управление Postfix Admin:&lt;br /&gt;
[[Файл:2025050201.png|left|мини]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
Вид главной страницы Postfix Admin:&lt;br /&gt;
[[Файл:2025050202.png|left|мини]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
Пример почтового алиаса домена и домена, на который будет приходить почта:&lt;br /&gt;
[[Файл:2025050203.png|left|мини]]&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://wiki.bsdhowto.ru/index.php?title=Qjail&amp;diff=229</id>
		<title>Qjail</title>
		<link rel="alternate" type="text/html" href="https://wiki.bsdhowto.ru/index.php?title=Qjail&amp;diff=229"/>
		<updated>2025-12-01T16:37:10Z</updated>

		<summary type="html">&lt;p&gt;Igor: /* Операции с клетками */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Установка sysutils/qjail ==&lt;br /&gt;
&lt;br /&gt;
Qjail - инструмент управления изолированными клетками (jail) в ОС FreeBSD.&lt;br /&gt;
&lt;br /&gt;
Утилита qjail используется для быстрого развертывания клеток jail, а так-же использует метод jail(8) для определения клеток и управления их запуском/остановкой.&lt;br /&gt;
&lt;br /&gt;
Qjail — это оболочка для базовой системы jail chroot, предназначенная для улучшения безопасности и производительности, а так-же для улучшения удобств пользователя, связанных с развертыванием клеток.&lt;br /&gt;
&lt;br /&gt;
Qjail исключает из /etc/rc.conf все настройки jail. Qjail не требует знаний об использовании команды jail.&lt;br /&gt;
&lt;br /&gt;
Qjail автоматически создаёт среду клеток из файлов основной ОС.&lt;br /&gt;
&lt;br /&gt;
Qjail использует «nullfs» для системных двоичных файлов только для чтения, разделяя одну их копию со всеми клетками.&lt;br /&gt;
&lt;br /&gt;
Qjail назначает IP-адрес с именем сетевого устройства, поэтому псевдонимы автоматически создаются при запуске клеток и автоматически удаляются при их остановке.&lt;br /&gt;
&lt;br /&gt;
Qjail упрощает развертывание клеток до уровня новичка. У Qjail есть полностью документированная страница руководства, написанная максимально просто для понимания.&lt;br /&gt;
&lt;br /&gt;
Подробная информация на сайте http://qjail.sourceforge.net/&lt;br /&gt;
&lt;br /&gt;
Создание отдельной файловой системы для клеток:&lt;br /&gt;
 # zfs create zroot/usr/jails&lt;br /&gt;
&lt;br /&gt;
Установка из пакета Qjail (предварительная установка менеджера пакетов PKG не требуется, дополнительная информация о котором в статье [[PKG]]):&lt;br /&gt;
 # pkg install qjail&lt;br /&gt;
 Updating FreeBSD repository catalogue...&lt;br /&gt;
 FreeBSD repository is up to date.&lt;br /&gt;
 All repositories are up to date.&lt;br /&gt;
 The following 1 package(s) will be affected (of 0 checked):&lt;br /&gt;
 &lt;br /&gt;
 New packages to be INSTALLED:&lt;br /&gt;
         qjail: 5.5_1&lt;br /&gt;
 &lt;br /&gt;
 Number of packages to be installed: 1&lt;br /&gt;
 &lt;br /&gt;
 78 KiB to be downloaded.&lt;br /&gt;
 &lt;br /&gt;
 Proceed with this action? [y/N]: y&lt;br /&gt;
 [1/1] Fetching qjail-5.5_1.pkg: 100%   78 KiB  79.7kB/s    00:01&lt;br /&gt;
 Checking integrity... done (0 conflicting)&lt;br /&gt;
 [1/1] Installing qjail-5.5_1...&lt;br /&gt;
 [1/1] Extracting qjail-5.5_1: 100%&lt;br /&gt;
 =====&lt;br /&gt;
 Message from qjail-5.5_1:&lt;br /&gt;
 &lt;br /&gt;
 --&lt;br /&gt;
 Use the qjail utility to deploy small or large numbers of jails quickly.&lt;br /&gt;
 &lt;br /&gt;
 First issue &amp;quot;rehash&amp;quot; command to enable the qjail command (if using csh).&lt;br /&gt;
 Then issue&lt;br /&gt;
 &amp;quot;man qjail-intro&amp;quot; To read the qjail introduction.&lt;br /&gt;
 &amp;quot;man qjail&amp;quot;       For qjail usage details.&lt;br /&gt;
 &amp;quot;man qjail-drive-traffic For example of driving public traffic to jails.&lt;br /&gt;
 &amp;quot;man qjail-vnet-howto&amp;quot;   For example of creating vnet jails.&lt;br /&gt;
 &amp;quot;man qjail-ipv6-testing&amp;quot; For example of testing jails with ipv6 addresses.&lt;br /&gt;
&lt;br /&gt;
Менеджер пакетов предложит установить пакет Qjail. Примерный вывод выполнения команды после согласия на установку представлен выше:&lt;br /&gt;
&lt;br /&gt;
Проверка установки Qjail:&lt;br /&gt;
 # pkg version -v | grep qjail&lt;br /&gt;
 qjail-5.5_1                        =   up-to-date with remote&lt;br /&gt;
&lt;br /&gt;
В выводе выполнения команды дана информация о коротком имени пакета &amp;quot;qjail&amp;quot; и его номере текущей установленной версии &amp;quot;5.5_1&amp;quot;. А символ &amp;quot;=&amp;quot; сообщает, что установлена актуальная версия пакета.&lt;br /&gt;
&lt;br /&gt;
Установка базы Qjail (будет скачан и распакован файл base.txz, который соответствует текущей версии FreeBSD):&lt;br /&gt;
 # qjail install&lt;br /&gt;
 resolving server address: ftp.freebsd.org:80&lt;br /&gt;
 requesting http://ftp.freebsd.org/pub/FreeBSD/releases/amd64/amd64/14.2-RELEASE/base.txz&lt;br /&gt;
 remote size / mtime: 205880752 / 1732884605&lt;br /&gt;
 base.txz                                               196 MB 4189 kBps    48s&lt;br /&gt;
 &lt;br /&gt;
 The RELEASE distribution files are populating template.&lt;br /&gt;
 Estimated less than 1 minute for this to complete.&lt;br /&gt;
 &lt;br /&gt;
 sharedfs is being populated.&lt;br /&gt;
 Estimated less than 1 minute for this to complete.&lt;br /&gt;
 &lt;br /&gt;
 Successfully installed qjail system.&lt;br /&gt;
&lt;br /&gt;
Примерный вывод выполнения команды представлен выше:&lt;br /&gt;
&lt;br /&gt;
Включение автозапуска Qjail в /etc/rc.conf:&lt;br /&gt;
 # sysrc qjail_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
 qjail_enable:  -&amp;gt; YES&lt;br /&gt;
&lt;br /&gt;
Запуск Qjail:&lt;br /&gt;
 # qjail start&lt;br /&gt;
&lt;br /&gt;
== Операции с клетками ==&lt;br /&gt;
&lt;br /&gt;
Создание отдельной файловой системы для клетки c именем &amp;quot;test&amp;quot; в ZFS:&lt;br /&gt;
 # zfs create zroot/usr/jails/test&lt;br /&gt;
&lt;br /&gt;
Cоздание клетки c именем &amp;quot;test&amp;quot; на интерфейсе &amp;quot;em0&amp;quot; c IPv4-адресом &amp;quot;192.168.0.101&amp;quot;: &lt;br /&gt;
 # qjail create -n em0 -4 192.168.0.101 test&lt;br /&gt;
&lt;br /&gt;
Запуск клетки c именем &amp;quot;test&amp;quot;:&lt;br /&gt;
 # qjail start test&lt;br /&gt;
&lt;br /&gt;
Проверка работы клеток:&lt;br /&gt;
 # jls&lt;br /&gt;
   JID  IP Address      Hostname                      Path&lt;br /&gt;
     1  192.168.0.101   test                          /usr/jails/test&lt;br /&gt;
&lt;br /&gt;
Другой способ проверки работы клеток:&lt;br /&gt;
 # qjail list&lt;br /&gt;
 &lt;br /&gt;
 STATUS JID  NIC    IP              Jailname&lt;br /&gt;
 ------ ---- ------ --------------- --------------------------------------------&lt;br /&gt;
 DR     1    re0    192.168.0.101   test&lt;br /&gt;
&lt;br /&gt;
Вход в консоль клетки c именем &amp;quot;test&amp;quot;:&lt;br /&gt;
 # qjail console test&lt;br /&gt;
&lt;br /&gt;
Остановка клетки c именем &amp;quot;test&amp;quot;:&lt;br /&gt;
 # qjail stop test&lt;br /&gt;
&lt;br /&gt;
Удаление клетки c именем &amp;quot;test&amp;quot; (требуется остановка клетки, иначе будет получен следующий ответ команды):&lt;br /&gt;
 # qjail delete test&lt;br /&gt;
 Bypassed running jail  test&lt;br /&gt;
&lt;br /&gt;
Удаление клетки c именем &amp;quot;test&amp;quot; после предварительной остановки:&lt;br /&gt;
 # qjail stop test&lt;br /&gt;
 Jail successfully stopped test&lt;br /&gt;
 # qjail delete test&lt;br /&gt;
 rm: /usr/jails/test: Device busy&lt;br /&gt;
 Successfully deleted  test&lt;br /&gt;
&lt;br /&gt;
Вывод команды сообщает о невозможности удаления /usr/jails/test с помощью rm, т.к. это не простая папка, я файловая система, созданная zfs.&lt;br /&gt;
&lt;br /&gt;
== Обновление бинарного окружения клеток ==&lt;br /&gt;
&lt;br /&gt;
Остановка клеток:&lt;br /&gt;
 # qjail stop&lt;br /&gt;
 Jail successfully stopped  test&lt;br /&gt;
&lt;br /&gt;
Удаление старого бинарного окружения клеток и копирование из обновлённой основной ОС:&lt;br /&gt;
 # qjail update -b&lt;br /&gt;
 &lt;br /&gt;
 Deletion of sharedfs binaries successful for bin.&lt;br /&gt;
 Deletion of sharedfs binaries successful for lib.&lt;br /&gt;
 Deletion of sharedfs binaries successful for libexec.&lt;br /&gt;
 Deletion of sharedfs binaries successful for sbin.&lt;br /&gt;
 Deletion of sharedfs binaries successful for usr/bin.&lt;br /&gt;
 Deletion of sharedfs binaries successful for usr/include.&lt;br /&gt;
 Deletion of sharedfs binaries successful for usr/lib.&lt;br /&gt;
 Deletion of sharedfs binaries successful for usr/libdata.&lt;br /&gt;
 Deletion of sharedfs binaries successful for usr/libexec.&lt;br /&gt;
 Deletion of sharedfs binaries successful for usr/sbin.&lt;br /&gt;
 Deletion of sharedfs binaries successful for usr/share.&lt;br /&gt;
 Deletion of sharedfs binaries successful for usr/lib32.&lt;br /&gt;
 &lt;br /&gt;
 Copied host&#039;s binaries to sharedfs successfully for bin.&lt;br /&gt;
 Copied host&#039;s binaries to sharedfs successfully for lib.&lt;br /&gt;
 Copied host&#039;s binaries to sharedfs successfully for libexec.&lt;br /&gt;
 Copied host&#039;s binaries to sharedfs successfully for sbin.&lt;br /&gt;
 Copied host&#039;s binaries to sharedfs successfully for usr/bin.&lt;br /&gt;
 Copied host&#039;s binaries to sharedfs successfully for usr/include.&lt;br /&gt;
 Copied host&#039;s binaries to sharedfs successfully for usr/lib.&lt;br /&gt;
 Copied host&#039;s binaries to sharedfs successfully for usr/libdata.&lt;br /&gt;
 Copied host&#039;s binaries to sharedfs successfully for usr/libexec.&lt;br /&gt;
 Copied host&#039;s binaries to sharedfs successfully for usr/sbin.&lt;br /&gt;
 Copied host&#039;s binaries to sharedfs successfully for usr/share.&lt;br /&gt;
 Copied host&#039;s binaries to sharedfs successfully for usr/lib32.&lt;br /&gt;
 &lt;br /&gt;
 Host to sharedfs binaries update completed successfully.&lt;br /&gt;
 &lt;br /&gt;
 Successfully updated your existing qjail system.&lt;br /&gt;
&lt;br /&gt;
Старт обновлённых клеток:&lt;br /&gt;
 # qjail start&lt;br /&gt;
 Jail successfully started  test&lt;br /&gt;
&lt;br /&gt;
== Обновление дерева портов внутри клеток ==&lt;br /&gt;
&lt;br /&gt;
Удаление содержимого дерева портов внутри клеток и копирование из /usr/ports основной ОС:&lt;br /&gt;
 # qjail update -P&lt;br /&gt;
 Copy host&#039;s /usr/src routine entered&lt;br /&gt;
 &lt;br /&gt;
 Removing existing /usr/ports directory from sharedfs.&lt;br /&gt;
 Estimated less then 1 minute for this to complete.&lt;br /&gt;
 Sun Mar 30 10:22:57 MSK 2025&lt;br /&gt;
 Sun Mar 30 10:23:32 MSK 2025&lt;br /&gt;
 &lt;br /&gt;
 Copying host /usr/ports to sharedfs /usr/ports.&lt;br /&gt;
 Estimated less then 1 minute for this to complete.&lt;br /&gt;
 Sun Mar 30 10:23:32 MSK 2025&lt;br /&gt;
 Sun Mar 30 10:25:09 MSK 2025&lt;br /&gt;
 &lt;br /&gt;
 Successfully updated your existing qjail system.&lt;br /&gt;
&lt;br /&gt;
== Обновление дерева исходных текстов ОС FreeBSD внутри клеток ==&lt;br /&gt;
&lt;br /&gt;
Удаление содержимого исходных текстов ОС внутри клеток и копирование из /usr/src основной ОС:&lt;br /&gt;
 # qjail update -S&lt;br /&gt;
 Copy host&#039;s /usr/src routine entered&lt;br /&gt;
 &lt;br /&gt;
 Removing existing /usr/src directory from sharedfs.&lt;br /&gt;
 Estimated less then 1 minute for this to complete.&lt;br /&gt;
 Sun Mar 30 16:17:19 MSK 2025&lt;br /&gt;
 Sun Mar 30 16:17:19 MSK 2025&lt;br /&gt;
 &lt;br /&gt;
 Copying host /usr/src to sharedfs /usr/src.&lt;br /&gt;
 Estimated less then 1 minute for this to complete.&lt;br /&gt;
 Sun Mar 30 16:17:19 MSK 2025&lt;br /&gt;
 Sun Mar 30 16:18:18 MSK 2025&lt;br /&gt;
 &lt;br /&gt;
 Successfully updated your existing qjail system.&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://wiki.bsdhowto.ru/index.php?title=Qjail&amp;diff=228</id>
		<title>Qjail</title>
		<link rel="alternate" type="text/html" href="https://wiki.bsdhowto.ru/index.php?title=Qjail&amp;diff=228"/>
		<updated>2025-12-01T16:35:33Z</updated>

		<summary type="html">&lt;p&gt;Igor: /* Операции с клетками */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Установка sysutils/qjail ==&lt;br /&gt;
&lt;br /&gt;
Qjail - инструмент управления изолированными клетками (jail) в ОС FreeBSD.&lt;br /&gt;
&lt;br /&gt;
Утилита qjail используется для быстрого развертывания клеток jail, а так-же использует метод jail(8) для определения клеток и управления их запуском/остановкой.&lt;br /&gt;
&lt;br /&gt;
Qjail — это оболочка для базовой системы jail chroot, предназначенная для улучшения безопасности и производительности, а так-же для улучшения удобств пользователя, связанных с развертыванием клеток.&lt;br /&gt;
&lt;br /&gt;
Qjail исключает из /etc/rc.conf все настройки jail. Qjail не требует знаний об использовании команды jail.&lt;br /&gt;
&lt;br /&gt;
Qjail автоматически создаёт среду клеток из файлов основной ОС.&lt;br /&gt;
&lt;br /&gt;
Qjail использует «nullfs» для системных двоичных файлов только для чтения, разделяя одну их копию со всеми клетками.&lt;br /&gt;
&lt;br /&gt;
Qjail назначает IP-адрес с именем сетевого устройства, поэтому псевдонимы автоматически создаются при запуске клеток и автоматически удаляются при их остановке.&lt;br /&gt;
&lt;br /&gt;
Qjail упрощает развертывание клеток до уровня новичка. У Qjail есть полностью документированная страница руководства, написанная максимально просто для понимания.&lt;br /&gt;
&lt;br /&gt;
Подробная информация на сайте http://qjail.sourceforge.net/&lt;br /&gt;
&lt;br /&gt;
Создание отдельной файловой системы для клеток:&lt;br /&gt;
 # zfs create zroot/usr/jails&lt;br /&gt;
&lt;br /&gt;
Установка из пакета Qjail (предварительная установка менеджера пакетов PKG не требуется, дополнительная информация о котором в статье [[PKG]]):&lt;br /&gt;
 # pkg install qjail&lt;br /&gt;
 Updating FreeBSD repository catalogue...&lt;br /&gt;
 FreeBSD repository is up to date.&lt;br /&gt;
 All repositories are up to date.&lt;br /&gt;
 The following 1 package(s) will be affected (of 0 checked):&lt;br /&gt;
 &lt;br /&gt;
 New packages to be INSTALLED:&lt;br /&gt;
         qjail: 5.5_1&lt;br /&gt;
 &lt;br /&gt;
 Number of packages to be installed: 1&lt;br /&gt;
 &lt;br /&gt;
 78 KiB to be downloaded.&lt;br /&gt;
 &lt;br /&gt;
 Proceed with this action? [y/N]: y&lt;br /&gt;
 [1/1] Fetching qjail-5.5_1.pkg: 100%   78 KiB  79.7kB/s    00:01&lt;br /&gt;
 Checking integrity... done (0 conflicting)&lt;br /&gt;
 [1/1] Installing qjail-5.5_1...&lt;br /&gt;
 [1/1] Extracting qjail-5.5_1: 100%&lt;br /&gt;
 =====&lt;br /&gt;
 Message from qjail-5.5_1:&lt;br /&gt;
 &lt;br /&gt;
 --&lt;br /&gt;
 Use the qjail utility to deploy small or large numbers of jails quickly.&lt;br /&gt;
 &lt;br /&gt;
 First issue &amp;quot;rehash&amp;quot; command to enable the qjail command (if using csh).&lt;br /&gt;
 Then issue&lt;br /&gt;
 &amp;quot;man qjail-intro&amp;quot; To read the qjail introduction.&lt;br /&gt;
 &amp;quot;man qjail&amp;quot;       For qjail usage details.&lt;br /&gt;
 &amp;quot;man qjail-drive-traffic For example of driving public traffic to jails.&lt;br /&gt;
 &amp;quot;man qjail-vnet-howto&amp;quot;   For example of creating vnet jails.&lt;br /&gt;
 &amp;quot;man qjail-ipv6-testing&amp;quot; For example of testing jails with ipv6 addresses.&lt;br /&gt;
&lt;br /&gt;
Менеджер пакетов предложит установить пакет Qjail. Примерный вывод выполнения команды после согласия на установку представлен выше:&lt;br /&gt;
&lt;br /&gt;
Проверка установки Qjail:&lt;br /&gt;
 # pkg version -v | grep qjail&lt;br /&gt;
 qjail-5.5_1                        =   up-to-date with remote&lt;br /&gt;
&lt;br /&gt;
В выводе выполнения команды дана информация о коротком имени пакета &amp;quot;qjail&amp;quot; и его номере текущей установленной версии &amp;quot;5.5_1&amp;quot;. А символ &amp;quot;=&amp;quot; сообщает, что установлена актуальная версия пакета.&lt;br /&gt;
&lt;br /&gt;
Установка базы Qjail (будет скачан и распакован файл base.txz, который соответствует текущей версии FreeBSD):&lt;br /&gt;
 # qjail install&lt;br /&gt;
 resolving server address: ftp.freebsd.org:80&lt;br /&gt;
 requesting http://ftp.freebsd.org/pub/FreeBSD/releases/amd64/amd64/14.2-RELEASE/base.txz&lt;br /&gt;
 remote size / mtime: 205880752 / 1732884605&lt;br /&gt;
 base.txz                                               196 MB 4189 kBps    48s&lt;br /&gt;
 &lt;br /&gt;
 The RELEASE distribution files are populating template.&lt;br /&gt;
 Estimated less than 1 minute for this to complete.&lt;br /&gt;
 &lt;br /&gt;
 sharedfs is being populated.&lt;br /&gt;
 Estimated less than 1 minute for this to complete.&lt;br /&gt;
 &lt;br /&gt;
 Successfully installed qjail system.&lt;br /&gt;
&lt;br /&gt;
Примерный вывод выполнения команды представлен выше:&lt;br /&gt;
&lt;br /&gt;
Включение автозапуска Qjail в /etc/rc.conf:&lt;br /&gt;
 # sysrc qjail_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
 qjail_enable:  -&amp;gt; YES&lt;br /&gt;
&lt;br /&gt;
Запуск Qjail:&lt;br /&gt;
 # qjail start&lt;br /&gt;
&lt;br /&gt;
== Операции с клетками ==&lt;br /&gt;
&lt;br /&gt;
Создание отдельной файловой системы для клетки c именем &amp;quot;test&amp;quot; в ZFS:&lt;br /&gt;
 # zfs create zroot/usr/jails/test&lt;br /&gt;
&lt;br /&gt;
Cоздание клетки c именем &amp;quot;test&amp;quot; на интерфейсе &amp;quot;em0&amp;quot; c IPv4-адресом &amp;quot;192.168.0.101&amp;quot;: &lt;br /&gt;
 # qjail create -n em0 -4 192.168.0.101 test&lt;br /&gt;
&lt;br /&gt;
Запуск клетки c именем &amp;quot;test&amp;quot;:&lt;br /&gt;
 # qjail start test&lt;br /&gt;
&lt;br /&gt;
Проверка работы клеток:&lt;br /&gt;
 # jls&lt;br /&gt;
   JID  IP Address      Hostname                      Path&lt;br /&gt;
     1  192.168.0.101   test                          /usr/jails/test&lt;br /&gt;
&lt;br /&gt;
Другой способ проверки работы клеток:&lt;br /&gt;
 # qjail list&lt;br /&gt;
 &lt;br /&gt;
 STATUS JID  NIC    IP              Jailname&lt;br /&gt;
 ------ ---- ------ --------------- --------------------------------------------&lt;br /&gt;
 DR     1    re0    192.168.0.101   test&lt;br /&gt;
&lt;br /&gt;
Вход в консоль клетки c именем &amp;quot;test&amp;quot;:&lt;br /&gt;
 # qjail console test&lt;br /&gt;
&lt;br /&gt;
Остановка клетки c именем &amp;quot;test&amp;quot;:&lt;br /&gt;
 # qjail stop test&lt;br /&gt;
&lt;br /&gt;
Удаление клетки c именем &amp;quot;test&amp;quot; (требуется остановка клетки, иначе будет получен следующий ответ команды):&lt;br /&gt;
 # qjail delete test&lt;br /&gt;
 Bypassed running jail  test&lt;br /&gt;
&lt;br /&gt;
Удаление клетки c именем &amp;quot;test&amp;quot; с предварительной остановкой:&lt;br /&gt;
 # qjail stop test&lt;br /&gt;
 Jail successfully stopped test&lt;br /&gt;
 # qjail delete test&lt;br /&gt;
 rm: /usr/jails/test: Device busy&lt;br /&gt;
 Successfully deleted  test&lt;br /&gt;
&lt;br /&gt;
Вывод команды сообщает о невозможности удаления /usr/jails/test с помощью rm, т.к. это не простая папка, я файловая система, созданная zfs.&lt;br /&gt;
&lt;br /&gt;
== Обновление бинарного окружения клеток ==&lt;br /&gt;
&lt;br /&gt;
Остановка клеток:&lt;br /&gt;
 # qjail stop&lt;br /&gt;
 Jail successfully stopped  test&lt;br /&gt;
&lt;br /&gt;
Удаление старого бинарного окружения клеток и копирование из обновлённой основной ОС:&lt;br /&gt;
 # qjail update -b&lt;br /&gt;
 &lt;br /&gt;
 Deletion of sharedfs binaries successful for bin.&lt;br /&gt;
 Deletion of sharedfs binaries successful for lib.&lt;br /&gt;
 Deletion of sharedfs binaries successful for libexec.&lt;br /&gt;
 Deletion of sharedfs binaries successful for sbin.&lt;br /&gt;
 Deletion of sharedfs binaries successful for usr/bin.&lt;br /&gt;
 Deletion of sharedfs binaries successful for usr/include.&lt;br /&gt;
 Deletion of sharedfs binaries successful for usr/lib.&lt;br /&gt;
 Deletion of sharedfs binaries successful for usr/libdata.&lt;br /&gt;
 Deletion of sharedfs binaries successful for usr/libexec.&lt;br /&gt;
 Deletion of sharedfs binaries successful for usr/sbin.&lt;br /&gt;
 Deletion of sharedfs binaries successful for usr/share.&lt;br /&gt;
 Deletion of sharedfs binaries successful for usr/lib32.&lt;br /&gt;
 &lt;br /&gt;
 Copied host&#039;s binaries to sharedfs successfully for bin.&lt;br /&gt;
 Copied host&#039;s binaries to sharedfs successfully for lib.&lt;br /&gt;
 Copied host&#039;s binaries to sharedfs successfully for libexec.&lt;br /&gt;
 Copied host&#039;s binaries to sharedfs successfully for sbin.&lt;br /&gt;
 Copied host&#039;s binaries to sharedfs successfully for usr/bin.&lt;br /&gt;
 Copied host&#039;s binaries to sharedfs successfully for usr/include.&lt;br /&gt;
 Copied host&#039;s binaries to sharedfs successfully for usr/lib.&lt;br /&gt;
 Copied host&#039;s binaries to sharedfs successfully for usr/libdata.&lt;br /&gt;
 Copied host&#039;s binaries to sharedfs successfully for usr/libexec.&lt;br /&gt;
 Copied host&#039;s binaries to sharedfs successfully for usr/sbin.&lt;br /&gt;
 Copied host&#039;s binaries to sharedfs successfully for usr/share.&lt;br /&gt;
 Copied host&#039;s binaries to sharedfs successfully for usr/lib32.&lt;br /&gt;
 &lt;br /&gt;
 Host to sharedfs binaries update completed successfully.&lt;br /&gt;
 &lt;br /&gt;
 Successfully updated your existing qjail system.&lt;br /&gt;
&lt;br /&gt;
Старт обновлённых клеток:&lt;br /&gt;
 # qjail start&lt;br /&gt;
 Jail successfully started  test&lt;br /&gt;
&lt;br /&gt;
== Обновление дерева портов внутри клеток ==&lt;br /&gt;
&lt;br /&gt;
Удаление содержимого дерева портов внутри клеток и копирование из /usr/ports основной ОС:&lt;br /&gt;
 # qjail update -P&lt;br /&gt;
 Copy host&#039;s /usr/src routine entered&lt;br /&gt;
 &lt;br /&gt;
 Removing existing /usr/ports directory from sharedfs.&lt;br /&gt;
 Estimated less then 1 minute for this to complete.&lt;br /&gt;
 Sun Mar 30 10:22:57 MSK 2025&lt;br /&gt;
 Sun Mar 30 10:23:32 MSK 2025&lt;br /&gt;
 &lt;br /&gt;
 Copying host /usr/ports to sharedfs /usr/ports.&lt;br /&gt;
 Estimated less then 1 minute for this to complete.&lt;br /&gt;
 Sun Mar 30 10:23:32 MSK 2025&lt;br /&gt;
 Sun Mar 30 10:25:09 MSK 2025&lt;br /&gt;
 &lt;br /&gt;
 Successfully updated your existing qjail system.&lt;br /&gt;
&lt;br /&gt;
== Обновление дерева исходных текстов ОС FreeBSD внутри клеток ==&lt;br /&gt;
&lt;br /&gt;
Удаление содержимого исходных текстов ОС внутри клеток и копирование из /usr/src основной ОС:&lt;br /&gt;
 # qjail update -S&lt;br /&gt;
 Copy host&#039;s /usr/src routine entered&lt;br /&gt;
 &lt;br /&gt;
 Removing existing /usr/src directory from sharedfs.&lt;br /&gt;
 Estimated less then 1 minute for this to complete.&lt;br /&gt;
 Sun Mar 30 16:17:19 MSK 2025&lt;br /&gt;
 Sun Mar 30 16:17:19 MSK 2025&lt;br /&gt;
 &lt;br /&gt;
 Copying host /usr/src to sharedfs /usr/src.&lt;br /&gt;
 Estimated less then 1 minute for this to complete.&lt;br /&gt;
 Sun Mar 30 16:17:19 MSK 2025&lt;br /&gt;
 Sun Mar 30 16:18:18 MSK 2025&lt;br /&gt;
 &lt;br /&gt;
 Successfully updated your existing qjail system.&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://wiki.bsdhowto.ru/index.php?title=Qjail&amp;diff=227</id>
		<title>Qjail</title>
		<link rel="alternate" type="text/html" href="https://wiki.bsdhowto.ru/index.php?title=Qjail&amp;diff=227"/>
		<updated>2025-12-01T16:15:56Z</updated>

		<summary type="html">&lt;p&gt;Igor: /* Операции с клетками */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Установка sysutils/qjail ==&lt;br /&gt;
&lt;br /&gt;
Qjail - инструмент управления изолированными клетками (jail) в ОС FreeBSD.&lt;br /&gt;
&lt;br /&gt;
Утилита qjail используется для быстрого развертывания клеток jail, а так-же использует метод jail(8) для определения клеток и управления их запуском/остановкой.&lt;br /&gt;
&lt;br /&gt;
Qjail — это оболочка для базовой системы jail chroot, предназначенная для улучшения безопасности и производительности, а так-же для улучшения удобств пользователя, связанных с развертыванием клеток.&lt;br /&gt;
&lt;br /&gt;
Qjail исключает из /etc/rc.conf все настройки jail. Qjail не требует знаний об использовании команды jail.&lt;br /&gt;
&lt;br /&gt;
Qjail автоматически создаёт среду клеток из файлов основной ОС.&lt;br /&gt;
&lt;br /&gt;
Qjail использует «nullfs» для системных двоичных файлов только для чтения, разделяя одну их копию со всеми клетками.&lt;br /&gt;
&lt;br /&gt;
Qjail назначает IP-адрес с именем сетевого устройства, поэтому псевдонимы автоматически создаются при запуске клеток и автоматически удаляются при их остановке.&lt;br /&gt;
&lt;br /&gt;
Qjail упрощает развертывание клеток до уровня новичка. У Qjail есть полностью документированная страница руководства, написанная максимально просто для понимания.&lt;br /&gt;
&lt;br /&gt;
Подробная информация на сайте http://qjail.sourceforge.net/&lt;br /&gt;
&lt;br /&gt;
Создание отдельной файловой системы для клеток:&lt;br /&gt;
 # zfs create zroot/usr/jails&lt;br /&gt;
&lt;br /&gt;
Установка из пакета Qjail (предварительная установка менеджера пакетов PKG не требуется, дополнительная информация о котором в статье [[PKG]]):&lt;br /&gt;
 # pkg install qjail&lt;br /&gt;
 Updating FreeBSD repository catalogue...&lt;br /&gt;
 FreeBSD repository is up to date.&lt;br /&gt;
 All repositories are up to date.&lt;br /&gt;
 The following 1 package(s) will be affected (of 0 checked):&lt;br /&gt;
 &lt;br /&gt;
 New packages to be INSTALLED:&lt;br /&gt;
         qjail: 5.5_1&lt;br /&gt;
 &lt;br /&gt;
 Number of packages to be installed: 1&lt;br /&gt;
 &lt;br /&gt;
 78 KiB to be downloaded.&lt;br /&gt;
 &lt;br /&gt;
 Proceed with this action? [y/N]: y&lt;br /&gt;
 [1/1] Fetching qjail-5.5_1.pkg: 100%   78 KiB  79.7kB/s    00:01&lt;br /&gt;
 Checking integrity... done (0 conflicting)&lt;br /&gt;
 [1/1] Installing qjail-5.5_1...&lt;br /&gt;
 [1/1] Extracting qjail-5.5_1: 100%&lt;br /&gt;
 =====&lt;br /&gt;
 Message from qjail-5.5_1:&lt;br /&gt;
 &lt;br /&gt;
 --&lt;br /&gt;
 Use the qjail utility to deploy small or large numbers of jails quickly.&lt;br /&gt;
 &lt;br /&gt;
 First issue &amp;quot;rehash&amp;quot; command to enable the qjail command (if using csh).&lt;br /&gt;
 Then issue&lt;br /&gt;
 &amp;quot;man qjail-intro&amp;quot; To read the qjail introduction.&lt;br /&gt;
 &amp;quot;man qjail&amp;quot;       For qjail usage details.&lt;br /&gt;
 &amp;quot;man qjail-drive-traffic For example of driving public traffic to jails.&lt;br /&gt;
 &amp;quot;man qjail-vnet-howto&amp;quot;   For example of creating vnet jails.&lt;br /&gt;
 &amp;quot;man qjail-ipv6-testing&amp;quot; For example of testing jails with ipv6 addresses.&lt;br /&gt;
&lt;br /&gt;
Менеджер пакетов предложит установить пакет Qjail. Примерный вывод выполнения команды после согласия на установку представлен выше:&lt;br /&gt;
&lt;br /&gt;
Проверка установки Qjail:&lt;br /&gt;
 # pkg version -v | grep qjail&lt;br /&gt;
 qjail-5.5_1                        =   up-to-date with remote&lt;br /&gt;
&lt;br /&gt;
В выводе выполнения команды дана информация о коротком имени пакета &amp;quot;qjail&amp;quot; и его номере текущей установленной версии &amp;quot;5.5_1&amp;quot;. А символ &amp;quot;=&amp;quot; сообщает, что установлена актуальная версия пакета.&lt;br /&gt;
&lt;br /&gt;
Установка базы Qjail (будет скачан и распакован файл base.txz, который соответствует текущей версии FreeBSD):&lt;br /&gt;
 # qjail install&lt;br /&gt;
 resolving server address: ftp.freebsd.org:80&lt;br /&gt;
 requesting http://ftp.freebsd.org/pub/FreeBSD/releases/amd64/amd64/14.2-RELEASE/base.txz&lt;br /&gt;
 remote size / mtime: 205880752 / 1732884605&lt;br /&gt;
 base.txz                                               196 MB 4189 kBps    48s&lt;br /&gt;
 &lt;br /&gt;
 The RELEASE distribution files are populating template.&lt;br /&gt;
 Estimated less than 1 minute for this to complete.&lt;br /&gt;
 &lt;br /&gt;
 sharedfs is being populated.&lt;br /&gt;
 Estimated less than 1 minute for this to complete.&lt;br /&gt;
 &lt;br /&gt;
 Successfully installed qjail system.&lt;br /&gt;
&lt;br /&gt;
Примерный вывод выполнения команды представлен выше:&lt;br /&gt;
&lt;br /&gt;
Включение автозапуска Qjail в /etc/rc.conf:&lt;br /&gt;
 # sysrc qjail_enable=&amp;quot;YES&amp;quot;&lt;br /&gt;
 qjail_enable:  -&amp;gt; YES&lt;br /&gt;
&lt;br /&gt;
Запуск Qjail:&lt;br /&gt;
 # qjail start&lt;br /&gt;
&lt;br /&gt;
== Операции с клетками ==&lt;br /&gt;
&lt;br /&gt;
Создание отдельной файловой системы для клетки c именем &amp;quot;test&amp;quot; в ZFS:&lt;br /&gt;
 # zfs create zroot/usr/jails/test&lt;br /&gt;
&lt;br /&gt;
Cоздание клетки c именем &amp;quot;test&amp;quot; на интерфейсе &amp;quot;em0&amp;quot; c IPv4-адресом &amp;quot;192.168.0.101&amp;quot;: &lt;br /&gt;
 # qjail create -n em0 -4 192.168.0.101 test&lt;br /&gt;
&lt;br /&gt;
Запуск клетки c именем &amp;quot;test&amp;quot;:&lt;br /&gt;
 # qjail start test&lt;br /&gt;
&lt;br /&gt;
Проверка работы клеток:&lt;br /&gt;
 # jls&lt;br /&gt;
   JID  IP Address      Hostname                      Path&lt;br /&gt;
     1  192.168.0.101   test                          /usr/jails/test&lt;br /&gt;
&lt;br /&gt;
Другой способ проверки работы клеток:&lt;br /&gt;
 # qjail list&lt;br /&gt;
 &lt;br /&gt;
 STATUS JID  NIC    IP              Jailname&lt;br /&gt;
 ------ ---- ------ --------------- --------------------------------------------&lt;br /&gt;
 DR     1    re0    192.168.0.101   test&lt;br /&gt;
&lt;br /&gt;
Вход в консоль клетки c именем &amp;quot;test&amp;quot;:&lt;br /&gt;
 # qjail console test&lt;br /&gt;
&lt;br /&gt;
Остановка клетки c именем &amp;quot;test&amp;quot;:&lt;br /&gt;
 # qjail stop test&lt;br /&gt;
&lt;br /&gt;
Удаление клетки c именем &amp;quot;test&amp;quot;:&lt;br /&gt;
 # qjail delete test&lt;br /&gt;
&lt;br /&gt;
== Обновление бинарного окружения клеток ==&lt;br /&gt;
&lt;br /&gt;
Остановка клеток:&lt;br /&gt;
 # qjail stop&lt;br /&gt;
 Jail successfully stopped  test&lt;br /&gt;
&lt;br /&gt;
Удаление старого бинарного окружения клеток и копирование из обновлённой основной ОС:&lt;br /&gt;
 # qjail update -b&lt;br /&gt;
 &lt;br /&gt;
 Deletion of sharedfs binaries successful for bin.&lt;br /&gt;
 Deletion of sharedfs binaries successful for lib.&lt;br /&gt;
 Deletion of sharedfs binaries successful for libexec.&lt;br /&gt;
 Deletion of sharedfs binaries successful for sbin.&lt;br /&gt;
 Deletion of sharedfs binaries successful for usr/bin.&lt;br /&gt;
 Deletion of sharedfs binaries successful for usr/include.&lt;br /&gt;
 Deletion of sharedfs binaries successful for usr/lib.&lt;br /&gt;
 Deletion of sharedfs binaries successful for usr/libdata.&lt;br /&gt;
 Deletion of sharedfs binaries successful for usr/libexec.&lt;br /&gt;
 Deletion of sharedfs binaries successful for usr/sbin.&lt;br /&gt;
 Deletion of sharedfs binaries successful for usr/share.&lt;br /&gt;
 Deletion of sharedfs binaries successful for usr/lib32.&lt;br /&gt;
 &lt;br /&gt;
 Copied host&#039;s binaries to sharedfs successfully for bin.&lt;br /&gt;
 Copied host&#039;s binaries to sharedfs successfully for lib.&lt;br /&gt;
 Copied host&#039;s binaries to sharedfs successfully for libexec.&lt;br /&gt;
 Copied host&#039;s binaries to sharedfs successfully for sbin.&lt;br /&gt;
 Copied host&#039;s binaries to sharedfs successfully for usr/bin.&lt;br /&gt;
 Copied host&#039;s binaries to sharedfs successfully for usr/include.&lt;br /&gt;
 Copied host&#039;s binaries to sharedfs successfully for usr/lib.&lt;br /&gt;
 Copied host&#039;s binaries to sharedfs successfully for usr/libdata.&lt;br /&gt;
 Copied host&#039;s binaries to sharedfs successfully for usr/libexec.&lt;br /&gt;
 Copied host&#039;s binaries to sharedfs successfully for usr/sbin.&lt;br /&gt;
 Copied host&#039;s binaries to sharedfs successfully for usr/share.&lt;br /&gt;
 Copied host&#039;s binaries to sharedfs successfully for usr/lib32.&lt;br /&gt;
 &lt;br /&gt;
 Host to sharedfs binaries update completed successfully.&lt;br /&gt;
 &lt;br /&gt;
 Successfully updated your existing qjail system.&lt;br /&gt;
&lt;br /&gt;
Старт обновлённых клеток:&lt;br /&gt;
 # qjail start&lt;br /&gt;
 Jail successfully started  test&lt;br /&gt;
&lt;br /&gt;
== Обновление дерева портов внутри клеток ==&lt;br /&gt;
&lt;br /&gt;
Удаление содержимого дерева портов внутри клеток и копирование из /usr/ports основной ОС:&lt;br /&gt;
 # qjail update -P&lt;br /&gt;
 Copy host&#039;s /usr/src routine entered&lt;br /&gt;
 &lt;br /&gt;
 Removing existing /usr/ports directory from sharedfs.&lt;br /&gt;
 Estimated less then 1 minute for this to complete.&lt;br /&gt;
 Sun Mar 30 10:22:57 MSK 2025&lt;br /&gt;
 Sun Mar 30 10:23:32 MSK 2025&lt;br /&gt;
 &lt;br /&gt;
 Copying host /usr/ports to sharedfs /usr/ports.&lt;br /&gt;
 Estimated less then 1 minute for this to complete.&lt;br /&gt;
 Sun Mar 30 10:23:32 MSK 2025&lt;br /&gt;
 Sun Mar 30 10:25:09 MSK 2025&lt;br /&gt;
 &lt;br /&gt;
 Successfully updated your existing qjail system.&lt;br /&gt;
&lt;br /&gt;
== Обновление дерева исходных текстов ОС FreeBSD внутри клеток ==&lt;br /&gt;
&lt;br /&gt;
Удаление содержимого исходных текстов ОС внутри клеток и копирование из /usr/src основной ОС:&lt;br /&gt;
 # qjail update -S&lt;br /&gt;
 Copy host&#039;s /usr/src routine entered&lt;br /&gt;
 &lt;br /&gt;
 Removing existing /usr/src directory from sharedfs.&lt;br /&gt;
 Estimated less then 1 minute for this to complete.&lt;br /&gt;
 Sun Mar 30 16:17:19 MSK 2025&lt;br /&gt;
 Sun Mar 30 16:17:19 MSK 2025&lt;br /&gt;
 &lt;br /&gt;
 Copying host /usr/src to sharedfs /usr/src.&lt;br /&gt;
 Estimated less then 1 minute for this to complete.&lt;br /&gt;
 Sun Mar 30 16:17:19 MSK 2025&lt;br /&gt;
 Sun Mar 30 16:18:18 MSK 2025&lt;br /&gt;
 &lt;br /&gt;
 Successfully updated your existing qjail system.&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://wiki.bsdhowto.ru/index.php?title=FreeBSD_Update&amp;diff=226</id>
		<title>FreeBSD Update</title>
		<link rel="alternate" type="text/html" href="https://wiki.bsdhowto.ru/index.php?title=FreeBSD_Update&amp;diff=226"/>
		<updated>2025-12-01T16:04:22Z</updated>

		<summary type="html">&lt;p&gt;Igor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Подготовка к установке обновлений безопасности FreeBSD ==&lt;br /&gt;
&lt;br /&gt;
Проверка текущей версии ОС:&lt;br /&gt;
&lt;br /&gt;
 # freebsd-version -ku&lt;br /&gt;
 14.2-RELEASE&lt;br /&gt;
 14.2-RELEASE&lt;br /&gt;
&lt;br /&gt;
Перед скачиванием и установкой обновлений безопасности FreeBSD следует сделать резервную копию файлов конфигурации ОС.&lt;br /&gt;
&lt;br /&gt;
 # cp -Rp /etc /etc.backup&lt;br /&gt;
&lt;br /&gt;
== Скачивание и установка бинарных обновлений безопасности FreeBSD с последующей перезагрузкой ==&lt;br /&gt;
&lt;br /&gt;
Скачивание бинарных обновлений ОС:&lt;br /&gt;
 # freebsd-update fetch&lt;br /&gt;
&lt;br /&gt;
Установка бинарных обновлений ОС: ==&lt;br /&gt;
 # freebsd-update install&lt;br /&gt;
 src component not installed, skipped&lt;br /&gt;
 Creating snapshot of existing boot environment... done.&lt;br /&gt;
 Installing updates...&lt;br /&gt;
 Restarting sshd after upgrade&lt;br /&gt;
 Performing sanity check on sshd configuration.&lt;br /&gt;
 Stopping sshd.&lt;br /&gt;
 Performing sanity check on sshd configuration.&lt;br /&gt;
 Starting sshd.&lt;br /&gt;
 Scanning /usr/share/certs/untrusted for certificates...&lt;br /&gt;
 Scanning /usr/share/certs/trusted for certificates...&lt;br /&gt;
  done.&lt;br /&gt;
&lt;br /&gt;
Перезагрузка FreeBSD после установки бинарных обновлений безопасности ОС:&lt;br /&gt;
&lt;br /&gt;
 # reboot&lt;br /&gt;
&lt;br /&gt;
== Проверка установленной версии FreeBSD ==&lt;br /&gt;
&lt;br /&gt;
 # freebsd-version -ku&lt;br /&gt;
 14.2-RELEASE-p1&lt;br /&gt;
 14.2-RELEASE-p7&lt;br /&gt;
&lt;br /&gt;
Сравнение списков предыдущих и обновлённых файлов конфигурации после обновления ОС:&lt;br /&gt;
&lt;br /&gt;
 # diff -rq /etc /etc.backup&lt;br /&gt;
 Only in /etc.backup/ssl/certs: 08063a00.0&lt;br /&gt;
 Only in /etc.backup/ssl/certs: 18856ac4.0&lt;br /&gt;
 Only in /etc.backup/ssl/certs: 57bcb2da.0&lt;br /&gt;
 Only in /etc.backup/ssl/certs: 5e98733a.0&lt;br /&gt;
 Only in /etc/ssl/certs: 616816f6.0&lt;br /&gt;
 Only in /etc/ssl/certs: 6a9bdba3.0&lt;br /&gt;
 Only in /etc/ssl/certs: 878d9bca.0&lt;br /&gt;
 Only in /etc/ssl/certs: a09a51ae.0&lt;br /&gt;
 Only in /etc/ssl/certs: b8d25de6.0&lt;br /&gt;
 Only in /etc/ssl/certs: ba8887ce.0&lt;br /&gt;
 Only in /etc/ssl/certs: ffdd40f9.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 03179a64.0&lt;br /&gt;
 Only in /etc/ssl/untrusted: 08063a00.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 080911ac.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 157753a5.0&lt;br /&gt;
 Only in /etc/ssl/untrusted: 18856ac4.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 2c543cd1.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 2e5ac55d.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 3e45d192.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 4a6481c9.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 5273a94c.0&lt;br /&gt;
 Only in /etc/ssl/untrusted: 57bcb2da.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 5c44d531.0&lt;br /&gt;
 Only in /etc/ssl/untrusted: 5e98733a.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 76cb8f92.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 861a399d.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 9c2e7d30.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: d853d49e.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: f3377b1b.0&lt;br /&gt;
&lt;br /&gt;
С 01 октября 2025 года срок поддержки FreeBSD 14.2-RELEASE истёк. И проблемы безопасности, обнаруженные после этой даты, исправляться не будут.&lt;br /&gt;
&lt;br /&gt;
 # freebsd-update fetch&lt;br /&gt;
 src component not installed, skipped&lt;br /&gt;
 Looking up update.FreeBSD.org mirrors... 3 mirrors found.&lt;br /&gt;
 Fetching metadata signature for 14.2-RELEASE from update1.freebsd.org... done.&lt;br /&gt;
 Fetching metadata index... done.&lt;br /&gt;
 Inspecting system... done.&lt;br /&gt;
 Preparing to download files... done.&lt;br /&gt;
 &lt;br /&gt;
 No updates needed to update system to 14.2-RELEASE-p7.&lt;br /&gt;
 &lt;br /&gt;
 WARNING: FreeBSD 14.2-RELEASE HAS PASSED ITS END-OF-LIFE DATE.&lt;br /&gt;
 Any security issues discovered after Wed Oct  1 03:00:00 MSK 2025&lt;br /&gt;
 will not have been corrected.&lt;br /&gt;
&lt;br /&gt;
Вывод команды сообщает об этом. Потребуется повышение версии ОС.&lt;br /&gt;
&lt;br /&gt;
== Обновление FreeBSD с версии 14.2-RELEASE до 14.3-RELEASE ==&lt;br /&gt;
&lt;br /&gt;
Повышение младшей версии ОС:&lt;br /&gt;
&lt;br /&gt;
 # freebsd-update upgrade -r 14.3-RELEASE&lt;br /&gt;
 src component not installed, skipped&lt;br /&gt;
 Looking up update.FreeBSD.org mirrors... 3 mirrors found.&lt;br /&gt;
 Fetching metadata signature for 14.2-RELEASE from update1.freebsd.org... done.&lt;br /&gt;
 Fetching metadata index... done.&lt;br /&gt;
 Fetching 1 metadata files... done.&lt;br /&gt;
 Inspecting system... done.&lt;br /&gt;
 &lt;br /&gt;
 The following components of FreeBSD seem to be installed:&lt;br /&gt;
 kernel/generic kernel/generic-dbg world/base world/lib32&lt;br /&gt;
 &lt;br /&gt;
 The following components of FreeBSD do not seem to be installed:&lt;br /&gt;
 world/base-dbg world/lib32-dbg&lt;br /&gt;
 &lt;br /&gt;
 Does this look reasonable (y/n)?&lt;br /&gt;
&lt;br /&gt;
Вывод команды спросит согласие на установку компонентов ОС.&lt;br /&gt;
&lt;br /&gt;
 To install the downloaded upgrades, run &#039;freebsd-update [options] install&#039;.&lt;br /&gt;
&lt;br /&gt;
Вывод команды предложит сделать продолжение обновления ОС:&lt;br /&gt;
&lt;br /&gt;
 # freebsd-update install&lt;br /&gt;
 src component not installed, skipped&lt;br /&gt;
 Creating snapshot of existing boot environment... done.&lt;br /&gt;
 Installing updates...&lt;br /&gt;
 Kernel updates have been installed.  Please reboot and run&lt;br /&gt;
 &#039;freebsd-update [options] install&#039; again to finish installing updates.&lt;br /&gt;
&lt;br /&gt;
Вывод команды предложит сделать перезагрузку ОС и продолжить обновление ОС:&lt;br /&gt;
 # reboot&lt;br /&gt;
&lt;br /&gt;
 # freebsd-update install&lt;br /&gt;
&lt;br /&gt;
Сравнение списков предыдущих и обновлённых файлов конфигурации после повышения версии ОС:&lt;br /&gt;
 # diff -rq /etc /etc.backup&lt;br /&gt;
 Files /etc/autofs/special_media and /etc.backup/autofs/special_media differ&lt;br /&gt;
 Files /etc/defaults/periodic.conf and /etc.backup/defaults/periodic.conf differ&lt;br /&gt;
 Files /etc/defaults/rc.conf and /etc.backup/defaults/rc.conf differ&lt;br /&gt;
 Files /etc/devd/iwmbtfw.conf and /etc.backup/devd/iwmbtfw.conf differ&lt;br /&gt;
 Only in /etc/devd: rtlbtfw.conf&lt;br /&gt;
 Files /etc/mtree/BSD.debug.dist and /etc.backup/mtree/BSD.debug.dist differ&lt;br /&gt;
 Files /etc/mtree/BSD.include.dist and /etc.backup/mtree/BSD.include.dist differ&lt;br /&gt;
 Files /etc/mtree/BSD.tests.dist and /etc.backup/mtree/BSD.tests.dist differ&lt;br /&gt;
 Files /etc/mtree/BSD.usr.dist and /etc.backup/mtree/BSD.usr.dist differ&lt;br /&gt;
 Files /etc/pkg/FreeBSD.conf and /etc.backup/pkg/FreeBSD.conf differ&lt;br /&gt;
 Files /etc/rc.d/iovctl and /etc.backup/rc.d/iovctl differ&lt;br /&gt;
 Files /etc/rc.d/ipfilter and /etc.backup/rc.d/ipfilter differ&lt;br /&gt;
 Files /etc/rc.d/kld and /etc.backup/rc.d/kld differ&lt;br /&gt;
 Files /etc/rc.d/sendmail and /etc.backup/rc.d/sendmail differ&lt;br /&gt;
 Files /etc/rc.d/var_run and /etc.backup/rc.d/var_run differ&lt;br /&gt;
 Files /etc/regdomain.xml and /etc.backup/regdomain.xml differ&lt;br /&gt;
 Files /etc/services and /etc.backup/services differ&lt;br /&gt;
 Files /etc/ssh/moduli and /etc.backup/ssh/moduli differ&lt;br /&gt;
 Files /etc/ssh/sshd_config and /etc.backup/ssh/sshd_config differ&lt;br /&gt;
&lt;br /&gt;
Все файлы конфигурации ОС, которые не редактировались вручную, обновлены автоматически.&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://wiki.bsdhowto.ru/index.php?title=FreeBSD_Update&amp;diff=225</id>
		<title>FreeBSD Update</title>
		<link rel="alternate" type="text/html" href="https://wiki.bsdhowto.ru/index.php?title=FreeBSD_Update&amp;diff=225"/>
		<updated>2025-12-01T16:03:02Z</updated>

		<summary type="html">&lt;p&gt;Igor: /* Скачивание бинарных обновлений безопасности FreeBSD */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Подготовка к установке обновлений безопасности FreeBSD ==&lt;br /&gt;
&lt;br /&gt;
Проверка текущей версии ОС:&lt;br /&gt;
&lt;br /&gt;
 # freebsd-version -ku&lt;br /&gt;
 14.2-RELEASE&lt;br /&gt;
 14.2-RELEASE&lt;br /&gt;
&lt;br /&gt;
Перед скачиванием и установкой обновлений безопасности FreeBSD следует сделать резервную копию файлов конфигурации ОС.&lt;br /&gt;
&lt;br /&gt;
 # cp -Rp /etc /etc.backup&lt;br /&gt;
&lt;br /&gt;
== Скачивание и установка бинарных обновлений безопасности FreeBSD с последующей перезагрузкой ==&lt;br /&gt;
&lt;br /&gt;
Скачивание бинарных обновлений ОС:&lt;br /&gt;
 # freebsd-update fetch&lt;br /&gt;
&lt;br /&gt;
== Установка бинарных обновлений безопасности и перезагрузка FreeBSD ==&lt;br /&gt;
&lt;br /&gt;
 # freebsd-update install&lt;br /&gt;
 src component not installed, skipped&lt;br /&gt;
 Creating snapshot of existing boot environment... done.&lt;br /&gt;
 Installing updates...&lt;br /&gt;
 Restarting sshd after upgrade&lt;br /&gt;
 Performing sanity check on sshd configuration.&lt;br /&gt;
 Stopping sshd.&lt;br /&gt;
 Performing sanity check on sshd configuration.&lt;br /&gt;
 Starting sshd.&lt;br /&gt;
 Scanning /usr/share/certs/untrusted for certificates...&lt;br /&gt;
 Scanning /usr/share/certs/trusted for certificates...&lt;br /&gt;
  done.&lt;br /&gt;
&lt;br /&gt;
Перезагрузка FreeBSD после установки бинарных обновлений безопасности ОС:&lt;br /&gt;
&lt;br /&gt;
 # reboot&lt;br /&gt;
&lt;br /&gt;
== Проверка установленной версии FreeBSD ==&lt;br /&gt;
&lt;br /&gt;
 # freebsd-version -ku&lt;br /&gt;
 14.2-RELEASE-p1&lt;br /&gt;
 14.2-RELEASE-p7&lt;br /&gt;
&lt;br /&gt;
Сравнение списков предыдущих и обновлённых файлов конфигурации после обновления ОС:&lt;br /&gt;
&lt;br /&gt;
 # diff -rq /etc /etc.backup&lt;br /&gt;
 Only in /etc.backup/ssl/certs: 08063a00.0&lt;br /&gt;
 Only in /etc.backup/ssl/certs: 18856ac4.0&lt;br /&gt;
 Only in /etc.backup/ssl/certs: 57bcb2da.0&lt;br /&gt;
 Only in /etc.backup/ssl/certs: 5e98733a.0&lt;br /&gt;
 Only in /etc/ssl/certs: 616816f6.0&lt;br /&gt;
 Only in /etc/ssl/certs: 6a9bdba3.0&lt;br /&gt;
 Only in /etc/ssl/certs: 878d9bca.0&lt;br /&gt;
 Only in /etc/ssl/certs: a09a51ae.0&lt;br /&gt;
 Only in /etc/ssl/certs: b8d25de6.0&lt;br /&gt;
 Only in /etc/ssl/certs: ba8887ce.0&lt;br /&gt;
 Only in /etc/ssl/certs: ffdd40f9.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 03179a64.0&lt;br /&gt;
 Only in /etc/ssl/untrusted: 08063a00.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 080911ac.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 157753a5.0&lt;br /&gt;
 Only in /etc/ssl/untrusted: 18856ac4.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 2c543cd1.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 2e5ac55d.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 3e45d192.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 4a6481c9.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 5273a94c.0&lt;br /&gt;
 Only in /etc/ssl/untrusted: 57bcb2da.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 5c44d531.0&lt;br /&gt;
 Only in /etc/ssl/untrusted: 5e98733a.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 76cb8f92.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 861a399d.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 9c2e7d30.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: d853d49e.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: f3377b1b.0&lt;br /&gt;
&lt;br /&gt;
С 01 октября 2025 года срок поддержки FreeBSD 14.2-RELEASE истёк. И проблемы безопасности, обнаруженные после этой даты, исправляться не будут.&lt;br /&gt;
&lt;br /&gt;
 # freebsd-update fetch&lt;br /&gt;
 src component not installed, skipped&lt;br /&gt;
 Looking up update.FreeBSD.org mirrors... 3 mirrors found.&lt;br /&gt;
 Fetching metadata signature for 14.2-RELEASE from update1.freebsd.org... done.&lt;br /&gt;
 Fetching metadata index... done.&lt;br /&gt;
 Inspecting system... done.&lt;br /&gt;
 Preparing to download files... done.&lt;br /&gt;
 &lt;br /&gt;
 No updates needed to update system to 14.2-RELEASE-p7.&lt;br /&gt;
 &lt;br /&gt;
 WARNING: FreeBSD 14.2-RELEASE HAS PASSED ITS END-OF-LIFE DATE.&lt;br /&gt;
 Any security issues discovered after Wed Oct  1 03:00:00 MSK 2025&lt;br /&gt;
 will not have been corrected.&lt;br /&gt;
&lt;br /&gt;
Вывод команды сообщает об этом. Потребуется повышение версии ОС.&lt;br /&gt;
&lt;br /&gt;
== Обновление FreeBSD с версии 14.2-RELEASE до 14.3-RELEASE ==&lt;br /&gt;
&lt;br /&gt;
Повышение младшей версии ОС:&lt;br /&gt;
&lt;br /&gt;
 # freebsd-update upgrade -r 14.3-RELEASE&lt;br /&gt;
 src component not installed, skipped&lt;br /&gt;
 Looking up update.FreeBSD.org mirrors... 3 mirrors found.&lt;br /&gt;
 Fetching metadata signature for 14.2-RELEASE from update1.freebsd.org... done.&lt;br /&gt;
 Fetching metadata index... done.&lt;br /&gt;
 Fetching 1 metadata files... done.&lt;br /&gt;
 Inspecting system... done.&lt;br /&gt;
 &lt;br /&gt;
 The following components of FreeBSD seem to be installed:&lt;br /&gt;
 kernel/generic kernel/generic-dbg world/base world/lib32&lt;br /&gt;
 &lt;br /&gt;
 The following components of FreeBSD do not seem to be installed:&lt;br /&gt;
 world/base-dbg world/lib32-dbg&lt;br /&gt;
 &lt;br /&gt;
 Does this look reasonable (y/n)?&lt;br /&gt;
&lt;br /&gt;
Вывод команды спросит согласие на установку компонентов ОС.&lt;br /&gt;
&lt;br /&gt;
 To install the downloaded upgrades, run &#039;freebsd-update [options] install&#039;.&lt;br /&gt;
&lt;br /&gt;
Вывод команды предложит сделать продолжение обновления ОС:&lt;br /&gt;
&lt;br /&gt;
 # freebsd-update install&lt;br /&gt;
 src component not installed, skipped&lt;br /&gt;
 Creating snapshot of existing boot environment... done.&lt;br /&gt;
 Installing updates...&lt;br /&gt;
 Kernel updates have been installed.  Please reboot and run&lt;br /&gt;
 &#039;freebsd-update [options] install&#039; again to finish installing updates.&lt;br /&gt;
&lt;br /&gt;
Вывод команды предложит сделать перезагрузку ОС и продолжить обновление ОС:&lt;br /&gt;
 # reboot&lt;br /&gt;
&lt;br /&gt;
 # freebsd-update install&lt;br /&gt;
&lt;br /&gt;
Сравнение списков предыдущих и обновлённых файлов конфигурации после повышения версии ОС:&lt;br /&gt;
 # diff -rq /etc /etc.backup&lt;br /&gt;
 Files /etc/autofs/special_media and /etc.backup/autofs/special_media differ&lt;br /&gt;
 Files /etc/defaults/periodic.conf and /etc.backup/defaults/periodic.conf differ&lt;br /&gt;
 Files /etc/defaults/rc.conf and /etc.backup/defaults/rc.conf differ&lt;br /&gt;
 Files /etc/devd/iwmbtfw.conf and /etc.backup/devd/iwmbtfw.conf differ&lt;br /&gt;
 Only in /etc/devd: rtlbtfw.conf&lt;br /&gt;
 Files /etc/mtree/BSD.debug.dist and /etc.backup/mtree/BSD.debug.dist differ&lt;br /&gt;
 Files /etc/mtree/BSD.include.dist and /etc.backup/mtree/BSD.include.dist differ&lt;br /&gt;
 Files /etc/mtree/BSD.tests.dist and /etc.backup/mtree/BSD.tests.dist differ&lt;br /&gt;
 Files /etc/mtree/BSD.usr.dist and /etc.backup/mtree/BSD.usr.dist differ&lt;br /&gt;
 Files /etc/pkg/FreeBSD.conf and /etc.backup/pkg/FreeBSD.conf differ&lt;br /&gt;
 Files /etc/rc.d/iovctl and /etc.backup/rc.d/iovctl differ&lt;br /&gt;
 Files /etc/rc.d/ipfilter and /etc.backup/rc.d/ipfilter differ&lt;br /&gt;
 Files /etc/rc.d/kld and /etc.backup/rc.d/kld differ&lt;br /&gt;
 Files /etc/rc.d/sendmail and /etc.backup/rc.d/sendmail differ&lt;br /&gt;
 Files /etc/rc.d/var_run and /etc.backup/rc.d/var_run differ&lt;br /&gt;
 Files /etc/regdomain.xml and /etc.backup/regdomain.xml differ&lt;br /&gt;
 Files /etc/services and /etc.backup/services differ&lt;br /&gt;
 Files /etc/ssh/moduli and /etc.backup/ssh/moduli differ&lt;br /&gt;
 Files /etc/ssh/sshd_config and /etc.backup/ssh/sshd_config differ&lt;br /&gt;
&lt;br /&gt;
Все файлы конфигурации ОС, которые не редактировались вручную, обновлены автоматически.&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://wiki.bsdhowto.ru/index.php?title=PKG&amp;diff=224</id>
		<title>PKG</title>
		<link rel="alternate" type="text/html" href="https://wiki.bsdhowto.ru/index.php?title=PKG&amp;diff=224"/>
		<updated>2025-12-01T16:00:03Z</updated>

		<summary type="html">&lt;p&gt;Igor: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Установка ports-mgmt/pkg ==&lt;br /&gt;
&lt;br /&gt;
PKG - инструмент управления бинарными пакетами во FreeBSD (менеджер пакетов).&lt;br /&gt;
&lt;br /&gt;
Подробная информация на сайте https://github.com/freebsd/pkg&lt;br /&gt;
&lt;br /&gt;
Установка из пакета:&lt;br /&gt;
 # pkg install pkg&lt;br /&gt;
 The package management tool is not yet installed on your system.&lt;br /&gt;
 Do you want to fetch and install it now? [y/N]:&lt;br /&gt;
&lt;br /&gt;
Если менеджер пакетов не установлен, он спросит согласия на установку. После установки менеджер пакетов не требует дополнительных настроек. Он сразу готов к использованию.&lt;br /&gt;
&lt;br /&gt;
Проверка установки PKG:&lt;br /&gt;
 # pkg version -v | grep pkg&lt;br /&gt;
 pkg-2.4.2                          =   up-to-date with remote&lt;br /&gt;
&lt;br /&gt;
Вывод команды сообщает номер текущей установленной версии &amp;quot;2.4.2&amp;quot;, а символ &amp;quot;=&amp;quot; сообщает, что это актуальная версия пакета.&lt;br /&gt;
&lt;br /&gt;
== Другие полезные команды PKG ==&lt;br /&gt;
&lt;br /&gt;
Проверка наличия установленных пакетов с выявленными уязвимостями:&lt;br /&gt;
 # pkg audit -F&lt;br /&gt;
 Fetching vuln.xml.xz: 100%    1 MiB   1.2MB/s    00:01&lt;br /&gt;
 0 problem(s) in 0 package(s) found.&lt;br /&gt;
&lt;br /&gt;
Вывод команды сообщает, что пакетов с обнаруженными уязвимостями не установлено.&lt;br /&gt;
&lt;br /&gt;
Автоматическое удаление ненужных пакетов:&lt;br /&gt;
 # pkg autoremove&lt;br /&gt;
 Checking integrity... done (0 conflicting)&lt;br /&gt;
 Nothing to do.&lt;br /&gt;
&lt;br /&gt;
Вывод команды сообщает, что пакетов для автоматического удаления не обнаружено.&lt;br /&gt;
&lt;br /&gt;
Удаление загруженных пакетов из кеша в папке /var/cache/pkg, которые заменены более новыми версиями, а также пакетов, которые больше не предоставляются:&lt;br /&gt;
 # pkg clean&lt;br /&gt;
&lt;br /&gt;
Удаление загруженных пакетов из кеша в папке /var/cache/pkg, включая те, которые ещё не были заменены более новыми версиями и всё ещё используются:&lt;br /&gt;
 # pkg clean -a&lt;br /&gt;
&lt;br /&gt;
Вывод списка всех установленных пакетов:&lt;br /&gt;
 # pkg version -v&lt;br /&gt;
 Updating FreeBSD repository catalogue...&lt;br /&gt;
 FreeBSD repository is up to date.&lt;br /&gt;
 Updating FreeBSD-kmods repository catalogue...&lt;br /&gt;
 FreeBSD-kmods repository is up to date.&lt;br /&gt;
 All repositories are up to date.&lt;br /&gt;
 gettext-runtime-0.23.1             =   up-to-date with remote&lt;br /&gt;
 indexinfo-0.3.1_1                  =   up-to-date with remote&lt;br /&gt;
 pkg-2.4.2                          =   up-to-date with remote&lt;br /&gt;
 sudo-1.9.17p2_1                    =   up-to-date with remote&lt;br /&gt;
&lt;br /&gt;
Символ &amp;quot;=&amp;quot; информируют, что установлена актуальная версия пакета.&lt;br /&gt;
&lt;br /&gt;
Вывод списка установленных пакетов, которые имеют новую актуальную версию:&lt;br /&gt;
 # pkg version -v | grep &#039;&amp;lt;&#039;&lt;br /&gt;
&lt;br /&gt;
На данный момент новых версий нет.&lt;br /&gt;
&lt;br /&gt;
Проверка зависимых пакетов от указанного пакета. Например, зависимых от gettext-runtime-0.23.1:&lt;br /&gt;
 # pkg info -r gettext-runtime-0.23.1&lt;br /&gt;
 gettext-runtime-0.23.1:&lt;br /&gt;
         sudo-1.9.17p2_1&lt;br /&gt;
         sudo-1.9.17p2_1 (libintl.so.8)&lt;br /&gt;
&lt;br /&gt;
Вывод команды сообщает, что от пакета gettext-runtime-0.23.1 зависит пакет sudo-1.9.17p2_1:&lt;br /&gt;
&lt;br /&gt;
Проверка пакетов, от которых зависит указанный пакет. Например, sudo-1.9.17p2_1:&lt;br /&gt;
 # pkg info -d sudo-1.9.17p2_1&lt;br /&gt;
 sudo-1.9.17p2_1:&lt;br /&gt;
         gettext-runtime-0.23.1&lt;br /&gt;
         gettext-runtime-0.23.1 (libintl.so.8)&lt;br /&gt;
&lt;br /&gt;
Вывод команды сообщает, что пакет sudo-1.9.17p2_1 зависит от пакета gettext-runtime-0.23.1.&lt;br /&gt;
&lt;br /&gt;
Просмотр списка установленных файлов для пакета indexinfo-0.3.1_1:&lt;br /&gt;
 # pkg info -l indexinfo-0.3.1_1&lt;br /&gt;
 indexinfo-0.3.1_1:&lt;br /&gt;
         /usr/local/bin/indexinfo&lt;br /&gt;
         /usr/local/share/licenses/indexinfo-0.3.1_1/BSD2CLAUSE&lt;br /&gt;
         /usr/local/share/licenses/indexinfo-0.3.1_1/LICENSE&lt;br /&gt;
         /usr/local/share/licenses/indexinfo-0.3.1_1/catalog.mk&lt;br /&gt;
&lt;br /&gt;
== Обновление пакетов ==&lt;br /&gt;
&lt;br /&gt;
Обновление пакета:&lt;br /&gt;
 # pkg upgrade sudo&lt;br /&gt;
 Updating FreeBSD repository catalogue...&lt;br /&gt;
 Fetching data.pkg: 100%   10 MiB   1.8MB/s    00:06&lt;br /&gt;
 Processing entries: 100%&lt;br /&gt;
 FreeBSD repository update completed. 36394 packages processed.&lt;br /&gt;
 All repositories are up to date.&lt;br /&gt;
 The following 1 package(s) will be affected (of 0 checked):&lt;br /&gt;
 &lt;br /&gt;
 Installed packages to be UPGRADED:&lt;br /&gt;
         sudo: 1.9.17 -&amp;gt; 1.9.17p1&lt;br /&gt;
 &lt;br /&gt;
 Number of packages to be upgraded: 1&lt;br /&gt;
 &lt;br /&gt;
 2 MiB to be downloaded.&lt;br /&gt;
 &lt;br /&gt;
 Proceed with this action? [y/N]: y&lt;br /&gt;
 [1/1] Fetching sudo-1.9.17p1.pkg: 100%    2 MiB   1.8MB/s    00:01&lt;br /&gt;
 Checking integrity... done (0 conflicting)&lt;br /&gt;
 [1/1] Upgrading sudo from 1.9.17 to 1.9.17p1...&lt;br /&gt;
 [1/1] Extracting sudo-1.9.17p1: 100%&lt;br /&gt;
 You may need to manually remove /usr/local/etc/sudoers if it is no longer needed.&lt;br /&gt;
&lt;br /&gt;
== Удаление пакетов ==&lt;br /&gt;
&lt;br /&gt;
Удаление indexinfo-0.3.1_1 приведёт к рекурсивному удалению всех зависимых пакетов, в данном случае gettext-runtime-0.23.1 и sudo-1.9.17p2_1:&lt;br /&gt;
 # pkg delete indexinfo-0.3.1_1&lt;br /&gt;
 Checking integrity... done (0 conflicting)&lt;br /&gt;
 Deinstallation has been requested for the following 3 packages (of 0 packages in the universe):&lt;br /&gt;
 &lt;br /&gt;
 Installed packages to be REMOVED:&lt;br /&gt;
         gettext-runtime: 0.23.1&lt;br /&gt;
         indexinfo: 0.3.1_1&lt;br /&gt;
         sudo: 1.9.17p2_1&lt;br /&gt;
 &lt;br /&gt;
 Number of packages to be removed: 3&lt;br /&gt;
 &lt;br /&gt;
 The operation will free 9 MiB.&lt;br /&gt;
 &lt;br /&gt;
 Proceed with deinstalling packages? [y/N]:&lt;br /&gt;
&lt;br /&gt;
Команда запросит согласие на удаление зависимых пакетов.&lt;br /&gt;
&lt;br /&gt;
После подтверждения пакеты будут удалены:&lt;br /&gt;
 [1/3] Deinstalling sudo-1.9.17p2_1...&lt;br /&gt;
 [1/3] Deleting files for sudo-1.9.17p2_1: 100%&lt;br /&gt;
 [2/3] Deinstalling gettext-runtime-0.23.1...&lt;br /&gt;
 [2/3] Deleting files for gettext-runtime-0.23.1: 100%&lt;br /&gt;
 [3/3] Deinstalling indexinfo-0.3.1_1...&lt;br /&gt;
 [3/3] Deleting files for indexinfo-0.3.1_1: 100%&lt;br /&gt;
&lt;br /&gt;
Удаление всех пакетов включая PKG:&lt;br /&gt;
 # pkg delete -af&lt;br /&gt;
 Checking integrity... done (0 conflicting)&lt;br /&gt;
 Deinstallation has been requested for the following 1 packages (of 0 packages in the universe):&lt;br /&gt;
 &lt;br /&gt;
 Installed packages to be REMOVED:&lt;br /&gt;
         pkg: 2.4.2&lt;br /&gt;
 &lt;br /&gt;
 Number of packages to be removed: 1&lt;br /&gt;
 &lt;br /&gt;
 The operation will free 47 MiB.&lt;br /&gt;
 &lt;br /&gt;
 Proceed with deinstalling packages? [y/N]: y&lt;br /&gt;
 [1/1] Deinstalling pkg-2.4.2...&lt;br /&gt;
 [1/1] Deleting files for pkg-2.4.2: 100%&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://wiki.bsdhowto.ru/index.php?title=Postfix_Admin&amp;diff=223</id>
		<title>Postfix Admin</title>
		<link rel="alternate" type="text/html" href="https://wiki.bsdhowto.ru/index.php?title=Postfix_Admin&amp;diff=223"/>
		<updated>2025-11-30T09:09:49Z</updated>

		<summary type="html">&lt;p&gt;Igor: /* Начальная настройка postfixadmin-php84 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Установка postfixadmin-php84 ==&lt;br /&gt;
&lt;br /&gt;
Postfix Admin — веб-инструмент управления, написанный на PHP для Postfix (но прекрасно подходит и для Exim) с виртуальными доменами в стиле Postfix, использующими поиск в MySQL или PostgreSQL. Так-же Postfix Admin работает на Apache, Lighttpd и на любом веб-сервере с поддержкой PHP 5.1.2+.&lt;br /&gt;
&lt;br /&gt;
Подробная информация о Postfix Admin на сайте http://www.postfixadmin.org/&lt;br /&gt;
&lt;br /&gt;
Установка из пакета (предварительная установка пакетов PKG и PHP не требуется, дополнительная информация о которых в статьях [[PKG]] и [[PHP+Nginx|Установка lang/php84]]; потребуется установка СУБД, например - MySQL, дополнительная информация о которой в статье [[MySQL]]):&lt;br /&gt;
 # pkg install postfixadmin-php84&lt;br /&gt;
&lt;br /&gt;
Проверка установки postfixadmin-php84:&lt;br /&gt;
 # pkg version -v | grep php84&lt;br /&gt;
 php84-8.4.5_1                      =   up-to-date with remote&lt;br /&gt;
 php84-mbstring-8.4.5_1             =   up-to-date with remote&lt;br /&gt;
 php84-pdo-8.4.5_1                  =   up-to-date with remote&lt;br /&gt;
 php84-pdo_sqlite-8.4.5_1           =   up-to-date with remote&lt;br /&gt;
 php84-pecl-imap-1.0.3              =   up-to-date with remote&lt;br /&gt;
 php84-session-8.4.5_1              =   up-to-date with remote&lt;br /&gt;
 postfixadmin-php84-3.4.d.20211018  =   up-to-date with remote&lt;br /&gt;
&lt;br /&gt;
Вывод команды содержит список установленных расширений PHP. В списке отсутствует расширение php84-pdo_mysql, которое требуется для СУБД MySQL, если для Postfix Admin будет использована она.&lt;br /&gt;
&lt;br /&gt;
Установка из пакета расширения php84-pdo_mysql:&lt;br /&gt;
 # pkg install php84-pdo_mysql&lt;br /&gt;
 Updating FreeBSD repository catalogue...&lt;br /&gt;
 FreeBSD repository is up to date.&lt;br /&gt;
 All repositories are up to date.&lt;br /&gt;
 The following 1 package(s) will be affected (of 0 checked):&lt;br /&gt;
 &lt;br /&gt;
 New packages to be INSTALLED:&lt;br /&gt;
         php84-pdo_mysql: 8.4.5_1&lt;br /&gt;
 &lt;br /&gt;
 Number of packages to be installed: 1&lt;br /&gt;
 &lt;br /&gt;
 19 KiB to be downloaded.&lt;br /&gt;
 &lt;br /&gt;
 Proceed with this action? [y/N]: y&lt;br /&gt;
 [1/1] Fetching php84-pdo_mysql-8.4.5_1.pkg: 100%   19 KiB  19.7kB/s    00:01&lt;br /&gt;
 Checking integrity... done (0 conflicting)&lt;br /&gt;
 [1/1] Installing php84-pdo_mysql-8.4.5_1...&lt;br /&gt;
 [1/1] Extracting php84-pdo_mysql-8.4.5_1: 100%&lt;br /&gt;
 =====&lt;br /&gt;
 Message from php84-pdo_mysql-8.4.5_1:&lt;br /&gt;
 &lt;br /&gt;
 --&lt;br /&gt;
 This file has been added to automatically load the installed extension:&lt;br /&gt;
 /usr/local/etc/php/ext-30-pdo_mysql.ini.sample&lt;br /&gt;
&lt;br /&gt;
Повторная проверка установки:&lt;br /&gt;
 # pkg version -v | grep php84&lt;br /&gt;
 php84-8.4.5_1                      =   up-to-date with remote&lt;br /&gt;
 php84-mbstring-8.4.5_1             =   up-to-date with remote&lt;br /&gt;
 php84-pdo-8.4.5_1                  =   up-to-date with remote&lt;br /&gt;
 php84-pdo_mysql-8.4.5_1            =   up-to-date with remote&lt;br /&gt;
 php84-pdo_sqlite-8.4.5_1           =   up-to-date with remote&lt;br /&gt;
 php84-pecl-imap-1.0.3              =   up-to-date with remote&lt;br /&gt;
 php84-session-8.4.5_1              =   up-to-date with remote&lt;br /&gt;
 postfixadmin-php84-3.4.d.20211018  =   up-to-date with remote&lt;br /&gt;
&lt;br /&gt;
Вывод команды содержит список всех необходимых установленных расширений PHP.&lt;br /&gt;
&lt;br /&gt;
Перезапуск PHP-FPM после установки расширений PHP:&lt;br /&gt;
 # service php_fpm restart&lt;br /&gt;
 Performing sanity check on php-fpm configuration:&lt;br /&gt;
 [28-Apr-2025 16:58:14] NOTICE: configuration file /usr/local/etc/php-fpm.conf test is successful&lt;br /&gt;
 Stopping php_fpm.&lt;br /&gt;
 Performing sanity check on php-fpm configuration:&lt;br /&gt;
 [28-Apr-2025 16:58:14] NOTICE: configuration file /usr/local/etc/php-fpm.conf test is successful&lt;br /&gt;
 Starting php_fpm.&lt;br /&gt;
&lt;br /&gt;
== Начальная настройка postfixadmin-php84 ==&lt;br /&gt;
&lt;br /&gt;
Копирование структуры сайта:&lt;br /&gt;
 # cd /usr/local/www&lt;br /&gt;
 # cp -Rp postfixadmin mailadmin.mydomain.ru&lt;br /&gt;
&lt;br /&gt;
Настройка сайта Postfix Admin в файле /usr/local/etc/nginx/mailadmin.mydomain.ru.conf:&lt;br /&gt;
 server {&lt;br /&gt;
     listen       80;&lt;br /&gt;
     server_name  mailadmin.mydomain.ru;&lt;br /&gt;
 &lt;br /&gt;
     access_log   /var/log/nginx/mailadmin.mydomain.ru.access.log;&lt;br /&gt;
     error_log    /var/log/nginx/mailadmin.mydomain.ru.error.log;&lt;br /&gt;
 &lt;br /&gt;
     location / {&lt;br /&gt;
         root   /usr/local/www/mailadmin.mydomain.ru/public;&lt;br /&gt;
         index  index.php;&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000&lt;br /&gt;
     #&lt;br /&gt;
     location ~ \.php$ {&lt;br /&gt;
         fastcgi_pass   127.0.0.1:9000;&lt;br /&gt;
         fastcgi_index  index.php;&lt;br /&gt;
         fastcgi_param  SCRIPT_FILENAME  /usr/local/www/mailadmin.mydomain.ru/public$fastcgi_script_name;&lt;br /&gt;
         include        fastcgi_params;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Включение конфигурации сайта Postfix Admin в файл /usr/local/etc/nginx/nginx.conf:&lt;br /&gt;
     include /usr/local/etc/nginx/mailadmin.mydomain.ru.conf;&lt;br /&gt;
&lt;br /&gt;
Перезагрузка конфигурации Nginx после первоначальной настройки сайта для доступа к нему со стороны Let&#039;s Encrypt по HTTP:&lt;br /&gt;
 # service nginx reload&lt;br /&gt;
 Performing sanity check on nginx configuration:&lt;br /&gt;
 nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok&lt;br /&gt;
 nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful&lt;br /&gt;
&lt;br /&gt;
== Получение сертификата ==&lt;br /&gt;
&lt;br /&gt;
Получение сертификата для домена:&lt;br /&gt;
 # certbot --nginx -d mailadmin.mydomain.ru&lt;br /&gt;
&lt;br /&gt;
Скрипт включит следующие строки в файл конфигурации сайта /usr/local/etc/nginx/mailadmin.mydomain.ru.conf: &lt;br /&gt;
     listen 443 ssl; # managed by Certbot&lt;br /&gt;
     ssl_certificate /usr/local/etc/letsencrypt/live/mailadmin.mydomain.ru/fullchain.pem; # managed by Certbot&lt;br /&gt;
     ssl_certificate_key /usr/local/etc/letsencrypt/live/mailadmin.mydomain.ru/privkey.pem; # managed by Certbot&lt;br /&gt;
     include /usr/local/etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot&lt;br /&gt;
     ssl_dhparam /usr/local/etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot&lt;br /&gt;
&lt;br /&gt;
Перезагрузка конфигурации Nginx для включения доступа по HTTPS:&lt;br /&gt;
 # service nginx reload&lt;br /&gt;
 Performing sanity check on nginx configuration:&lt;br /&gt;
 nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok&lt;br /&gt;
 nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful&lt;br /&gt;
&lt;br /&gt;
== Окончательная настройка сайта ==&lt;br /&gt;
&lt;br /&gt;
Копирование файла настройки:&lt;br /&gt;
 # cd /usr/local/www/mailadmin.mydomain.ru&lt;br /&gt;
 # cp config.inc.php config.local.php&lt;br /&gt;
&lt;br /&gt;
Параметр подразумевает, что все необходимые настройки внесены в файл /usr/local/www/mailadmin.mydomain.ru/config.local.php:&lt;br /&gt;
 $CONF[&#039;configured&#039;] = true;&lt;br /&gt;
&lt;br /&gt;
Создание хеша установочного пароля:&lt;br /&gt;
 # php -r &#039;echo password_hash(&amp;quot;&amp;lt;пароль&amp;gt;&amp;quot;, PASSWORD_DEFAULT); echo &amp;quot;\n&amp;quot;;&#039;&lt;br /&gt;
 $2y$12$w7H3Vo2EIuHOHRxObmUWZ.DpsujtU5yy8PWbfYxzXBSe2tun/qjTG&lt;br /&gt;
&lt;br /&gt;
Добавление полученного хеша файл настроек /usr/local/www/mailadmin.mydomain.ru/config.local.php:&lt;br /&gt;
 $CONF[&#039;setup_password&#039;] = &#039;$2y$12$w7H3Vo2EIuHOHRxObmUWZ.DpsujtU5yy8PWbfYxzXBSe2tun/qjTG&#039;;&lt;br /&gt;
&lt;br /&gt;
Настройка языка:&lt;br /&gt;
 $CONF[&#039;default_language&#039;] = &#039;ru&#039;;&lt;br /&gt;
&lt;br /&gt;
Пример настройки доступа Postfix Admin к СУБД в файле /usr/local/www/mailadmin.mydomain.ru/config.local.php&lt;br /&gt;
 $CONF[&#039;database_type&#039;] = &#039;mysqli&#039;;&lt;br /&gt;
 $CONF[&#039;database_host&#039;] = &#039;&amp;lt;IP-адрес СУБД&amp;gt;&#039;;&lt;br /&gt;
 $CONF[&#039;database_user&#039;] = &#039;mailadmin&#039;;&lt;br /&gt;
 $CONF[&#039;database_password&#039;] = &#039;&amp;lt;пароль&amp;gt;&#039;;&lt;br /&gt;
 $CONF[&#039;database_name&#039;] = &#039;mailadmin&#039;;&lt;br /&gt;
&lt;br /&gt;
Пример способа шифрования паролей почтовых ящиков (в данном случае пароли сохраняються в базе данных Postfix Admin в открытом виде, что небезопасно):&lt;br /&gt;
 $CONF[&#039;encrypt&#039;] = &#039;cleartext&#039;;&lt;br /&gt;
&lt;br /&gt;
Создание базы данных Postfix Admin:&lt;br /&gt;
 # mysql -u root -p&lt;br /&gt;
 &lt;br /&gt;
 &amp;gt; create database mailadmin;&lt;br /&gt;
 Query OK, 1 row affected (0.01 sec)&lt;br /&gt;
&lt;br /&gt;
Предоставление доступа пользователю &#039;mailadmin&#039; к базе данных &#039;mailadmin&#039; с хоста &#039;&amp;lt;IP-адрес&amp;gt;&#039; (потребуется доступ с хостов, где расположены Postfix Admin, SMTP-сервер и IMAP-сервер) и применение изменений:&lt;br /&gt;
 &amp;gt; create user &#039;mailadmin&#039;@&#039;&amp;lt;IP-адрес&amp;gt;&#039; identified by &#039;&amp;lt;пароль&amp;gt;&#039;;&lt;br /&gt;
 Query OK, 0 rows affected (0.04 sec)&lt;br /&gt;
 &lt;br /&gt;
 &amp;gt; grant all on mailadmin.* to &#039;mailadmin&#039;@&#039;&amp;lt;IP-адрес&amp;gt;&#039;;&lt;br /&gt;
 Query OK, 0 rows affected (0.00 sec)&lt;br /&gt;
 &lt;br /&gt;
 &amp;gt; flush privileges;&lt;br /&gt;
 Query OK, 0 rows affected (0.01 sec)&lt;br /&gt;
&lt;br /&gt;
Переход на сайт:&lt;br /&gt;
 https://mailadmin.mydomain.ru/setup.php&lt;br /&gt;
&lt;br /&gt;
Пример вывода сайта:&lt;br /&gt;
 &#039;&#039;&#039;Hosting Environment Check&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;Information&#039;&#039;&#039;&lt;br /&gt;
 ✅ PHP version - 8.4.5&lt;br /&gt;
 ✅ Postfixadmin public url detected as http://mailadmin.mydomain.ru/ use $CONF[&#039;site_url&#039;] to override&lt;br /&gt;
 ✅ Postfixadmin installed at - /usr/local/www/mailadmin.mydomain.ru/public&lt;br /&gt;
 ✅ config.local.php file found : /usr/local/www/mailadmin.mydomain.ru/config.local.php&lt;br /&gt;
 ✅ Database - MySQL support available&lt;br /&gt;
 ✅ Database - SQLite support available&lt;br /&gt;
 ✅ Password hashing - $CONF[&amp;quot;encrypt&amp;quot;] = cleartext&lt;br /&gt;
 ✅ Password hashing - $CONF[&amp;quot;encrypt&amp;quot;] - hash generation OK&lt;br /&gt;
 ✅ Database connection configured OK (using PDO mysql:mysql:host=10.xxx.yyy.zzz;dbname=mailadmin;charset=UTF8)&lt;br /&gt;
 ✅ Database connection - Connected OK&lt;br /&gt;
 ✅ Depends on: PHP session support - OK&lt;br /&gt;
 ✅ Depends on: PHP pcre support - OK&lt;br /&gt;
 ✅ Depends on: PHP mbstring support - OK&lt;br /&gt;
 ✅ Optional - PHP IMAP functions - OK&lt;br /&gt;
&lt;br /&gt;
Дальнейший вывод сайта:&lt;br /&gt;
 Database Update&lt;br /&gt;
 &lt;br /&gt;
 Everything seems fine... attempting to create/update database structure&lt;br /&gt;
 &lt;br /&gt;
 Updating database:&lt;br /&gt;
 &lt;br /&gt;
 - old version: 0; target version: 1845&lt;br /&gt;
 &lt;br /&gt;
   (If the update doesn&#039;t work, run setup.php?debug=1 to see the detailed error messages and SQL queries.)&lt;br /&gt;
 &lt;br /&gt;
 updating to version 1 (MySQL)...   done&lt;br /&gt;
 updating to version 2 (MySQL)...   done&lt;br /&gt;
 updating to version 3 (MySQL)...   done&lt;br /&gt;
 &#039;&#039;&#039;[список пропущен]&#039;&#039;&#039;&lt;br /&gt;
 updating to version 1843 (all databases)...   done&lt;br /&gt;
 updating to version 1844 (all databases)...   done&lt;br /&gt;
 updating to version 1845 (all databases)...   done&lt;br /&gt;
&lt;br /&gt;
Последняя строка сообщает об обновлении базы данных Postfix Admin до последней актуальной версии.&lt;br /&gt;
&lt;br /&gt;
Сайт предложит настроить учётную запись администратора, после чего можно использовать Postfix Admin для администрирования почтовых доменов, ящиков и алиасов.&lt;br /&gt;
&lt;br /&gt;
Приглашение в управление Postfix Admin:&lt;br /&gt;
[[Файл:2025050201.png|left|мини]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
Вид главной страницы Postfix Admin:&lt;br /&gt;
[[Файл:2025050202.png|left|мини]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
Пример почтового алиаса домена и домена, на который будет приходить почта:&lt;br /&gt;
[[Файл:2025050203.png|left|мини]]&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://wiki.bsdhowto.ru/index.php?title=Postfix_Admin&amp;diff=222</id>
		<title>Postfix Admin</title>
		<link rel="alternate" type="text/html" href="https://wiki.bsdhowto.ru/index.php?title=Postfix_Admin&amp;diff=222"/>
		<updated>2025-11-29T17:23:14Z</updated>

		<summary type="html">&lt;p&gt;Igor: /* Окончательная настройка сайта */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Установка postfixadmin-php84 ==&lt;br /&gt;
&lt;br /&gt;
Postfix Admin — веб-инструмент управления, написанный на PHP для Postfix (но прекрасно подходит и для Exim) с виртуальными доменами в стиле Postfix, использующими поиск в MySQL или PostgreSQL. Так-же Postfix Admin работает на Apache, Lighttpd и на любом веб-сервере с поддержкой PHP 5.1.2+.&lt;br /&gt;
&lt;br /&gt;
Подробная информация о Postfix Admin на сайте http://www.postfixadmin.org/&lt;br /&gt;
&lt;br /&gt;
Установка из пакета (предварительная установка пакетов PKG и PHP не требуется, дополнительная информация о которых в статьях [[PKG]] и [[PHP+Nginx|Установка lang/php84]]; потребуется установка СУБД, например - MySQL, дополнительная информация о которой в статье [[MySQL]]):&lt;br /&gt;
 # pkg install postfixadmin-php84&lt;br /&gt;
&lt;br /&gt;
Проверка установки postfixadmin-php84:&lt;br /&gt;
 # pkg version -v | grep php84&lt;br /&gt;
 php84-8.4.5_1                      =   up-to-date with remote&lt;br /&gt;
 php84-mbstring-8.4.5_1             =   up-to-date with remote&lt;br /&gt;
 php84-pdo-8.4.5_1                  =   up-to-date with remote&lt;br /&gt;
 php84-pdo_sqlite-8.4.5_1           =   up-to-date with remote&lt;br /&gt;
 php84-pecl-imap-1.0.3              =   up-to-date with remote&lt;br /&gt;
 php84-session-8.4.5_1              =   up-to-date with remote&lt;br /&gt;
 postfixadmin-php84-3.4.d.20211018  =   up-to-date with remote&lt;br /&gt;
&lt;br /&gt;
Вывод команды содержит список установленных расширений PHP. В списке отсутствует расширение php84-pdo_mysql, которое требуется для СУБД MySQL, если для Postfix Admin будет использована она.&lt;br /&gt;
&lt;br /&gt;
Установка из пакета расширения php84-pdo_mysql:&lt;br /&gt;
 # pkg install php84-pdo_mysql&lt;br /&gt;
 Updating FreeBSD repository catalogue...&lt;br /&gt;
 FreeBSD repository is up to date.&lt;br /&gt;
 All repositories are up to date.&lt;br /&gt;
 The following 1 package(s) will be affected (of 0 checked):&lt;br /&gt;
 &lt;br /&gt;
 New packages to be INSTALLED:&lt;br /&gt;
         php84-pdo_mysql: 8.4.5_1&lt;br /&gt;
 &lt;br /&gt;
 Number of packages to be installed: 1&lt;br /&gt;
 &lt;br /&gt;
 19 KiB to be downloaded.&lt;br /&gt;
 &lt;br /&gt;
 Proceed with this action? [y/N]: y&lt;br /&gt;
 [1/1] Fetching php84-pdo_mysql-8.4.5_1.pkg: 100%   19 KiB  19.7kB/s    00:01&lt;br /&gt;
 Checking integrity... done (0 conflicting)&lt;br /&gt;
 [1/1] Installing php84-pdo_mysql-8.4.5_1...&lt;br /&gt;
 [1/1] Extracting php84-pdo_mysql-8.4.5_1: 100%&lt;br /&gt;
 =====&lt;br /&gt;
 Message from php84-pdo_mysql-8.4.5_1:&lt;br /&gt;
 &lt;br /&gt;
 --&lt;br /&gt;
 This file has been added to automatically load the installed extension:&lt;br /&gt;
 /usr/local/etc/php/ext-30-pdo_mysql.ini.sample&lt;br /&gt;
&lt;br /&gt;
Повторная проверка установки:&lt;br /&gt;
 # pkg version -v | grep php84&lt;br /&gt;
 php84-8.4.5_1                      =   up-to-date with remote&lt;br /&gt;
 php84-mbstring-8.4.5_1             =   up-to-date with remote&lt;br /&gt;
 php84-pdo-8.4.5_1                  =   up-to-date with remote&lt;br /&gt;
 php84-pdo_mysql-8.4.5_1            =   up-to-date with remote&lt;br /&gt;
 php84-pdo_sqlite-8.4.5_1           =   up-to-date with remote&lt;br /&gt;
 php84-pecl-imap-1.0.3              =   up-to-date with remote&lt;br /&gt;
 php84-session-8.4.5_1              =   up-to-date with remote&lt;br /&gt;
 postfixadmin-php84-3.4.d.20211018  =   up-to-date with remote&lt;br /&gt;
&lt;br /&gt;
Вывод команды содержит список всех необходимых установленных расширений PHP.&lt;br /&gt;
&lt;br /&gt;
Перезапуск PHP-FPM после установки расширений PHP:&lt;br /&gt;
 # service php_fpm restart&lt;br /&gt;
 Performing sanity check on php-fpm configuration:&lt;br /&gt;
 [28-Apr-2025 16:58:14] NOTICE: configuration file /usr/local/etc/php-fpm.conf test is successful&lt;br /&gt;
 Stopping php_fpm.&lt;br /&gt;
 Performing sanity check on php-fpm configuration:&lt;br /&gt;
 [28-Apr-2025 16:58:14] NOTICE: configuration file /usr/local/etc/php-fpm.conf test is successful&lt;br /&gt;
 Starting php_fpm.&lt;br /&gt;
&lt;br /&gt;
== Начальная настройка postfixadmin-php84 ==&lt;br /&gt;
&lt;br /&gt;
Копирование структуры сайта:&lt;br /&gt;
 # cd /usr/local/www&lt;br /&gt;
 # cp -Rp postfixadmin mailadmin.mydomain.ru&lt;br /&gt;
&lt;br /&gt;
Настройка сайта Postfix Admin в файле /usr/local/etc/nginx/mailadmin.mydomain.ru.conf:&lt;br /&gt;
 server {&lt;br /&gt;
     listen       80;&lt;br /&gt;
     server_name  mailadmin.mydomain.ru;&lt;br /&gt;
 &lt;br /&gt;
     access_log   /var/log/nginx/mailadmin.mydomain.ru.access.log;&lt;br /&gt;
     error_log    /var/log/nginx/mailadmin.mydomain.ru.error.log;&lt;br /&gt;
 &lt;br /&gt;
     location / {&lt;br /&gt;
         root   /usr/local/www/mailadmin.mydomain.ru;&lt;br /&gt;
         index  index.php;&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000&lt;br /&gt;
     #&lt;br /&gt;
     location ~ \.php$ {&lt;br /&gt;
         fastcgi_pass   127.0.0.1:9000;&lt;br /&gt;
         fastcgi_index  index.php;&lt;br /&gt;
         fastcgi_param  SCRIPT_FILENAME  /usr/local/www/mailadmin.mydomain.ru/public$fastcgi_script_name;&lt;br /&gt;
         include        fastcgi_params;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Включение конфигурации сайта Postfix Admin в файл /usr/local/etc/nginx/nginx.conf:&lt;br /&gt;
     include /usr/local/etc/nginx/mailadmin.mydomain.ru.conf;&lt;br /&gt;
&lt;br /&gt;
Перезагрузка конфигурации Nginx после первоначальной настройки сайта для доступа к нему со стороны Let&#039;s Encrypt по HTTP:&lt;br /&gt;
 # service nginx reload&lt;br /&gt;
 Performing sanity check on nginx configuration:&lt;br /&gt;
 nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok&lt;br /&gt;
 nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful&lt;br /&gt;
&lt;br /&gt;
== Получение сертификата ==&lt;br /&gt;
&lt;br /&gt;
Получение сертификата для домена:&lt;br /&gt;
 # certbot --nginx -d mailadmin.mydomain.ru&lt;br /&gt;
&lt;br /&gt;
Скрипт включит следующие строки в файл конфигурации сайта /usr/local/etc/nginx/mailadmin.mydomain.ru.conf: &lt;br /&gt;
     listen 443 ssl; # managed by Certbot&lt;br /&gt;
     ssl_certificate /usr/local/etc/letsencrypt/live/mailadmin.mydomain.ru/fullchain.pem; # managed by Certbot&lt;br /&gt;
     ssl_certificate_key /usr/local/etc/letsencrypt/live/mailadmin.mydomain.ru/privkey.pem; # managed by Certbot&lt;br /&gt;
     include /usr/local/etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot&lt;br /&gt;
     ssl_dhparam /usr/local/etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot&lt;br /&gt;
&lt;br /&gt;
Перезагрузка конфигурации Nginx для включения доступа по HTTPS:&lt;br /&gt;
 # service nginx reload&lt;br /&gt;
 Performing sanity check on nginx configuration:&lt;br /&gt;
 nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok&lt;br /&gt;
 nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful&lt;br /&gt;
&lt;br /&gt;
== Окончательная настройка сайта ==&lt;br /&gt;
&lt;br /&gt;
Копирование файла настройки:&lt;br /&gt;
 # cd /usr/local/www/mailadmin.mydomain.ru&lt;br /&gt;
 # cp config.inc.php config.local.php&lt;br /&gt;
&lt;br /&gt;
Параметр подразумевает, что все необходимые настройки внесены в файл /usr/local/www/mailadmin.mydomain.ru/config.local.php:&lt;br /&gt;
 $CONF[&#039;configured&#039;] = true;&lt;br /&gt;
&lt;br /&gt;
Создание хеша установочного пароля:&lt;br /&gt;
 # php -r &#039;echo password_hash(&amp;quot;&amp;lt;пароль&amp;gt;&amp;quot;, PASSWORD_DEFAULT); echo &amp;quot;\n&amp;quot;;&#039;&lt;br /&gt;
 $2y$12$w7H3Vo2EIuHOHRxObmUWZ.DpsujtU5yy8PWbfYxzXBSe2tun/qjTG&lt;br /&gt;
&lt;br /&gt;
Добавление полученного хеша файл настроек /usr/local/www/mailadmin.mydomain.ru/config.local.php:&lt;br /&gt;
 $CONF[&#039;setup_password&#039;] = &#039;$2y$12$w7H3Vo2EIuHOHRxObmUWZ.DpsujtU5yy8PWbfYxzXBSe2tun/qjTG&#039;;&lt;br /&gt;
&lt;br /&gt;
Настройка языка:&lt;br /&gt;
 $CONF[&#039;default_language&#039;] = &#039;ru&#039;;&lt;br /&gt;
&lt;br /&gt;
Пример настройки доступа Postfix Admin к СУБД в файле /usr/local/www/mailadmin.mydomain.ru/config.local.php&lt;br /&gt;
 $CONF[&#039;database_type&#039;] = &#039;mysqli&#039;;&lt;br /&gt;
 $CONF[&#039;database_host&#039;] = &#039;&amp;lt;IP-адрес СУБД&amp;gt;&#039;;&lt;br /&gt;
 $CONF[&#039;database_user&#039;] = &#039;mailadmin&#039;;&lt;br /&gt;
 $CONF[&#039;database_password&#039;] = &#039;&amp;lt;пароль&amp;gt;&#039;;&lt;br /&gt;
 $CONF[&#039;database_name&#039;] = &#039;mailadmin&#039;;&lt;br /&gt;
&lt;br /&gt;
Пример способа шифрования паролей почтовых ящиков (в данном случае пароли сохраняються в базе данных Postfix Admin в открытом виде, что небезопасно):&lt;br /&gt;
 $CONF[&#039;encrypt&#039;] = &#039;cleartext&#039;;&lt;br /&gt;
&lt;br /&gt;
Создание базы данных Postfix Admin:&lt;br /&gt;
 # mysql -u root -p&lt;br /&gt;
 &lt;br /&gt;
 &amp;gt; create database mailadmin;&lt;br /&gt;
 Query OK, 1 row affected (0.01 sec)&lt;br /&gt;
&lt;br /&gt;
Предоставление доступа пользователю &#039;mailadmin&#039; к базе данных &#039;mailadmin&#039; с хоста &#039;&amp;lt;IP-адрес&amp;gt;&#039; (потребуется доступ с хостов, где расположены Postfix Admin, SMTP-сервер и IMAP-сервер) и применение изменений:&lt;br /&gt;
 &amp;gt; create user &#039;mailadmin&#039;@&#039;&amp;lt;IP-адрес&amp;gt;&#039; identified by &#039;&amp;lt;пароль&amp;gt;&#039;;&lt;br /&gt;
 Query OK, 0 rows affected (0.04 sec)&lt;br /&gt;
 &lt;br /&gt;
 &amp;gt; grant all on mailadmin.* to &#039;mailadmin&#039;@&#039;&amp;lt;IP-адрес&amp;gt;&#039;;&lt;br /&gt;
 Query OK, 0 rows affected (0.00 sec)&lt;br /&gt;
 &lt;br /&gt;
 &amp;gt; flush privileges;&lt;br /&gt;
 Query OK, 0 rows affected (0.01 sec)&lt;br /&gt;
&lt;br /&gt;
Переход на сайт:&lt;br /&gt;
 https://mailadmin.mydomain.ru/setup.php&lt;br /&gt;
&lt;br /&gt;
Пример вывода сайта:&lt;br /&gt;
 &#039;&#039;&#039;Hosting Environment Check&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;Information&#039;&#039;&#039;&lt;br /&gt;
 ✅ PHP version - 8.4.5&lt;br /&gt;
 ✅ Postfixadmin public url detected as http://mailadmin.mydomain.ru/ use $CONF[&#039;site_url&#039;] to override&lt;br /&gt;
 ✅ Postfixadmin installed at - /usr/local/www/mailadmin.mydomain.ru/public&lt;br /&gt;
 ✅ config.local.php file found : /usr/local/www/mailadmin.mydomain.ru/config.local.php&lt;br /&gt;
 ✅ Database - MySQL support available&lt;br /&gt;
 ✅ Database - SQLite support available&lt;br /&gt;
 ✅ Password hashing - $CONF[&amp;quot;encrypt&amp;quot;] = cleartext&lt;br /&gt;
 ✅ Password hashing - $CONF[&amp;quot;encrypt&amp;quot;] - hash generation OK&lt;br /&gt;
 ✅ Database connection configured OK (using PDO mysql:mysql:host=10.xxx.yyy.zzz;dbname=mailadmin;charset=UTF8)&lt;br /&gt;
 ✅ Database connection - Connected OK&lt;br /&gt;
 ✅ Depends on: PHP session support - OK&lt;br /&gt;
 ✅ Depends on: PHP pcre support - OK&lt;br /&gt;
 ✅ Depends on: PHP mbstring support - OK&lt;br /&gt;
 ✅ Optional - PHP IMAP functions - OK&lt;br /&gt;
&lt;br /&gt;
Дальнейший вывод сайта:&lt;br /&gt;
 Database Update&lt;br /&gt;
 &lt;br /&gt;
 Everything seems fine... attempting to create/update database structure&lt;br /&gt;
 &lt;br /&gt;
 Updating database:&lt;br /&gt;
 &lt;br /&gt;
 - old version: 0; target version: 1845&lt;br /&gt;
 &lt;br /&gt;
   (If the update doesn&#039;t work, run setup.php?debug=1 to see the detailed error messages and SQL queries.)&lt;br /&gt;
 &lt;br /&gt;
 updating to version 1 (MySQL)...   done&lt;br /&gt;
 updating to version 2 (MySQL)...   done&lt;br /&gt;
 updating to version 3 (MySQL)...   done&lt;br /&gt;
 &#039;&#039;&#039;[список пропущен]&#039;&#039;&#039;&lt;br /&gt;
 updating to version 1843 (all databases)...   done&lt;br /&gt;
 updating to version 1844 (all databases)...   done&lt;br /&gt;
 updating to version 1845 (all databases)...   done&lt;br /&gt;
&lt;br /&gt;
Последняя строка сообщает об обновлении базы данных Postfix Admin до последней актуальной версии.&lt;br /&gt;
&lt;br /&gt;
Сайт предложит настроить учётную запись администратора, после чего можно использовать Postfix Admin для администрирования почтовых доменов, ящиков и алиасов.&lt;br /&gt;
&lt;br /&gt;
Приглашение в управление Postfix Admin:&lt;br /&gt;
[[Файл:2025050201.png|left|мини]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
Вид главной страницы Postfix Admin:&lt;br /&gt;
[[Файл:2025050202.png|left|мини]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
Пример почтового алиаса домена и домена, на который будет приходить почта:&lt;br /&gt;
[[Файл:2025050203.png|left|мини]]&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://wiki.bsdhowto.ru/index.php?title=Postfix_Admin&amp;diff=221</id>
		<title>Postfix Admin</title>
		<link rel="alternate" type="text/html" href="https://wiki.bsdhowto.ru/index.php?title=Postfix_Admin&amp;diff=221"/>
		<updated>2025-11-29T17:01:38Z</updated>

		<summary type="html">&lt;p&gt;Igor: /* Начальная настройка postfixadmin-php84 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Установка postfixadmin-php84 ==&lt;br /&gt;
&lt;br /&gt;
Postfix Admin — веб-инструмент управления, написанный на PHP для Postfix (но прекрасно подходит и для Exim) с виртуальными доменами в стиле Postfix, использующими поиск в MySQL или PostgreSQL. Так-же Postfix Admin работает на Apache, Lighttpd и на любом веб-сервере с поддержкой PHP 5.1.2+.&lt;br /&gt;
&lt;br /&gt;
Подробная информация о Postfix Admin на сайте http://www.postfixadmin.org/&lt;br /&gt;
&lt;br /&gt;
Установка из пакета (предварительная установка пакетов PKG и PHP не требуется, дополнительная информация о которых в статьях [[PKG]] и [[PHP+Nginx|Установка lang/php84]]; потребуется установка СУБД, например - MySQL, дополнительная информация о которой в статье [[MySQL]]):&lt;br /&gt;
 # pkg install postfixadmin-php84&lt;br /&gt;
&lt;br /&gt;
Проверка установки postfixadmin-php84:&lt;br /&gt;
 # pkg version -v | grep php84&lt;br /&gt;
 php84-8.4.5_1                      =   up-to-date with remote&lt;br /&gt;
 php84-mbstring-8.4.5_1             =   up-to-date with remote&lt;br /&gt;
 php84-pdo-8.4.5_1                  =   up-to-date with remote&lt;br /&gt;
 php84-pdo_sqlite-8.4.5_1           =   up-to-date with remote&lt;br /&gt;
 php84-pecl-imap-1.0.3              =   up-to-date with remote&lt;br /&gt;
 php84-session-8.4.5_1              =   up-to-date with remote&lt;br /&gt;
 postfixadmin-php84-3.4.d.20211018  =   up-to-date with remote&lt;br /&gt;
&lt;br /&gt;
Вывод команды содержит список установленных расширений PHP. В списке отсутствует расширение php84-pdo_mysql, которое требуется для СУБД MySQL, если для Postfix Admin будет использована она.&lt;br /&gt;
&lt;br /&gt;
Установка из пакета расширения php84-pdo_mysql:&lt;br /&gt;
 # pkg install php84-pdo_mysql&lt;br /&gt;
 Updating FreeBSD repository catalogue...&lt;br /&gt;
 FreeBSD repository is up to date.&lt;br /&gt;
 All repositories are up to date.&lt;br /&gt;
 The following 1 package(s) will be affected (of 0 checked):&lt;br /&gt;
 &lt;br /&gt;
 New packages to be INSTALLED:&lt;br /&gt;
         php84-pdo_mysql: 8.4.5_1&lt;br /&gt;
 &lt;br /&gt;
 Number of packages to be installed: 1&lt;br /&gt;
 &lt;br /&gt;
 19 KiB to be downloaded.&lt;br /&gt;
 &lt;br /&gt;
 Proceed with this action? [y/N]: y&lt;br /&gt;
 [1/1] Fetching php84-pdo_mysql-8.4.5_1.pkg: 100%   19 KiB  19.7kB/s    00:01&lt;br /&gt;
 Checking integrity... done (0 conflicting)&lt;br /&gt;
 [1/1] Installing php84-pdo_mysql-8.4.5_1...&lt;br /&gt;
 [1/1] Extracting php84-pdo_mysql-8.4.5_1: 100%&lt;br /&gt;
 =====&lt;br /&gt;
 Message from php84-pdo_mysql-8.4.5_1:&lt;br /&gt;
 &lt;br /&gt;
 --&lt;br /&gt;
 This file has been added to automatically load the installed extension:&lt;br /&gt;
 /usr/local/etc/php/ext-30-pdo_mysql.ini.sample&lt;br /&gt;
&lt;br /&gt;
Повторная проверка установки:&lt;br /&gt;
 # pkg version -v | grep php84&lt;br /&gt;
 php84-8.4.5_1                      =   up-to-date with remote&lt;br /&gt;
 php84-mbstring-8.4.5_1             =   up-to-date with remote&lt;br /&gt;
 php84-pdo-8.4.5_1                  =   up-to-date with remote&lt;br /&gt;
 php84-pdo_mysql-8.4.5_1            =   up-to-date with remote&lt;br /&gt;
 php84-pdo_sqlite-8.4.5_1           =   up-to-date with remote&lt;br /&gt;
 php84-pecl-imap-1.0.3              =   up-to-date with remote&lt;br /&gt;
 php84-session-8.4.5_1              =   up-to-date with remote&lt;br /&gt;
 postfixadmin-php84-3.4.d.20211018  =   up-to-date with remote&lt;br /&gt;
&lt;br /&gt;
Вывод команды содержит список всех необходимых установленных расширений PHP.&lt;br /&gt;
&lt;br /&gt;
Перезапуск PHP-FPM после установки расширений PHP:&lt;br /&gt;
 # service php_fpm restart&lt;br /&gt;
 Performing sanity check on php-fpm configuration:&lt;br /&gt;
 [28-Apr-2025 16:58:14] NOTICE: configuration file /usr/local/etc/php-fpm.conf test is successful&lt;br /&gt;
 Stopping php_fpm.&lt;br /&gt;
 Performing sanity check on php-fpm configuration:&lt;br /&gt;
 [28-Apr-2025 16:58:14] NOTICE: configuration file /usr/local/etc/php-fpm.conf test is successful&lt;br /&gt;
 Starting php_fpm.&lt;br /&gt;
&lt;br /&gt;
== Начальная настройка postfixadmin-php84 ==&lt;br /&gt;
&lt;br /&gt;
Копирование структуры сайта:&lt;br /&gt;
 # cd /usr/local/www&lt;br /&gt;
 # cp -Rp postfixadmin mailadmin.mydomain.ru&lt;br /&gt;
&lt;br /&gt;
Настройка сайта Postfix Admin в файле /usr/local/etc/nginx/mailadmin.mydomain.ru.conf:&lt;br /&gt;
 server {&lt;br /&gt;
     listen       80;&lt;br /&gt;
     server_name  mailadmin.mydomain.ru;&lt;br /&gt;
 &lt;br /&gt;
     access_log   /var/log/nginx/mailadmin.mydomain.ru.access.log;&lt;br /&gt;
     error_log    /var/log/nginx/mailadmin.mydomain.ru.error.log;&lt;br /&gt;
 &lt;br /&gt;
     location / {&lt;br /&gt;
         root   /usr/local/www/mailadmin.mydomain.ru;&lt;br /&gt;
         index  index.php;&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000&lt;br /&gt;
     #&lt;br /&gt;
     location ~ \.php$ {&lt;br /&gt;
         fastcgi_pass   127.0.0.1:9000;&lt;br /&gt;
         fastcgi_index  index.php;&lt;br /&gt;
         fastcgi_param  SCRIPT_FILENAME  /usr/local/www/mailadmin.mydomain.ru/public$fastcgi_script_name;&lt;br /&gt;
         include        fastcgi_params;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Включение конфигурации сайта Postfix Admin в файл /usr/local/etc/nginx/nginx.conf:&lt;br /&gt;
     include /usr/local/etc/nginx/mailadmin.mydomain.ru.conf;&lt;br /&gt;
&lt;br /&gt;
Перезагрузка конфигурации Nginx после первоначальной настройки сайта для доступа к нему со стороны Let&#039;s Encrypt по HTTP:&lt;br /&gt;
 # service nginx reload&lt;br /&gt;
 Performing sanity check on nginx configuration:&lt;br /&gt;
 nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok&lt;br /&gt;
 nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful&lt;br /&gt;
&lt;br /&gt;
== Получение сертификата ==&lt;br /&gt;
&lt;br /&gt;
Получение сертификата для домена:&lt;br /&gt;
 # certbot --nginx -d mailadmin.mydomain.ru&lt;br /&gt;
&lt;br /&gt;
Скрипт включит следующие строки в файл конфигурации сайта /usr/local/etc/nginx/mailadmin.mydomain.ru.conf: &lt;br /&gt;
     listen 443 ssl; # managed by Certbot&lt;br /&gt;
     ssl_certificate /usr/local/etc/letsencrypt/live/mailadmin.mydomain.ru/fullchain.pem; # managed by Certbot&lt;br /&gt;
     ssl_certificate_key /usr/local/etc/letsencrypt/live/mailadmin.mydomain.ru/privkey.pem; # managed by Certbot&lt;br /&gt;
     include /usr/local/etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot&lt;br /&gt;
     ssl_dhparam /usr/local/etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot&lt;br /&gt;
&lt;br /&gt;
Перезагрузка конфигурации Nginx для включения доступа по HTTPS:&lt;br /&gt;
 # service nginx reload&lt;br /&gt;
 Performing sanity check on nginx configuration:&lt;br /&gt;
 nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok&lt;br /&gt;
 nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful&lt;br /&gt;
&lt;br /&gt;
== Окончательная настройка сайта ==&lt;br /&gt;
&lt;br /&gt;
Копирование файла настройки:&lt;br /&gt;
 # cd /usr/local/www/mailadmin.mydomain.ru&lt;br /&gt;
 # cp config.inc.php config.local.php&lt;br /&gt;
&lt;br /&gt;
Параметр подразумевает, что все необходимые настройки внесены в файл /usr/local/www/mailadmin.mydomain.ru/config.local.php:&lt;br /&gt;
 $CONF[&#039;configured&#039;] = true;&lt;br /&gt;
&lt;br /&gt;
Создание хеша установочного пароля:&lt;br /&gt;
 # php -r &#039;echo password_hash(&amp;quot;&amp;lt;пароль&amp;gt;&amp;quot;, PASSWORD_DEFAULT); echo &amp;quot;\n&amp;quot;;&#039;&lt;br /&gt;
 $2y$12$w7H3Vo2EIuHOHRxObmUWZ.DpsujtU5yy8PWbfYxzXBSe2tun/qjTG&lt;br /&gt;
&lt;br /&gt;
Добавление полученного хеша файл настроек /usr/local/www/mailadmin.mydomain.ru/config.local.php:&lt;br /&gt;
 $CONF[&#039;setup_password&#039;] =  &#039;$2y$12$w7H3Vo2EIuHOHRxObmUWZ.DpsujtU5yy8PWbfYxzXBSe2tun/qjTG&#039;;&lt;br /&gt;
&lt;br /&gt;
Настройка языка:&lt;br /&gt;
 $CONF[&#039;default_language&#039;] = &#039;ru&#039;;&lt;br /&gt;
&lt;br /&gt;
Пример настройки доступа Postfix Admin к СУБД в файле /usr/local/www/mailadmin.mydomain.ru/config.local.php&lt;br /&gt;
 $CONF[&#039;database_type&#039;] = &#039;mysqli&#039;;&lt;br /&gt;
 $CONF[&#039;database_host&#039;] = &#039;&amp;lt;IP-адрес СУБД&amp;gt;&#039;;&lt;br /&gt;
 $CONF[&#039;database_user&#039;] = &#039;mailadmin&#039;;&lt;br /&gt;
 $CONF[&#039;database_password&#039;] = &#039;&amp;lt;пароль&amp;gt;&#039;;&lt;br /&gt;
 $CONF[&#039;database_name&#039;] = &#039;mailadmin&#039;;&lt;br /&gt;
&lt;br /&gt;
Пример способа шифрования паролей почтовых ящиков (в данном случае пароли сохраняються в базе данных Postfix Admin в открытом виде, что небезопасно):&lt;br /&gt;
 $CONF[&#039;encrypt&#039;] = &#039;cleartext&#039;;&lt;br /&gt;
&lt;br /&gt;
Создание базы данных Postfix Admin:&lt;br /&gt;
 # mysql -u root -p&lt;br /&gt;
 &lt;br /&gt;
 &amp;gt; create database mailadmin;&lt;br /&gt;
 Query OK, 1 row affected (0.01 sec)&lt;br /&gt;
&lt;br /&gt;
Предоставление доступа пользователю &#039;mailadmin&#039; к базе данных &#039;mailadmin&#039; с хоста &#039;&amp;lt;IP-адрес&amp;gt;&#039; (потребуется доступ с хостов, где расположены Postfix Admin, SMTP-сервер и IMAP-сервер) и применение изменений:&lt;br /&gt;
 &amp;gt; create user &#039;mailadmin&#039;@&#039;&amp;lt;IP-адрес&amp;gt;&#039; identified by &#039;&amp;lt;пароль&amp;gt;&#039;;&lt;br /&gt;
 Query OK, 0 rows affected (0.04 sec)&lt;br /&gt;
 &lt;br /&gt;
 &amp;gt; grant all on mailadmin.* to &#039;mailadmin&#039;@&#039;&amp;lt;IP-адрес&amp;gt;&#039;;&lt;br /&gt;
 Query OK, 0 rows affected (0.00 sec)&lt;br /&gt;
 &lt;br /&gt;
 &amp;gt; flush privileges;&lt;br /&gt;
 Query OK, 0 rows affected (0.01 sec)&lt;br /&gt;
&lt;br /&gt;
Переход на сайт:&lt;br /&gt;
 https://mailadmin.mydomain.ru/setup.php&lt;br /&gt;
&lt;br /&gt;
Пример вывода сайта:&lt;br /&gt;
 &#039;&#039;&#039;Hosting Environment Check&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;Information&#039;&#039;&#039;&lt;br /&gt;
 ✅ PHP version - 8.4.5&lt;br /&gt;
 ✅ Postfixadmin public url detected as http://mailadmin.mydomain.ru/ use $CONF[&#039;site_url&#039;] to override&lt;br /&gt;
 ✅ Postfixadmin installed at - /usr/local/www/mailadmin.mydomain.ru/public&lt;br /&gt;
 ✅ config.local.php file found : /usr/local/www/mailadmin.mydomain.ru/config.local.php&lt;br /&gt;
 ✅ Database - MySQL support available&lt;br /&gt;
 ✅ Database - SQLite support available&lt;br /&gt;
 ✅ Password hashing - $CONF[&amp;quot;encrypt&amp;quot;] = cleartext&lt;br /&gt;
 ✅ Password hashing - $CONF[&amp;quot;encrypt&amp;quot;] - hash generation OK&lt;br /&gt;
 ✅ Database connection configured OK (using PDO mysql:mysql:host=10.xxx.yyy.zzz;dbname=mailadmin;charset=UTF8)&lt;br /&gt;
 ✅ Database connection - Connected OK&lt;br /&gt;
 ✅ Depends on: PHP session support - OK&lt;br /&gt;
 ✅ Depends on: PHP pcre support - OK&lt;br /&gt;
 ✅ Depends on: PHP mbstring support - OK&lt;br /&gt;
 ✅ Optional - PHP IMAP functions - OK&lt;br /&gt;
&lt;br /&gt;
Дальнейший вывод сайта:&lt;br /&gt;
 Database Update&lt;br /&gt;
 &lt;br /&gt;
 Everything seems fine... attempting to create/update database structure&lt;br /&gt;
 &lt;br /&gt;
 Updating database:&lt;br /&gt;
 &lt;br /&gt;
 - old version: 0; target version: 1845&lt;br /&gt;
 &lt;br /&gt;
   (If the update doesn&#039;t work, run setup.php?debug=1 to see the detailed error messages and SQL queries.)&lt;br /&gt;
 &lt;br /&gt;
 updating to version 1 (MySQL)...   done&lt;br /&gt;
 updating to version 2 (MySQL)...   done&lt;br /&gt;
 updating to version 3 (MySQL)...   done&lt;br /&gt;
 &#039;&#039;&#039;[список пропущен]&#039;&#039;&#039;&lt;br /&gt;
 updating to version 1843 (all databases)...   done&lt;br /&gt;
 updating to version 1844 (all databases)...   done&lt;br /&gt;
 updating to version 1845 (all databases)...   done&lt;br /&gt;
&lt;br /&gt;
Последняя строка сообщает об обновлении базы данных Postfix Admin до последней актуальной версии.&lt;br /&gt;
&lt;br /&gt;
Сайт предложит настроить учётную запись администратора, после чего можно использовать Postfix Admin для администрирования почтовых доменов, ящиков и алиасов.&lt;br /&gt;
&lt;br /&gt;
Приглашение в управление Postfix Admin:&lt;br /&gt;
[[Файл:2025050201.png|left|мини]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
Вид главной страницы Postfix Admin:&lt;br /&gt;
[[Файл:2025050202.png|left|мини]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
Пример почтового алиаса домена и домена, на который будет приходить почта:&lt;br /&gt;
[[Файл:2025050203.png|left|мини]]&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://wiki.bsdhowto.ru/index.php?title=Postfix_Admin&amp;diff=220</id>
		<title>Postfix Admin</title>
		<link rel="alternate" type="text/html" href="https://wiki.bsdhowto.ru/index.php?title=Postfix_Admin&amp;diff=220"/>
		<updated>2025-11-29T16:39:27Z</updated>

		<summary type="html">&lt;p&gt;Igor: /* Установка postfixadmin-php84 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Установка postfixadmin-php84 ==&lt;br /&gt;
&lt;br /&gt;
Postfix Admin — веб-инструмент управления, написанный на PHP для Postfix (но прекрасно подходит и для Exim) с виртуальными доменами в стиле Postfix, использующими поиск в MySQL или PostgreSQL. Так-же Postfix Admin работает на Apache, Lighttpd и на любом веб-сервере с поддержкой PHP 5.1.2+.&lt;br /&gt;
&lt;br /&gt;
Подробная информация о Postfix Admin на сайте http://www.postfixadmin.org/&lt;br /&gt;
&lt;br /&gt;
Установка из пакета (предварительная установка пакетов PKG и PHP не требуется, дополнительная информация о которых в статьях [[PKG]] и [[PHP+Nginx|Установка lang/php84]]; потребуется установка СУБД, например - MySQL, дополнительная информация о которой в статье [[MySQL]]):&lt;br /&gt;
 # pkg install postfixadmin-php84&lt;br /&gt;
&lt;br /&gt;
Проверка установки postfixadmin-php84:&lt;br /&gt;
 # pkg version -v | grep php84&lt;br /&gt;
 php84-8.4.5_1                      =   up-to-date with remote&lt;br /&gt;
 php84-mbstring-8.4.5_1             =   up-to-date with remote&lt;br /&gt;
 php84-pdo-8.4.5_1                  =   up-to-date with remote&lt;br /&gt;
 php84-pdo_sqlite-8.4.5_1           =   up-to-date with remote&lt;br /&gt;
 php84-pecl-imap-1.0.3              =   up-to-date with remote&lt;br /&gt;
 php84-session-8.4.5_1              =   up-to-date with remote&lt;br /&gt;
 postfixadmin-php84-3.4.d.20211018  =   up-to-date with remote&lt;br /&gt;
&lt;br /&gt;
Вывод команды содержит список установленных расширений PHP. В списке отсутствует расширение php84-pdo_mysql, которое требуется для СУБД MySQL, если для Postfix Admin будет использована она.&lt;br /&gt;
&lt;br /&gt;
Установка из пакета расширения php84-pdo_mysql:&lt;br /&gt;
 # pkg install php84-pdo_mysql&lt;br /&gt;
 Updating FreeBSD repository catalogue...&lt;br /&gt;
 FreeBSD repository is up to date.&lt;br /&gt;
 All repositories are up to date.&lt;br /&gt;
 The following 1 package(s) will be affected (of 0 checked):&lt;br /&gt;
 &lt;br /&gt;
 New packages to be INSTALLED:&lt;br /&gt;
         php84-pdo_mysql: 8.4.5_1&lt;br /&gt;
 &lt;br /&gt;
 Number of packages to be installed: 1&lt;br /&gt;
 &lt;br /&gt;
 19 KiB to be downloaded.&lt;br /&gt;
 &lt;br /&gt;
 Proceed with this action? [y/N]: y&lt;br /&gt;
 [1/1] Fetching php84-pdo_mysql-8.4.5_1.pkg: 100%   19 KiB  19.7kB/s    00:01&lt;br /&gt;
 Checking integrity... done (0 conflicting)&lt;br /&gt;
 [1/1] Installing php84-pdo_mysql-8.4.5_1...&lt;br /&gt;
 [1/1] Extracting php84-pdo_mysql-8.4.5_1: 100%&lt;br /&gt;
 =====&lt;br /&gt;
 Message from php84-pdo_mysql-8.4.5_1:&lt;br /&gt;
 &lt;br /&gt;
 --&lt;br /&gt;
 This file has been added to automatically load the installed extension:&lt;br /&gt;
 /usr/local/etc/php/ext-30-pdo_mysql.ini.sample&lt;br /&gt;
&lt;br /&gt;
Повторная проверка установки:&lt;br /&gt;
 # pkg version -v | grep php84&lt;br /&gt;
 php84-8.4.5_1                      =   up-to-date with remote&lt;br /&gt;
 php84-mbstring-8.4.5_1             =   up-to-date with remote&lt;br /&gt;
 php84-pdo-8.4.5_1                  =   up-to-date with remote&lt;br /&gt;
 php84-pdo_mysql-8.4.5_1            =   up-to-date with remote&lt;br /&gt;
 php84-pdo_sqlite-8.4.5_1           =   up-to-date with remote&lt;br /&gt;
 php84-pecl-imap-1.0.3              =   up-to-date with remote&lt;br /&gt;
 php84-session-8.4.5_1              =   up-to-date with remote&lt;br /&gt;
 postfixadmin-php84-3.4.d.20211018  =   up-to-date with remote&lt;br /&gt;
&lt;br /&gt;
Вывод команды содержит список всех необходимых установленных расширений PHP.&lt;br /&gt;
&lt;br /&gt;
Перезапуск PHP-FPM после установки расширений PHP:&lt;br /&gt;
 # service php_fpm restart&lt;br /&gt;
 Performing sanity check on php-fpm configuration:&lt;br /&gt;
 [28-Apr-2025 16:58:14] NOTICE: configuration file /usr/local/etc/php-fpm.conf test is successful&lt;br /&gt;
 Stopping php_fpm.&lt;br /&gt;
 Performing sanity check on php-fpm configuration:&lt;br /&gt;
 [28-Apr-2025 16:58:14] NOTICE: configuration file /usr/local/etc/php-fpm.conf test is successful&lt;br /&gt;
 Starting php_fpm.&lt;br /&gt;
&lt;br /&gt;
== Начальная настройка postfixadmin-php84 ==&lt;br /&gt;
&lt;br /&gt;
Копирование структуры сайта:&lt;br /&gt;
 # cd /usr/local/www&lt;br /&gt;
 # cp -Rp postfixadmin mailadmin.mydomain.ru&lt;br /&gt;
&lt;br /&gt;
Настройка сайта Postfix Admin в файле /usr/local/etc/nginx/mailadmin.mydomain.ru.conf:&lt;br /&gt;
 server {&lt;br /&gt;
     listen       80;&lt;br /&gt;
     server_name  mailadmin.mydomain.ru;&lt;br /&gt;
 &lt;br /&gt;
     access_log   /var/log/nginx/mailadmin.mydomain.ru.access.log;&lt;br /&gt;
     error_log    /var/log/nginx/mailadmin.mydomain.ru.error.log;&lt;br /&gt;
 &lt;br /&gt;
     location / {&lt;br /&gt;
         root   /usr/local/www/nginx;&lt;br /&gt;
         index  index.php;&lt;br /&gt;
     }&lt;br /&gt;
 &lt;br /&gt;
     # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000&lt;br /&gt;
     #&lt;br /&gt;
     location ~ \.php$ {&lt;br /&gt;
         fastcgi_pass   127.0.0.1:9000;&lt;br /&gt;
         fastcgi_index  index.php;&lt;br /&gt;
         fastcgi_param  SCRIPT_FILENAME  /usr/local/www/mailadmin.mydomain.ru/public$fastcgi_script_name;&lt;br /&gt;
         include        fastcgi_params;&lt;br /&gt;
     }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Включение конфигурации сайта Postfix Admin в файл /usr/local/etc/nginx/nginx.conf:&lt;br /&gt;
     include /usr/local/etc/nginx/mailadmin.mydomain.ru.conf;&lt;br /&gt;
&lt;br /&gt;
Перезагрузка конфигурации Nginx после первоначальной настройки сайта для доступа к нему со стороны Let&#039;s Encrypt по HTTP:&lt;br /&gt;
 # service nginx reload&lt;br /&gt;
 Performing sanity check on nginx configuration:&lt;br /&gt;
 nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok&lt;br /&gt;
 nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful&lt;br /&gt;
&lt;br /&gt;
== Получение сертификата ==&lt;br /&gt;
&lt;br /&gt;
Получение сертификата для домена:&lt;br /&gt;
 # certbot --nginx -d mailadmin.mydomain.ru&lt;br /&gt;
&lt;br /&gt;
Скрипт включит следующие строки в файл конфигурации сайта /usr/local/etc/nginx/mailadmin.mydomain.ru.conf: &lt;br /&gt;
     listen 443 ssl; # managed by Certbot&lt;br /&gt;
     ssl_certificate /usr/local/etc/letsencrypt/live/mailadmin.mydomain.ru/fullchain.pem; # managed by Certbot&lt;br /&gt;
     ssl_certificate_key /usr/local/etc/letsencrypt/live/mailadmin.mydomain.ru/privkey.pem; # managed by Certbot&lt;br /&gt;
     include /usr/local/etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot&lt;br /&gt;
     ssl_dhparam /usr/local/etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot&lt;br /&gt;
&lt;br /&gt;
Перезагрузка конфигурации Nginx для включения доступа по HTTPS:&lt;br /&gt;
 # service nginx reload&lt;br /&gt;
 Performing sanity check on nginx configuration:&lt;br /&gt;
 nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok&lt;br /&gt;
 nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful&lt;br /&gt;
&lt;br /&gt;
== Окончательная настройка сайта ==&lt;br /&gt;
&lt;br /&gt;
Копирование файла настройки:&lt;br /&gt;
 # cd /usr/local/www/mailadmin.mydomain.ru&lt;br /&gt;
 # cp config.inc.php config.local.php&lt;br /&gt;
&lt;br /&gt;
Параметр подразумевает, что все необходимые настройки внесены в файл /usr/local/www/mailadmin.mydomain.ru/config.local.php:&lt;br /&gt;
 $CONF[&#039;configured&#039;] = true;&lt;br /&gt;
&lt;br /&gt;
Создание хеша установочного пароля:&lt;br /&gt;
 # php -r &#039;echo password_hash(&amp;quot;&amp;lt;пароль&amp;gt;&amp;quot;, PASSWORD_DEFAULT); echo &amp;quot;\n&amp;quot;;&#039;&lt;br /&gt;
 $2y$12$w7H3Vo2EIuHOHRxObmUWZ.DpsujtU5yy8PWbfYxzXBSe2tun/qjTG&lt;br /&gt;
&lt;br /&gt;
Добавление полученного хеша файл настроек /usr/local/www/mailadmin.mydomain.ru/config.local.php:&lt;br /&gt;
 $CONF[&#039;setup_password&#039;] =  &#039;$2y$12$w7H3Vo2EIuHOHRxObmUWZ.DpsujtU5yy8PWbfYxzXBSe2tun/qjTG&#039;;&lt;br /&gt;
&lt;br /&gt;
Настройка языка:&lt;br /&gt;
 $CONF[&#039;default_language&#039;] = &#039;ru&#039;;&lt;br /&gt;
&lt;br /&gt;
Пример настройки доступа Postfix Admin к СУБД в файле /usr/local/www/mailadmin.mydomain.ru/config.local.php&lt;br /&gt;
 $CONF[&#039;database_type&#039;] = &#039;mysqli&#039;;&lt;br /&gt;
 $CONF[&#039;database_host&#039;] = &#039;&amp;lt;IP-адрес СУБД&amp;gt;&#039;;&lt;br /&gt;
 $CONF[&#039;database_user&#039;] = &#039;mailadmin&#039;;&lt;br /&gt;
 $CONF[&#039;database_password&#039;] = &#039;&amp;lt;пароль&amp;gt;&#039;;&lt;br /&gt;
 $CONF[&#039;database_name&#039;] = &#039;mailadmin&#039;;&lt;br /&gt;
&lt;br /&gt;
Пример способа шифрования паролей почтовых ящиков (в данном случае пароли сохраняються в базе данных Postfix Admin в открытом виде, что небезопасно):&lt;br /&gt;
 $CONF[&#039;encrypt&#039;] = &#039;cleartext&#039;;&lt;br /&gt;
&lt;br /&gt;
Создание базы данных Postfix Admin:&lt;br /&gt;
 # mysql -u root -p&lt;br /&gt;
 &lt;br /&gt;
 &amp;gt; create database mailadmin;&lt;br /&gt;
 Query OK, 1 row affected (0.01 sec)&lt;br /&gt;
&lt;br /&gt;
Предоставление доступа пользователю &#039;mailadmin&#039; к базе данных &#039;mailadmin&#039; с хоста &#039;&amp;lt;IP-адрес&amp;gt;&#039; (потребуется доступ с хостов, где расположены Postfix Admin, SMTP-сервер и IMAP-сервер) и применение изменений:&lt;br /&gt;
 &amp;gt; create user &#039;mailadmin&#039;@&#039;&amp;lt;IP-адрес&amp;gt;&#039; identified by &#039;&amp;lt;пароль&amp;gt;&#039;;&lt;br /&gt;
 Query OK, 0 rows affected (0.04 sec)&lt;br /&gt;
 &lt;br /&gt;
 &amp;gt; grant all on mailadmin.* to &#039;mailadmin&#039;@&#039;&amp;lt;IP-адрес&amp;gt;&#039;;&lt;br /&gt;
 Query OK, 0 rows affected (0.00 sec)&lt;br /&gt;
 &lt;br /&gt;
 &amp;gt; flush privileges;&lt;br /&gt;
 Query OK, 0 rows affected (0.01 sec)&lt;br /&gt;
&lt;br /&gt;
Переход на сайт:&lt;br /&gt;
 https://mailadmin.mydomain.ru/setup.php&lt;br /&gt;
&lt;br /&gt;
Пример вывода сайта:&lt;br /&gt;
 &#039;&#039;&#039;Hosting Environment Check&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;Information&#039;&#039;&#039;&lt;br /&gt;
 ✅ PHP version - 8.4.5&lt;br /&gt;
 ✅ Postfixadmin public url detected as http://mailadmin.mydomain.ru/ use $CONF[&#039;site_url&#039;] to override&lt;br /&gt;
 ✅ Postfixadmin installed at - /usr/local/www/mailadmin.mydomain.ru/public&lt;br /&gt;
 ✅ config.local.php file found : /usr/local/www/mailadmin.mydomain.ru/config.local.php&lt;br /&gt;
 ✅ Database - MySQL support available&lt;br /&gt;
 ✅ Database - SQLite support available&lt;br /&gt;
 ✅ Password hashing - $CONF[&amp;quot;encrypt&amp;quot;] = cleartext&lt;br /&gt;
 ✅ Password hashing - $CONF[&amp;quot;encrypt&amp;quot;] - hash generation OK&lt;br /&gt;
 ✅ Database connection configured OK (using PDO mysql:mysql:host=10.xxx.yyy.zzz;dbname=mailadmin;charset=UTF8)&lt;br /&gt;
 ✅ Database connection - Connected OK&lt;br /&gt;
 ✅ Depends on: PHP session support - OK&lt;br /&gt;
 ✅ Depends on: PHP pcre support - OK&lt;br /&gt;
 ✅ Depends on: PHP mbstring support - OK&lt;br /&gt;
 ✅ Optional - PHP IMAP functions - OK&lt;br /&gt;
&lt;br /&gt;
Дальнейший вывод сайта:&lt;br /&gt;
 Database Update&lt;br /&gt;
 &lt;br /&gt;
 Everything seems fine... attempting to create/update database structure&lt;br /&gt;
 &lt;br /&gt;
 Updating database:&lt;br /&gt;
 &lt;br /&gt;
 - old version: 0; target version: 1845&lt;br /&gt;
 &lt;br /&gt;
   (If the update doesn&#039;t work, run setup.php?debug=1 to see the detailed error messages and SQL queries.)&lt;br /&gt;
 &lt;br /&gt;
 updating to version 1 (MySQL)...   done&lt;br /&gt;
 updating to version 2 (MySQL)...   done&lt;br /&gt;
 updating to version 3 (MySQL)...   done&lt;br /&gt;
 &#039;&#039;&#039;[список пропущен]&#039;&#039;&#039;&lt;br /&gt;
 updating to version 1843 (all databases)...   done&lt;br /&gt;
 updating to version 1844 (all databases)...   done&lt;br /&gt;
 updating to version 1845 (all databases)...   done&lt;br /&gt;
&lt;br /&gt;
Последняя строка сообщает об обновлении базы данных Postfix Admin до последней актуальной версии.&lt;br /&gt;
&lt;br /&gt;
Сайт предложит настроить учётную запись администратора, после чего можно использовать Postfix Admin для администрирования почтовых доменов, ящиков и алиасов.&lt;br /&gt;
&lt;br /&gt;
Приглашение в управление Postfix Admin:&lt;br /&gt;
[[Файл:2025050201.png|left|мини]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
Вид главной страницы Postfix Admin:&lt;br /&gt;
[[Файл:2025050202.png|left|мини]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: both&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
Пример почтового алиаса домена и домена, на который будет приходить почта:&lt;br /&gt;
[[Файл:2025050203.png|left|мини]]&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://wiki.bsdhowto.ru/index.php?title=FreeBSD_Update&amp;diff=219</id>
		<title>FreeBSD Update</title>
		<link rel="alternate" type="text/html" href="https://wiki.bsdhowto.ru/index.php?title=FreeBSD_Update&amp;diff=219"/>
		<updated>2025-11-29T06:41:07Z</updated>

		<summary type="html">&lt;p&gt;Igor: /* Обновление FreeBSD с версии 14.2-RELEASE до 14.3-RELEASE */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Подготовка к установке обновлений безопасности FreeBSD ==&lt;br /&gt;
&lt;br /&gt;
Проверка текущей версии ОС:&lt;br /&gt;
&lt;br /&gt;
 # freebsd-version -ku&lt;br /&gt;
 14.2-RELEASE&lt;br /&gt;
 14.2-RELEASE&lt;br /&gt;
&lt;br /&gt;
Перед скачиванием и установкой обновлений безопасности FreeBSD следует сделать резервную копию файлов конфигурации ОС.&lt;br /&gt;
&lt;br /&gt;
 # cp -Rp /etc /etc.backup&lt;br /&gt;
&lt;br /&gt;
== Скачивание бинарных обновлений безопасности FreeBSD==&lt;br /&gt;
&lt;br /&gt;
 # freebsd-update fetch&lt;br /&gt;
 src component not installed, skipped&lt;br /&gt;
 Looking up update.FreeBSD.org mirrors... 3 mirrors found.&lt;br /&gt;
 Fetching public key from update1.freebsd.org... done.&lt;br /&gt;
 Fetching metadata signature for 14.2-RELEASE from update1.freebsd.org... done.&lt;br /&gt;
 Fetching metadata index... done.&lt;br /&gt;
 Fetching 2 metadata files... done.&lt;br /&gt;
 Inspecting system... done.&lt;br /&gt;
 Preparing to download files... done.&lt;br /&gt;
 Fetching 122 patches.....10....20....30....40....50....60....70....80....90....100....110....120. done.&lt;br /&gt;
 Applying patches... done.&lt;br /&gt;
 Fetching 8 files... .... done.&lt;br /&gt;
 The following files will be removed as part of updating to&lt;br /&gt;
 14.2-RELEASE-p7:&lt;br /&gt;
 /etc/ssl/certs/08063a00.0&lt;br /&gt;
 /etc/ssl/certs/18856ac4.0&lt;br /&gt;
 /etc/ssl/certs/57bcb2da.0&lt;br /&gt;
 /etc/ssl/certs/5e98733a.0&lt;br /&gt;
 /etc/ssl/untrusted/03179a64.0&lt;br /&gt;
 &#039;&#039;&#039;[пропущен список удаляемых файлов в ходе обновления]&#039;&#039;&#039;&lt;br /&gt;
 The following files will be added as part of updating to&lt;br /&gt;
 14.2-RELEASE-p7:&lt;br /&gt;
 /etc/ssl/certs/616816f6.0&lt;br /&gt;
 /etc/ssl/certs/6a9bdba3.0&lt;br /&gt;
 /etc/ssl/certs/878d9bca.0&lt;br /&gt;
 /etc/ssl/certs/a09a51ae.0&lt;br /&gt;
 /etc/ssl/certs/b8d25de6.0&lt;br /&gt;
 &#039;&#039;&#039;[пропущен список добавляемых файлов в ходе обновления]&#039;&#039;&#039;&lt;br /&gt;
 The following files will be updated as part of updating to&lt;br /&gt;
 14.2-RELEASE-p7:&lt;br /&gt;
 /bin/freebsd-version&lt;br /&gt;
 /boot/kernel/cd9660.ko&lt;br /&gt;
 /boot/kernel/ext2fs.ko&lt;br /&gt;
 /boot/kernel/if_ena.ko&lt;br /&gt;
 /boot/kernel/kernel&lt;br /&gt;
 &#039;&#039;&#039;[пропущен список заменяемых файлов в ходе обновления]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Установка бинарных обновлений безопасности и перезагрузка FreeBSD ==&lt;br /&gt;
&lt;br /&gt;
 # freebsd-update install&lt;br /&gt;
 src component not installed, skipped&lt;br /&gt;
 Creating snapshot of existing boot environment... done.&lt;br /&gt;
 Installing updates...&lt;br /&gt;
 Restarting sshd after upgrade&lt;br /&gt;
 Performing sanity check on sshd configuration.&lt;br /&gt;
 Stopping sshd.&lt;br /&gt;
 Performing sanity check on sshd configuration.&lt;br /&gt;
 Starting sshd.&lt;br /&gt;
 Scanning /usr/share/certs/untrusted for certificates...&lt;br /&gt;
 Scanning /usr/share/certs/trusted for certificates...&lt;br /&gt;
  done.&lt;br /&gt;
&lt;br /&gt;
Перезагрузка FreeBSD после установки бинарных обновлений безопасности ОС:&lt;br /&gt;
&lt;br /&gt;
 # reboot&lt;br /&gt;
&lt;br /&gt;
== Проверка установленной версии FreeBSD ==&lt;br /&gt;
&lt;br /&gt;
 # freebsd-version -ku&lt;br /&gt;
 14.2-RELEASE-p1&lt;br /&gt;
 14.2-RELEASE-p7&lt;br /&gt;
&lt;br /&gt;
Сравнение списков предыдущих и обновлённых файлов конфигурации после обновления ОС:&lt;br /&gt;
&lt;br /&gt;
 # diff -rq /etc /etc.backup&lt;br /&gt;
 Only in /etc.backup/ssl/certs: 08063a00.0&lt;br /&gt;
 Only in /etc.backup/ssl/certs: 18856ac4.0&lt;br /&gt;
 Only in /etc.backup/ssl/certs: 57bcb2da.0&lt;br /&gt;
 Only in /etc.backup/ssl/certs: 5e98733a.0&lt;br /&gt;
 Only in /etc/ssl/certs: 616816f6.0&lt;br /&gt;
 Only in /etc/ssl/certs: 6a9bdba3.0&lt;br /&gt;
 Only in /etc/ssl/certs: 878d9bca.0&lt;br /&gt;
 Only in /etc/ssl/certs: a09a51ae.0&lt;br /&gt;
 Only in /etc/ssl/certs: b8d25de6.0&lt;br /&gt;
 Only in /etc/ssl/certs: ba8887ce.0&lt;br /&gt;
 Only in /etc/ssl/certs: ffdd40f9.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 03179a64.0&lt;br /&gt;
 Only in /etc/ssl/untrusted: 08063a00.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 080911ac.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 157753a5.0&lt;br /&gt;
 Only in /etc/ssl/untrusted: 18856ac4.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 2c543cd1.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 2e5ac55d.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 3e45d192.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 4a6481c9.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 5273a94c.0&lt;br /&gt;
 Only in /etc/ssl/untrusted: 57bcb2da.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 5c44d531.0&lt;br /&gt;
 Only in /etc/ssl/untrusted: 5e98733a.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 76cb8f92.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 861a399d.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 9c2e7d30.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: d853d49e.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: f3377b1b.0&lt;br /&gt;
&lt;br /&gt;
С 01 октября 2025 года срок поддержки FreeBSD 14.2-RELEASE истёк. И проблемы безопасности, обнаруженные после этой даты, исправляться не будут.&lt;br /&gt;
&lt;br /&gt;
 # freebsd-update fetch&lt;br /&gt;
 src component not installed, skipped&lt;br /&gt;
 Looking up update.FreeBSD.org mirrors... 3 mirrors found.&lt;br /&gt;
 Fetching metadata signature for 14.2-RELEASE from update1.freebsd.org... done.&lt;br /&gt;
 Fetching metadata index... done.&lt;br /&gt;
 Inspecting system... done.&lt;br /&gt;
 Preparing to download files... done.&lt;br /&gt;
 &lt;br /&gt;
 No updates needed to update system to 14.2-RELEASE-p7.&lt;br /&gt;
 &lt;br /&gt;
 WARNING: FreeBSD 14.2-RELEASE HAS PASSED ITS END-OF-LIFE DATE.&lt;br /&gt;
 Any security issues discovered after Wed Oct  1 03:00:00 MSK 2025&lt;br /&gt;
 will not have been corrected.&lt;br /&gt;
&lt;br /&gt;
Вывод команды сообщает об этом. Потребуется повышение версии ОС.&lt;br /&gt;
&lt;br /&gt;
== Обновление FreeBSD с версии 14.2-RELEASE до 14.3-RELEASE ==&lt;br /&gt;
&lt;br /&gt;
Повышение младшей версии ОС:&lt;br /&gt;
&lt;br /&gt;
 # freebsd-update upgrade -r 14.3-RELEASE&lt;br /&gt;
 src component not installed, skipped&lt;br /&gt;
 Looking up update.FreeBSD.org mirrors... 3 mirrors found.&lt;br /&gt;
 Fetching metadata signature for 14.2-RELEASE from update1.freebsd.org... done.&lt;br /&gt;
 Fetching metadata index... done.&lt;br /&gt;
 Fetching 1 metadata files... done.&lt;br /&gt;
 Inspecting system... done.&lt;br /&gt;
 &lt;br /&gt;
 The following components of FreeBSD seem to be installed:&lt;br /&gt;
 kernel/generic kernel/generic-dbg world/base world/lib32&lt;br /&gt;
 &lt;br /&gt;
 The following components of FreeBSD do not seem to be installed:&lt;br /&gt;
 world/base-dbg world/lib32-dbg&lt;br /&gt;
 &lt;br /&gt;
 Does this look reasonable (y/n)?&lt;br /&gt;
&lt;br /&gt;
Вывод команды спросит согласие на установку компонентов ОС.&lt;br /&gt;
&lt;br /&gt;
 To install the downloaded upgrades, run &#039;freebsd-update [options] install&#039;.&lt;br /&gt;
&lt;br /&gt;
Вывод команды предложит сделать продолжение обновления ОС:&lt;br /&gt;
&lt;br /&gt;
 # freebsd-update install&lt;br /&gt;
 src component not installed, skipped&lt;br /&gt;
 Creating snapshot of existing boot environment... done.&lt;br /&gt;
 Installing updates...&lt;br /&gt;
 Kernel updates have been installed.  Please reboot and run&lt;br /&gt;
 &#039;freebsd-update [options] install&#039; again to finish installing updates.&lt;br /&gt;
&lt;br /&gt;
Вывод команды предложит сделать перезагрузку ОС и продолжить обновление ОС:&lt;br /&gt;
 # reboot&lt;br /&gt;
&lt;br /&gt;
 # freebsd-update install&lt;br /&gt;
&lt;br /&gt;
Сравнение списков предыдущих и обновлённых файлов конфигурации после повышения версии ОС:&lt;br /&gt;
 # diff -rq /etc /etc.backup&lt;br /&gt;
 Files /etc/autofs/special_media and /etc.backup/autofs/special_media differ&lt;br /&gt;
 Files /etc/defaults/periodic.conf and /etc.backup/defaults/periodic.conf differ&lt;br /&gt;
 Files /etc/defaults/rc.conf and /etc.backup/defaults/rc.conf differ&lt;br /&gt;
 Files /etc/devd/iwmbtfw.conf and /etc.backup/devd/iwmbtfw.conf differ&lt;br /&gt;
 Only in /etc/devd: rtlbtfw.conf&lt;br /&gt;
 Files /etc/mtree/BSD.debug.dist and /etc.backup/mtree/BSD.debug.dist differ&lt;br /&gt;
 Files /etc/mtree/BSD.include.dist and /etc.backup/mtree/BSD.include.dist differ&lt;br /&gt;
 Files /etc/mtree/BSD.tests.dist and /etc.backup/mtree/BSD.tests.dist differ&lt;br /&gt;
 Files /etc/mtree/BSD.usr.dist and /etc.backup/mtree/BSD.usr.dist differ&lt;br /&gt;
 Files /etc/pkg/FreeBSD.conf and /etc.backup/pkg/FreeBSD.conf differ&lt;br /&gt;
 Files /etc/rc.d/iovctl and /etc.backup/rc.d/iovctl differ&lt;br /&gt;
 Files /etc/rc.d/ipfilter and /etc.backup/rc.d/ipfilter differ&lt;br /&gt;
 Files /etc/rc.d/kld and /etc.backup/rc.d/kld differ&lt;br /&gt;
 Files /etc/rc.d/sendmail and /etc.backup/rc.d/sendmail differ&lt;br /&gt;
 Files /etc/rc.d/var_run and /etc.backup/rc.d/var_run differ&lt;br /&gt;
 Files /etc/regdomain.xml and /etc.backup/regdomain.xml differ&lt;br /&gt;
 Files /etc/services and /etc.backup/services differ&lt;br /&gt;
 Files /etc/ssh/moduli and /etc.backup/ssh/moduli differ&lt;br /&gt;
 Files /etc/ssh/sshd_config and /etc.backup/ssh/sshd_config differ&lt;br /&gt;
&lt;br /&gt;
Все файлы конфигурации ОС, которые не редактировались вручную, обновлены автоматически.&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
	<entry>
		<id>https://wiki.bsdhowto.ru/index.php?title=FreeBSD_Update&amp;diff=218</id>
		<title>FreeBSD Update</title>
		<link rel="alternate" type="text/html" href="https://wiki.bsdhowto.ru/index.php?title=FreeBSD_Update&amp;diff=218"/>
		<updated>2025-11-29T06:38:40Z</updated>

		<summary type="html">&lt;p&gt;Igor: /* Проверка установленной версии FreeBSD */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Подготовка к установке обновлений безопасности FreeBSD ==&lt;br /&gt;
&lt;br /&gt;
Проверка текущей версии ОС:&lt;br /&gt;
&lt;br /&gt;
 # freebsd-version -ku&lt;br /&gt;
 14.2-RELEASE&lt;br /&gt;
 14.2-RELEASE&lt;br /&gt;
&lt;br /&gt;
Перед скачиванием и установкой обновлений безопасности FreeBSD следует сделать резервную копию файлов конфигурации ОС.&lt;br /&gt;
&lt;br /&gt;
 # cp -Rp /etc /etc.backup&lt;br /&gt;
&lt;br /&gt;
== Скачивание бинарных обновлений безопасности FreeBSD==&lt;br /&gt;
&lt;br /&gt;
 # freebsd-update fetch&lt;br /&gt;
 src component not installed, skipped&lt;br /&gt;
 Looking up update.FreeBSD.org mirrors... 3 mirrors found.&lt;br /&gt;
 Fetching public key from update1.freebsd.org... done.&lt;br /&gt;
 Fetching metadata signature for 14.2-RELEASE from update1.freebsd.org... done.&lt;br /&gt;
 Fetching metadata index... done.&lt;br /&gt;
 Fetching 2 metadata files... done.&lt;br /&gt;
 Inspecting system... done.&lt;br /&gt;
 Preparing to download files... done.&lt;br /&gt;
 Fetching 122 patches.....10....20....30....40....50....60....70....80....90....100....110....120. done.&lt;br /&gt;
 Applying patches... done.&lt;br /&gt;
 Fetching 8 files... .... done.&lt;br /&gt;
 The following files will be removed as part of updating to&lt;br /&gt;
 14.2-RELEASE-p7:&lt;br /&gt;
 /etc/ssl/certs/08063a00.0&lt;br /&gt;
 /etc/ssl/certs/18856ac4.0&lt;br /&gt;
 /etc/ssl/certs/57bcb2da.0&lt;br /&gt;
 /etc/ssl/certs/5e98733a.0&lt;br /&gt;
 /etc/ssl/untrusted/03179a64.0&lt;br /&gt;
 &#039;&#039;&#039;[пропущен список удаляемых файлов в ходе обновления]&#039;&#039;&#039;&lt;br /&gt;
 The following files will be added as part of updating to&lt;br /&gt;
 14.2-RELEASE-p7:&lt;br /&gt;
 /etc/ssl/certs/616816f6.0&lt;br /&gt;
 /etc/ssl/certs/6a9bdba3.0&lt;br /&gt;
 /etc/ssl/certs/878d9bca.0&lt;br /&gt;
 /etc/ssl/certs/a09a51ae.0&lt;br /&gt;
 /etc/ssl/certs/b8d25de6.0&lt;br /&gt;
 &#039;&#039;&#039;[пропущен список добавляемых файлов в ходе обновления]&#039;&#039;&#039;&lt;br /&gt;
 The following files will be updated as part of updating to&lt;br /&gt;
 14.2-RELEASE-p7:&lt;br /&gt;
 /bin/freebsd-version&lt;br /&gt;
 /boot/kernel/cd9660.ko&lt;br /&gt;
 /boot/kernel/ext2fs.ko&lt;br /&gt;
 /boot/kernel/if_ena.ko&lt;br /&gt;
 /boot/kernel/kernel&lt;br /&gt;
 &#039;&#039;&#039;[пропущен список заменяемых файлов в ходе обновления]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Установка бинарных обновлений безопасности и перезагрузка FreeBSD ==&lt;br /&gt;
&lt;br /&gt;
 # freebsd-update install&lt;br /&gt;
 src component not installed, skipped&lt;br /&gt;
 Creating snapshot of existing boot environment... done.&lt;br /&gt;
 Installing updates...&lt;br /&gt;
 Restarting sshd after upgrade&lt;br /&gt;
 Performing sanity check on sshd configuration.&lt;br /&gt;
 Stopping sshd.&lt;br /&gt;
 Performing sanity check on sshd configuration.&lt;br /&gt;
 Starting sshd.&lt;br /&gt;
 Scanning /usr/share/certs/untrusted for certificates...&lt;br /&gt;
 Scanning /usr/share/certs/trusted for certificates...&lt;br /&gt;
  done.&lt;br /&gt;
&lt;br /&gt;
Перезагрузка FreeBSD после установки бинарных обновлений безопасности ОС:&lt;br /&gt;
&lt;br /&gt;
 # reboot&lt;br /&gt;
&lt;br /&gt;
== Проверка установленной версии FreeBSD ==&lt;br /&gt;
&lt;br /&gt;
 # freebsd-version -ku&lt;br /&gt;
 14.2-RELEASE-p1&lt;br /&gt;
 14.2-RELEASE-p7&lt;br /&gt;
&lt;br /&gt;
Сравнение списков предыдущих и обновлённых файлов конфигурации после обновления ОС:&lt;br /&gt;
&lt;br /&gt;
 # diff -rq /etc /etc.backup&lt;br /&gt;
 Only in /etc.backup/ssl/certs: 08063a00.0&lt;br /&gt;
 Only in /etc.backup/ssl/certs: 18856ac4.0&lt;br /&gt;
 Only in /etc.backup/ssl/certs: 57bcb2da.0&lt;br /&gt;
 Only in /etc.backup/ssl/certs: 5e98733a.0&lt;br /&gt;
 Only in /etc/ssl/certs: 616816f6.0&lt;br /&gt;
 Only in /etc/ssl/certs: 6a9bdba3.0&lt;br /&gt;
 Only in /etc/ssl/certs: 878d9bca.0&lt;br /&gt;
 Only in /etc/ssl/certs: a09a51ae.0&lt;br /&gt;
 Only in /etc/ssl/certs: b8d25de6.0&lt;br /&gt;
 Only in /etc/ssl/certs: ba8887ce.0&lt;br /&gt;
 Only in /etc/ssl/certs: ffdd40f9.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 03179a64.0&lt;br /&gt;
 Only in /etc/ssl/untrusted: 08063a00.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 080911ac.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 157753a5.0&lt;br /&gt;
 Only in /etc/ssl/untrusted: 18856ac4.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 2c543cd1.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 2e5ac55d.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 3e45d192.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 4a6481c9.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 5273a94c.0&lt;br /&gt;
 Only in /etc/ssl/untrusted: 57bcb2da.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 5c44d531.0&lt;br /&gt;
 Only in /etc/ssl/untrusted: 5e98733a.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 76cb8f92.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 861a399d.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: 9c2e7d30.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: d853d49e.0&lt;br /&gt;
 Only in /etc.backup/ssl/untrusted: f3377b1b.0&lt;br /&gt;
&lt;br /&gt;
С 01 октября 2025 года срок поддержки FreeBSD 14.2-RELEASE истёк. И проблемы безопасности, обнаруженные после этой даты, исправляться не будут.&lt;br /&gt;
&lt;br /&gt;
 # freebsd-update fetch&lt;br /&gt;
 src component not installed, skipped&lt;br /&gt;
 Looking up update.FreeBSD.org mirrors... 3 mirrors found.&lt;br /&gt;
 Fetching metadata signature for 14.2-RELEASE from update1.freebsd.org... done.&lt;br /&gt;
 Fetching metadata index... done.&lt;br /&gt;
 Inspecting system... done.&lt;br /&gt;
 Preparing to download files... done.&lt;br /&gt;
 &lt;br /&gt;
 No updates needed to update system to 14.2-RELEASE-p7.&lt;br /&gt;
 &lt;br /&gt;
 WARNING: FreeBSD 14.2-RELEASE HAS PASSED ITS END-OF-LIFE DATE.&lt;br /&gt;
 Any security issues discovered after Wed Oct  1 03:00:00 MSK 2025&lt;br /&gt;
 will not have been corrected.&lt;br /&gt;
&lt;br /&gt;
Вывод команды сообщает об этом. Потребуется повышение версии ОС.&lt;br /&gt;
&lt;br /&gt;
== Обновление FreeBSD с версии 14.2-RELEASE до 14.3-RELEASE ==&lt;br /&gt;
&lt;br /&gt;
Повышение младшей версии ОС:&lt;br /&gt;
&lt;br /&gt;
 # freebsd-update upgrade -r 14.3-RELEASE&lt;br /&gt;
 src component not installed, skipped&lt;br /&gt;
 Looking up update.FreeBSD.org mirrors... 3 mirrors found.&lt;br /&gt;
 Fetching metadata signature for 14.2-RELEASE from update1.freebsd.org... done.&lt;br /&gt;
 Fetching metadata index... done.&lt;br /&gt;
 Fetching 1 metadata files... done.&lt;br /&gt;
 Inspecting system... done.&lt;br /&gt;
 &lt;br /&gt;
 The following components of FreeBSD seem to be installed:&lt;br /&gt;
 kernel/generic kernel/generic-dbg world/base world/lib32&lt;br /&gt;
 &lt;br /&gt;
 The following components of FreeBSD do not seem to be installed:&lt;br /&gt;
 world/base-dbg world/lib32-dbg&lt;br /&gt;
 &lt;br /&gt;
 Does this look reasonable (y/n)?&lt;br /&gt;
&lt;br /&gt;
Вывод команды спросит согласие на установку компонентов ОС.&lt;br /&gt;
&lt;br /&gt;
 To install the downloaded upgrades, run &#039;freebsd-update [options] install&#039;.&lt;br /&gt;
&lt;br /&gt;
Вывод команды предложит сделать продолжение обновления ОС:&lt;br /&gt;
&lt;br /&gt;
 # freebsd-update install&lt;br /&gt;
 src component not installed, skipped&lt;br /&gt;
 Creating snapshot of existing boot environment... done.&lt;br /&gt;
 Installing updates...&lt;br /&gt;
 Kernel updates have been installed.  Please reboot and run&lt;br /&gt;
 &#039;freebsd-update [options] install&#039; again to finish installing updates.&lt;br /&gt;
&lt;br /&gt;
Вывод команды предложит сделать перезагрузку ОС и продолжить обновление ОС:&lt;br /&gt;
 # reboot&lt;br /&gt;
&lt;br /&gt;
И:&lt;br /&gt;
 # freebsd-update install&lt;br /&gt;
&lt;br /&gt;
Список обновлений файлов конфигурации ОС в ходе повышения версии:&lt;br /&gt;
 # diff -rq /etc /etc.backup&lt;br /&gt;
 Files /etc/autofs/special_media and /etc.backup/autofs/special_media differ&lt;br /&gt;
 Files /etc/defaults/periodic.conf and /etc.backup/defaults/periodic.conf differ&lt;br /&gt;
 Files /etc/defaults/rc.conf and /etc.backup/defaults/rc.conf differ&lt;br /&gt;
 Files /etc/devd/iwmbtfw.conf and /etc.backup/devd/iwmbtfw.conf differ&lt;br /&gt;
 Only in /etc/devd: rtlbtfw.conf&lt;br /&gt;
 Files /etc/mtree/BSD.debug.dist and /etc.backup/mtree/BSD.debug.dist differ&lt;br /&gt;
 Files /etc/mtree/BSD.include.dist and /etc.backup/mtree/BSD.include.dist differ&lt;br /&gt;
 Files /etc/mtree/BSD.tests.dist and /etc.backup/mtree/BSD.tests.dist differ&lt;br /&gt;
 Files /etc/mtree/BSD.usr.dist and /etc.backup/mtree/BSD.usr.dist differ&lt;br /&gt;
 Files /etc/pkg/FreeBSD.conf and /etc.backup/pkg/FreeBSD.conf differ&lt;br /&gt;
 Files /etc/rc.d/iovctl and /etc.backup/rc.d/iovctl differ&lt;br /&gt;
 Files /etc/rc.d/ipfilter and /etc.backup/rc.d/ipfilter differ&lt;br /&gt;
 Files /etc/rc.d/kld and /etc.backup/rc.d/kld differ&lt;br /&gt;
 Files /etc/rc.d/sendmail and /etc.backup/rc.d/sendmail differ&lt;br /&gt;
 Files /etc/rc.d/var_run and /etc.backup/rc.d/var_run differ&lt;br /&gt;
 Files /etc/regdomain.xml and /etc.backup/regdomain.xml differ&lt;br /&gt;
 Files /etc/services and /etc.backup/services differ&lt;br /&gt;
 Files /etc/ssh/moduli and /etc.backup/ssh/moduli differ&lt;br /&gt;
 Files /etc/ssh/sshd_config and /etc.backup/ssh/sshd_config differ&lt;br /&gt;
&lt;br /&gt;
Все файлы обновлены автоматически, т.к. ранее не были отредактированы вручную.&lt;/div&gt;</summary>
		<author><name>Igor</name></author>
	</entry>
</feed>