ВсёПросто

Настройка Postfix и Dovecot на Ubuntu

Содержание

Базовая настройка Postfix и Dovecot

В статье будет рассмотрена базовая настройка Postfix и Dovecot с использованием системных учетных записей и хранением почтовых данных в их домашних каталогах.

Под «системными» имеются в виду не какие-либо сервисные учетные записи, а учетки обычных пользователей системы.

Это основной и при этом самый простой в настройке и обслуживании вариант развертывания функционала MTA (Postfix) и MAA (Dovecot).

При необходимости вы всегда сможете усложнить конфигурацию — развернуть виртуальных юзеров, организовать централизованное хранилище почтовых данных (а не использовать домашние каталоги) и пр.

Конфигурация программ, рассмотренная ниже, ориентирована больше на среду для тестирования, либо для «домашнего» использования. Если вам нужно что-то более серьезное, рекомендую обратиться к статье Настройка Postfix.

Найти больше информации о почтовых технологиях на UNIX-подобных системах вы можете в рубрике Unix Mail или в статье Настройка Postfix.

Вы также можете развернуть данную конфигурацию в контейнере Docker, у меня даже есть отдельный репозиторий для этого на GitHub, см. статью Postfix и Dovecot в контейнере Docker

Разворачивать связку Postfix + Dovecot с системными пользователями я планирую на ОС Debian (дистрибутив debian-8.7.0-amd64-netinst.iso 1).

Базовая настройка

Для начала нужно создать хотя бы одного пользователя, который и будет получать/отправлять почту.

Создаем юзера командой:

useradd -m -d /home/bissquit -s /bin/false bissquit

useradd -m -d /home/bissquit -s /bin/false bissquit

и сразу перенаправляем всю входящую почту root’a на него (это нужно для безопасности), добавив запись в /etc/aliases:

echo «root: bissquit» >> /etc/aliases

echo «root: bissquit» >> /etc/aliases

Примечание: если решите отредактировать этот файл во время работы Postfix, не забудьте после этого выполнить команду newaliases, чтобы изменения вступили в силу.

На этом все. Более подробно базовую настройку системы я уже рассматривал ранее в статье Настройка Debian для Postfix.

Настройка DNS

К этому моменту уже должны быть созданы все основные записи у вашего DNS-провайдера. Как минимум вам необходимы:

А также второстепенные (но от этого не менее важные):

Примечание: очень много серверов настроены таким образом, что проверяют наличие этой записи.

Сначала они смотрят имя, на которое указывает MX-запись, а потом сравнивают его с именем, которое возвращает PTR-запись и если эти имена отличаются (или PTR вообще отсутствует), то вся почта отклоняется как спам. В логах своего сервера вы увидите что-то подобное:
450 4.7.

1 Client host rejected: cannot find your reverse hostname
Такие жесткие настройки особенно любят устанавливать владельцы Postfix, указав в конфиге ограничения reject_unknown_reverse_client_hostname (для проверки просто существования PTR) или reject_unknown_client_hostname (а эта опция уже требует зеркального разрешения имен/адресов — name>address, address>name). На самом деле это очень жесткие ограничения и даже не все публичные сервисы, например Google, их требований придерживаются.

Примечание: Если эта запись существует, то любые принимающие почтовые серверы будут на 100% уверены в том, что вы являетесь подлинным почтовым сервером и смогут отклонять спамеров, пытающихся представиться вами. Например для домена bissquit.ru spf-запись может иметь вид «v=spf1 mx a ip4:1.2.3.4 ~all», где 1.2.3.4 — адрес сервера. Есть много сервисов 2, помогающих сгенерировать эту запись.

Ну а теперь приступаем к развертыванию Postfix.

Конфигурация Postfix

Первым делом необходимо вычистить из системы MTA, используемый по умолчанию:

apt-get remove exim4 exim4-base exim4-config exim4-daemon-light

И удалить его конфигурацию:

Ну а далее ставим Postfix:

Когда вылезет окно с типом настройки, выбираем конфигурацию Интернет-сайт:

При выборе почтового имени предлагаю все оставить как есть (по умолчанию будет имя ОС), потом настройки мы все равно будем менять:

В общем ничего сложного, все это я подробно рассматривал ранее в статье Установка Postfix на Debian.

Безопасность

Если установка Postfix прошла по стандартному сценарию, то как минимум дефолтные сертификаты должны присутствовать. В том или ином виде конфиг будет содержать параметры:

smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache smtpd_tls_security_level = may

smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pemsmtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.keysmtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scachesmtp_tls_session_cache_database = btree:${data_directory}/smtp_scachesmtpd_tls_security_level = may

Где первые два параметра — пути к файлу сертификата и закрытому ключу, следующие два — пути к кэшу. Менять эти значения по умолчанию не нужно.

Примечание: В этом куске конфига вы можете встретить параметр smtpd_use_tls=yes. Его можно безболезненно убрать, поскольку он устарел и предназначен для совместимости устаревших версий Postfix. Вместо него используется smtpd_tls_security_level, значение которого имеет приоритет.

Следующую секцию параметров, относящуюся к SASL, вам нужно добавить вручную:

smtpd_sasl_auth_enable = yes smtpd_sasl_type = dovecot smtpd_sasl_path = private/auth

smtpd_sasl_auth_enable = yessmtpd_sasl_type = dovecotsmtpd_sasl_path = private/auth

Ключ smtpd_sasl_auth_enable по умолчанию имеет значение no, то есть аутентификация не требуется. Именно поэтому нужно задать yes в явном виде. По умолчанию Postfix использует Cyrus SASL и чтобы он обратил свой взор в сторону Dovecot, нужно изменить параметр smtpd_sasl_type и указать путь до сокета в параметре smtpd_sasl_path.

Примечание: полный путь до сокета будет /var/spool/postfix/private/auth, просто параметр smtpd_sasl_path является составным и по умолчанию включает в себя  путь до очереди — queue_directory = /var/spool/postfix .

Советую к прочтению официальные мануалы 3 4.

Ну и последний момент: проследите, чтобы в конфиге был определен параметр smtpd_relay_restrictions (иначе почта отправляться не будет). По умолчанию для только что установленного Postfix он будет иметь значения permit_mynetworks permit_sasl_authenticated defer_unauth_destination.

С настройками TLS и SASL разобрались, двигаемся дальше.

Хранилище

Postfix должен куда-то сохранять полученные/отправленные сообщения, а потому необходимо ему это объяснить, установив параметры:

home_mailbox = Maildir/ mailbox_command =

Первая запись означает, что информация будет сохраняться в папке Maildir домашнего каталога пользователя.  Пример: если в системе есть пользователь bissquit, то все его почтовые данные будут храниться в /home/bissquit/Maildir/.

Примечание: если вы не установите параметр home_mailbox, то будет использоваться каталог, определенный по умолчанию в параметре mail_spool_directory, а это /var/mail/. Кроме того, данные будут храниться в одном файле, названным по имени пользователя.

В параметре mailbox_command важно выставлять слэш в конце строки, поскольку этот символ заставляет Postfix хранить данные в формате Maildir, то есть каждое письмо в отдельном файле.

Установка и настройка почтового сервера PostfixAdmin на Ubuntu 16.04


В этой статье мы покажем вам, как установить и настроить почтовый сервер с Postfix, Dovecot, Spamassassin, SQLite и PostfixAdmin на Ан Ubuntu 16.04 VPS с Nginx и PHP 7.0. Это руководство должно работать так же хорошо и на других системах Linux VPS, но была испытана и написана для Ubuntu 16.04 VPS.

Обновите систему и установите необходимые пакеты

sudo apt-get update && sudo apt-get -y upgradesudo apt-get -y install wget nano dbconfig-common sqlite3

Создайте системного пользователя

По соображениям безопасности, мы создадим нового пользователя системы, который будет владельцем всех почтовых ящиков.

sudo useradd -r -u 150 -g mail -d /var/vmail -s /sbin/nologin -c «Virtual Mail User» vmailsudo mkdir -p /var/vmailsudo chmod -R 770 /var/vmailsudo chown -R vmail:mail /var/vmail

Установка PHP 7.0 и PHP всех необходимых модулей

Если вы не установили PHP на вашем сервере, вы можете установить последнюю стабильную версию PHP 7.0 и все необходимые модули, с помощью следующей команды:

sudo apt-get -y install php-fpm php-cli php7.0-mbstring php7.0-imap php7.0-sqlite3

Установка и настройка Nginx

Если у вас нет веб-сервера, установленного на вашем компьютере, установите Nginx из официальных репозиториев Ubuntu:

sudo apt-get -y install nginx

Создание нового блока сервера Nginx со следующим содержанием:

sudo nano /etc/nginx/sites-available/postfixadmin.your_domain.ruserver { listen 80; server_name postfixadmin.your_domain.ru; return 301 https://$server_name$request_uri;} server { listen 443 ssl; server_name postfixadmin.your_domain.ru; root /var/www/postfixadmin-3.0; index index.php; charset utf-8; ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem; ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key; ssl_protocols TLSv1.2; ssl_ciphers «EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS:!RC4»; ssl_prefer_server_ciphers on; ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; ssl_ecdh_curve secp521r1; location / { try_files $uri $uri/ index.php; } location ~* .php$ { fastcgi_split_path_info (.+.php)(/.+)$; include fastcgi_params; fastcgi_pass unix:/run/php/php7.0-fpm.sock; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_buffer_size 16k; fastcgi_buffers 4 16k; }}

Активируйте блок сервера, создав символическую ссылку:

sudo ln -s /etc/nginx/sites-available/postfixadmin.your_domain.ru /etc/nginx/sites-enabled/postfixadmin.your_domain.ru

Проверьте конфигурацию Nginx и перезапустите Nginx:

sudo nginx -tsudo service nginx restart

PostfixAdmin

PostfixAdmin является PHP на основе веб – интерфейса, который позволяет управлять базой данных, и использует postfix для виртуальных доменов и пользователей.

Последняя версия PostfixAdmin, 3 -й версии, поддерживает MySQL, PostgreSQL и базу данных SQLite. В этом руководстве мы будем использовать последнюю.

Скачайте архив PostfixAdmin из SourceForge и распакуйте его в каталог /var/www/:

wget -q -O — «http://downloads.sourceforge.net/project/postfixadmin/postfixadmin/postfixadmin-3.0/postfixadmin-3.0.tar.gz» | sudo tar -xzf — -C /var/www

Откройте файл конфигурации почты и измените следующие значения:

sudo nano /var/www/postfixadmin-3.0/config.inc.php$CONF['configured'] = true;$CONF['database_type'] = 'sqlite';$CONF['database_name'] = '/var/vmail/postfixadmin.db';// $CONF['database_host'] = 'localhost';// $CONF['database_user'] = 'postfix';// $CONF['database_password'] = 'postfixadmin';// $CONF['database_name'] = 'postfix'; $CONF['domain_path'] = 'NO';$CONF['domain_in_mailbox'] = 'YES';sudo chown -R www-data: /var/www/postfixadmin-3.0

Создание базы данных SQLite:

sudo touch /var/vmail/postfixadmin.dbsudo chown vmail:mail /var/vmail/postfixadmin.dbsudo usermod -a -G mail www-data

Для заполнения базы данных перейдите к https://postfixadmin.your_domain.ru/setup.php и вы должны увидеть что – то вроде этого:

Testing database connection – OK – sqlite://:xxxxx@//var/vmail/postfixadmin.db

Создайте нового пользователя с правами администратора:

bash /var/www/postfixadmin-3.0/scripts/postfixadmin-cli admin add admin@your_domain.ru —password strong_password —password2 strong_password —superadmin 1 —active 1

Установите и настройте Postfix

Установите postfix с помощью команды ниже:

sudo apt-get install postfix

Создайте следующие файлы:

sudo nano /etc/postfix/sqlite_virtual_alias_maps.cfdbpath = /var/vmail/postfixadmin.dbquery = SELECT goto FROM alias WHERE address='%s' AND active = '1'sudo nano /etc/postfix/sqlite_virtual_alias_domain_maps.cfdbpath = /var/vmail/postfixadmin.dbquery = SELECT goto FROM alias,alias_domain WHERE alias_domain.alias_domain = '%d' and alias.address = printf('%u', '@', alias_domain.target_domain) AND alias.active = 1 AND alias_domain.active='1'sudo nano /etc/postfix/sqlite_virtual_alias_domain_catchall_maps.cfdbpath = /var/vmail/postfixadmin.dbquery = SELECT goto FROM alias,alias_domain WHERE alias_domain.alias_domain = '%d' and alias.address = printf('@', alias_domain.target_domain) AND alias.active = 1 AND alias_domain.active='1'sudo nano /etc/postfix/sqlite_virtual_domains_maps.cfdbpath = /var/vmail/postfixadmin.dbquery = SELECT domain FROM domain WHERE domain='%s' AND active = '1'sudo nano /etc/postfix/sqlite_virtual_mailbox_maps.cfdbpath = /var/vmail/postfixadmin.dbquery = SELECT maildir FROM mailbox WHERE username='%s' AND active = '1'sudo nano /etc/postfix/sqlite_virtual_alias_domain_mailbox_maps.cfdbpath = /var/vmail/postfixadmin.dbquery = SELECT maildir FROM mailbox,alias_domain WHERE alias_domain.alias_domain = '%d' and mailbox.username = printf('%u', '@', alias_domain.target_domain) AND mailbox.active = 1 AND alias_domain.active='1'

Отредактируйте файл main.cf:

postconf -e «myhostname = $(hostname -A)» postconf -e «virtual_mailbox_domains = sqlite:/etc/postfix/sqlite_virtual_domains_maps.cf»postconf -e «virtual_alias_maps = sqlite:/etc/postfix/sqlite_virtual_alias_maps.cf, sqlite:/etc/postfix/sqlite_virtual_alias_domain_maps.cf, sqlite:/etc/postfix/sqlite_virtual_alias_domain_catchall_maps.cf»postconf -e «virtual_mailbox_maps = sqlite:/etc/postfix/sqlite_virtual_mailbox_maps.cf, sqlite:/etc/postfix/sqlite_virtual_alias_domain_mailbox_maps.cf» postconf -e «smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem»postconf -e «smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key»postconf -e «smtpd_use_tls = yes»postconf -e «smtpd_tls_auth_only = yes» postconf -e «smtpd_sasl_type = dovecot»postconf -e «smtpd_sasl_path = private/auth»postconf -e «smtpd_sasl_auth_enable = yes»postconf -e «smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination» postconf -e «mydestination = localhost»postconf -e «mynetworks = 127.0.0.0/8″postconf -e «inet_protocols = ipv4» postconf -e «virtual_transport = lmtp:unix:private/dovecot-lmtp»

Откройте файл master.cf, найти разделы submission inet n и smtps inet n и отредактируйте следующим образом:

sudo nano /etc/postfix/master.cfsmtp inet n — y — — smtpd#smtp inet n — y — 1 postscreen#smtpd pass — — y — — smtpd#dnsblog unix — — y — 0 dnsblog#tlsproxy unix — — y — 0 tlsproxysubmission inet n — y — — smtpd -o syslog_name=postfix/submission -o smtpd_tls_security_level=encrypt -o smtpd_sasl_auth_enable=yes# -o smtpd_reject_unlisted_recipient=no -o smtpd_client_restrictions=permit_sasl_authenticated,reject# -o smtpd_helo_restrictions=$mua_helo_restrictions# -o smtpd_sender_restrictions=$mua_sender_restrictions# -o smtpd_recipient_restrictions=# -o smtpd_relay_restrictions=permit_sasl_authenticated,reject -o milter_macro_daemon_name=ORIGINATINGsmtps inet n — y — — smtpd -o syslog_name=postfix/smtps# -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes# -o smtpd_reject_unlisted_recipient=no -o smtpd_client_restrictions=permit_sasl_authenticated,reject# -o smtpd_helo_restrictions=$mua_helo_restrictions# -o smtpd_sender_restrictions=$mua_sender_restrictions# -o smtpd_recipient_restrictions=# -o smtpd_relay_restrictions=permit_sasl_authenticated,reject -o milter_macro_daemon_name=ORIGINATING

Включите и перезапустите службу postfix

systemctl enable postfixsystemctl restart postfix

Установка и настройка Dovecot

Установить Dovecot с поддержкой SQLite, используя команду ниже:

sudo apt-get install dovecot-imapd dovecot-lmtpd dovecot-pop3d dovecot-sqlite

Откройте файл /etc/dovecot/conf.d/10-mail.conf и измените следующие значения:

mail_location = maildir:/var/vmail/%d/%nmail_privileged_group = mailmail_uid = vmailmail_gid = mailfirst_valid_uid = 150last_valid_uid = 150

Откройте файл /etc/dovecot/conf.d/10-auth.conf и измените следующие значения:

auth_mechanisms = plain login#!include auth-system.conf.ext!include auth-sql.conf.ext

Создайте новый файл dovecot-sql.conf.ext:

sudo nano /etc/dovecot/dovecot-sql.conf.extdriver = sqliteconnect = /var/vmail/postfixadmin.dbdefault_pass_scheme = MD5-CRYPTpassword_query = SELECT username as user, password, '/var/vmail/%d/%n' as userdb_home, 'maildir:/var/vmail/%d/%n' as userdb_mail, 150 as userdb_uid, 8 as userdb_gid FROM mailbox WHERE username = '%u' AND active = '1'user_query = SELECT '/var/vmail/%d/%n' as home, 'maildir:/var/vmail/%d/%n' as mail, 150 AS uid, 8 AS gid, printf('dirsize:storage=', quota) AS quota FROM mailbox WHERE username = '%u' AND active = '1'

В файле /etc/dovecot/conf.d/10-ssl.conf включите поддержку SSL:

ssl = yes

Откройте файл /etc/dovecot/conf.d/15-lda.conf и установите в параметре postmaster_address адрес электронной почты.

postmaster_address = postmaster@vps.your_domain.ru

Откройте файл /etc/dovecot/conf.d/10-master.conf, найдите раздел службы LMTP и изменить его на:

service lmtp { unix_listener /var/spool/postfix/private/dovecot-lmtp { mode = 0600 user = postfix group = postfix }}

Найдите раздел службы аутентификации и изменить его на:

service auth { unix_listener /var/spool/postfix/private/auth { mode = 0666 user = postfix group = postfix } unix_listener auth-userdb { mode = 0600 user = vmail #group = vmail } user = dovecot}

Измените раздел службы auth-worker к следующим функциям:

service auth-worker { user = vmail}

Установите разрешения:

chown -R vmail:dovecot /etc/dovecotchmod -R o-rwx /etc/dovecot

Включите и перезапустите службу dovecot

systemctl enable dovecot systemctl restart dovecot

SpamAssassin

SpamAssassin является инструментом с открытым кодом написанный на Perl, который помогает отфильтровать нежелательную почту. Если вы хотите включить и настроить SpamAssassin пожалуйста, продолжайте со следующими шагами.

Чтобы установить SpamAssassin, выполните следующую команду:

sudo apt-get install spamassassinsudo adduser spamd —disabled-login

Откройте файл /etc/default/spamassassin и внесите следующие изменения:

ENABLED=1OPTIONS=»—create-prefs —max-children 5 -d 127.0.0.1 —username spamd —helper-home-dir /home/spamd/ -s /home/spamd/spamd.log»PIDFILE=»/home/spamd/spamd.pid»CRON=1

Для интеграции SpamAssassin с Postfix, добавьте следующую строку в конце файла /etc/postfix/master.cf:

smtp inet n — — — — smtpd -o content_filter=spamassassin spamassassin unix — n n — — pipe user=nobody argv=/usr/bin/spamc -f -e /usr/sbin/sendmail -oi -f ${sender} ${recipient}

Включите и перезапустите службу Spamassassin

systemctl enable spamassassinsystemctl restart spamassassinsystemctl restart postfix

Если все настроено правильно, то вы должны в состоянии войти в свой бэкэнд PostfixAdmin, перейдя по ссылке https://postfixadmin.your_domain.ru/и создать свой первый виртуальный домен и почтовый ящик.

, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Debian настройка почтового сервера (Postfix, Dovecot)

В Debian настройка почтового сервера чаще всего предполагает использование связки из Postfix — SMTP сервера, отвечающего за передачу писем и Dovecot, обеспечивающего их хранение.

Альтернативными Postfix вариантами являются Sendmail и Exim, но применяются они значительно реже ввиду меньшего удобства эксплуатации и меньших возможностей (в случае с Sendmail) и большей сложности настройки (в случае с Exim).

В распределенных системах Dovecot работает с сервером баз данных (чаще всего — MySQL) храня данные о ящиках и доменах в базе, письма хранятся на диске.

По умолчанию же Dovecot используем системных пользователей и хранит письма в их домашних каталогах. Поскольку рассматривать в рамках статьи довольно сложную конфигурацию почтового сервера, хранящего информацию в базе, будет разобрана настройка связки Postfix + Dovecot для случая когда последний использует системных пользователей.

Почтовый сервер будет работать по защищенному соединению, SSL сертификат и ключ сгенерируем самостоятельно.

Когда ключ и сертификат сгенерированы — начинаем настройку. Используется машина, созданная на основе дистрибутива Debian 8. Аутентификаиця пользователей будет осуществляться посредством SSL + TLS.

Настройка почтового сервера Debian Postfix + Dovecot

Убедимся в том, что для сервера используется статический IP-адрес (установлен параметр static)

mcedit /etc/network/interfaces

Если в настройки сети вносились изменения — перезагружаем серввер

reboot

Устанавливаем Postfix из репозитория

apt-get install postfix

В первом окне выбираем опцию Internet site

При запросе System mail name вводим имя домена

example.com

Те же параметры в любой момент можно изменить в конфиге пакета, также можно запустить реконфигуратор

dpkg-reconfigure postfix

Открываем при помощи текстового редактора основной конфигурационный файл postfix

mcedit /etc/postfix/main.cf

home_mailbox = Maildir/
mailbox_command =

smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_enable = yes

myorigin=$mydomain

В конфиге указываем директорию, в которой будут храниться письма пользователя и задаем параметры аутентификации, которые будут применяться при работе почтовой системы.

SASL (Simple Authentication and Security Layer)

Если в файле присутствовала строка mailbox_command с определенным значением — комментируем ее.

Конфигурационный файл postfix можно не редактировать вручную, вместо этого можно вводить в консоль команды вида postconf -e «команда»

Продолжим конфигурацию именно этим способом. После ее завершения можно просмотреть конфиг чтобы убедиться в том, что нужная информация в него действительно записалась .

Будем использовать tls

postconf -e «smtpd_tls_auth_only=no»

postconf -e «smtpd_use_tls=yes»

postconf -e «smtp_use_tls=yes»

postconf -e «smtp_tls_note_starttls_offer=yes»

Задаем пути к ключу и сертификату SSL

postconf -e «smtp_tls_key_file=/etc/ssl/private/example.key»

postconf -e «smtp_tls_cert_file=/etc/ssl/private/example.crt»

postconf -e «smtp_tls_CAfile=/etc/ssl/certs/example.pem»

postconf -e «smtp_tls_loglevel=1»

postconf -e «smtp_tls_received_header=yes»

postconf -e «smtp_tls_session_timeout=3600s»

Ниже приведен минимальный, но полностью рабочий конфигурационный файл /etc/postfix/main.cf

mydomain = example.com
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no

append_dot_mydomain = no

readme_directory = no

smtpd_tls_cert_file=/etc/dovecot/dovecot.crt
smtpd_tls_key_file=/etc/dovecot/private/dovecot.

key
smtpd_use_tls = yes
smtp_use_tls = yes
smtpd_tls_auth_only = no
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtp_tls_note_starttls_offer = yes

smtpd_sasl_auth_enable = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth

smtpd_tls_received_header = yes
smtpd_tls_loglevel = 1
tls_random_source = dev:/dev/urandom

smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = example.

com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = $mydomain
mydestination = example.com, localhost
mynetworks = 127.0.0.

0/8
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
inet_protocols = ipv4
home_mailbox = Maildir/
mailbox_command =

Перезапускаем сервис

/etc/init.d/postfix restart

Устанавливаем dovecot, письма будем забирать по imap

apt-get install dovecot-common dovecot-imapd

Добавляем в конфиг пути к файлам с ключом и сертификатом, а также указание на необходимость использования SSL

Установка Postfix Ubuntu с Dovecot

Postfix — это один из самых популярных почтовых серверов, который используется для отправки, приема и пересылки почты в различных системах. Очень часто Postfix используют в качестве почтового сервера по умолчанию для веб-сайтов, поскольку он поддерживает все необходимые функции и несложен в настройке, в отличие от SendMail.

В этой статье мы рассмотрим, как выполняется установка Postfix Ubuntu 16.04 с аутентификацией через Dovecot и базу данных. Хотя статья ориентирована именно на Ubuntu, но, вся информация может быть применена и для других дистрибутивов.

Что будет сделано?

Мы установим почтовый сервер Postfix и все необходимые компоненты для работы аутентификации пользователей. Учетные записи пользователей мы будем хранить в базе данных MySQL. Аутентификация на сервере для отправки почты будет выполняться по протоколу SMTP, за это отвечает Postfix.

Также, пользователи смогут получить свои письма по протоколам IMAP или POP3 с помощью Dovecot, которая тоже будет использовать базу данных. А теперь давайте перейдем к самой настройке почтового сервера.

Настройка DNS зоны

Вы не сможете заставить все это работать на локальной машине, без привязанного к ней домена. И на сервере со статическим IP нужно сначала правильно настроить доменную зону. Это очень важно.

Вам нужно чтобы A и MX записи вашего домена указывали на IP адрес вашего сервера. Обычно это можно настроить в панели управления доменом. На обновление доменной зоны может уйти 1-2 дня.

Дальше вам нужно правильно настроить доменное на вашем VPS. FQDN (Fully Qualified Domain Name) должно состоять из имени хоста и зарегистрированного доменного имени. Сначала установим имя хоста с помощью hostnamectl. Например:

sudo hostnamectl set-hostname vps

Затем нужно добавить строчку с именем домена FQDN в файл /etc/hosts. Здесь нужно указать ваш статический адрес, имя хоста и зарегистрированный домен:

sudo vi /etc/hosts

194.67.215.125 vps.losst.ru vps

Теперь у вас есть FQDN, который будет использоваться почтовым сервером. Переходим к установке ПО.

Установка Postfix и других программ

Перед тем как пойти дальше, нужно установить все необходимое программное обеспечение. Сначала обновите репозитории до самой новой версии:

sudo apt update

Затем выполните команду для установки программ:

sudo apt install postfix postfix-mysql dovecot-core dovecot-imapd dovecot-pop3d dovecot-lmtpd dovecot-mysql mariadb-client mariadb-server

Установка займет некоторое время в зависимости от скорости вашего интернета. Во время установки вам предстоит ответить на несколько вопросов:

Здесь нажмите Ок, затем на следующем шаге выберите Интернет сайт:

Дальше вам нужно ввести ваше доменное имя, например, losst.ru:

После завершения все сервисы запустятся автоматически, а мы можем перейти к дальнейшей настройке.

Настройка баз данных

Я не буду подробно описывать как настроить базу данных MySQL. Об этом вы можете прочитать в отдельной статье. Мы подготовим только нашу базу для Dovecot, создадим нужных пользователей и таблицы.

Подключитесь с помощью клиента к серверу баз данных:

sudo mysql -u root

Создадим новую базу данных:

> CREATE DATABASE EmailServer_db;
> USE EmailServer_db;

Затем создадим нового пользователя, который будет использоваться системой:

> CREATE USER 'dba'@'localhost' IDENTIFIED BY 'пароль';> GRANT ALL PRIVILEGES ON * .* TO 'dba'@'localhost';

> FLUSH PRIVILEGES;

Так мы даем пользователю все необходимые полномочия для доступа к базе данных dba. Создадим таблицу для настроек Postfix:

> CREATE TABLE `Domains_tbl` ( `DomainId` INT NOT NULL AUTO_INCREMENT , `DomainName` VARCHAR(50) NOT NULL , PRIMARY KEY (`DomainId`)) ENGINE = InnoDB;

Дальше нам нужно создать таблицу, в которой будут храниться данные аутентификации пользователей нашего почтового сервера:

> CREATE TABLE `Users_tbl` (`UserId` INT NOT NULL AUTO_INCREMENT,`DomainId` INT NOT NULL,`password` VARCHAR(100) NOT NULL,`Email` VARCHAR(100) NOT NULL,PRIMARY KEY (`UserId`),UNIQUE KEY `Email` (`Email`),FOREIGN KEY (DomainId) REFERENCES Domains_tbl(DomainId) ON DELETE CASCADE

) ENGINE = InnoDB;

И таблицу, в которой будут находиться псевдонимы, дополнительные почтовые ящики для пользователей:

> CREATE TABLE `Alias_tbl` (`AliasId` INT NOT NULL AUTO_INCREMENT,`DomainId` INT NOT NULL,`Source` varchar(100) NOT NULL,`Destination` varchar(100) NOT NULL,PRIMARY KEY (`AliasId`),FOREIGN KEY (DomainId) REFERENCES Domains_tbl(DomainId) ON DELETE CASCADE

) ENGINE = InnoDB;

Сейчас у вас должна получиться такая структура базы данных:

Все действия можно выполнить в PhpMyAdmin, возможно, вам будет так проще.

Создание пользователей

Дальше, перейдем к созданию пользователей, который смогут получать и отправлять письма. Создадим пользователя losst@losst.ru и admin@losst.ru. Для этого, нужно добавить две записи в таблицу Users_tbl, а также по записи в Domains_tbl и Aliases_tbl:

> INSERT INTO Domains_tbl (DomainName) VALUES ('losst.ru');> INSERT INTO Users_tbl (DomainId, password, Email) VALUES (1, ENCRYPT('пароль1', CONCAT('$6$', SUBSTRING(SHA(RAND()), -16))), 'losst@losst.

ru');> INSERT INTO Users_tbl (DomainId, password, Email) VALUES (1, ENCRYPT('пароль2', CONCAT('$6$', SUBSTRING(SHA(RAND()), -16))), 'admin@losst.ru');

> INSERT INTO Alias_tbl (DomainId, Source, Destination) VALUES (1, 'info@losst.

ru', 'losst@losst.ru');

Пользователи готовы, дальше рассмотрим как заставить все это работать в Dovecot и Postfix. У нас есть два пользователя, которые относятся к одному домену и один из них имеет один псевдоним.

Настройка Postfix

Все настройки почтового сервера Postfix находятся в каталоге /etc/postfix. Здесь они могут быть разделены на несколько файлов. Основные из них два файла:

Теперь рассмотрим как выполняется настройка postfix ubuntu. Имя хоста устанавливается переменными myhostname и mydestination в файле main.cf:

sudo vi /etc/postfix/main.cf

myhostname = vps
mydestination = $myhostname losst.ru vps.losst.ru localhost localhost.localdomain

Вам нужно найти и добавить такие строки в main.cf для работы с dovecot и smtp. Все строки, которые совпадают с этими из оригинального конфигурационного файла нужно закомментировать:

append_dot_mydomain = nobiff = noconfig_directory = /etc/postfixmessage_size_limit = 4194304readme_directory = nosmtp_tls_session_cache_database = btree:${data_directory}/smtp_scachesmtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)smtpd_tls_cert_file = /etc/pki/dovecot/certs/dovecot.pemsmtpd_tls_key_file = /etc/pki/dovecot/private/dovecot.pemsmtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scachesmtpd_use_tls = yesvirtual_transport = dovecotsmtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth

Дальше добавим наши файлы с настройками для работы с ранее созданными таблицами в базе данных. По отдельному файлу на таблицу:

virtual_mailbox_domains = mysql:/etc/postfix/mariadb-vdomains.cfvirtual_mailbox_maps = mysql:/etc/postfix/mariadb-vusers.cf

virtual_alias_maps = mysql:/etc/postfix/mariadb-valias.cf

Вы можете выбирать и другие имена файлов, но старайтесь называть их так, чтобы потом могли понять о чем идет речь. Закройте этот файл и перейдем к созданию файлов настройки таблиц, вот они:

sudo vi /etc/postfix/mariadb-vdomains.cf

user = dbapassword = парольhosts = 127.0.0.1dbname = EmailServer_db

query = SELECT 1 FROM Domains_tbl WHERE DomainName='%s'

sudo vi /etc/postfix/mariadb-vusers.cf

user = dbapassword = парольhosts = 127.0.0.1dbname = EmailServer_db

query = SELECT 1 FROM Users_tbl WHERE Email='%s'

sudo vi /etc/postfix/mariadb-valias.cf

user = dbapassword = парольhosts = 127.0.0.1dbname = EmailServer_db

query = SELECT Destination FROM Alias_tbl WHERE Source='%s'

Синтаксис каждого из файлов предельно простой. Мы указываем пользователя базы данных, его пароль, хост и имя базы. Последний параметр — запрос, которым postfix может получить простой список нужных ему данных — доменов, пользователей для домена, алиасов для пользователя.

Дальше установим правильные права на файлы:

sudo chmod 640 /etc/postfix/mariadb-vdomains.cf$ sudo chmod 640 /etc/postfix/mariadb-vusers.cf

$ sudo chmod 640 /etc/postfix/mariadb-valias.cf

sudo chown root:postfix /etc/postfix/mariadb-vdomains.cf$ sudo chown root:postfix /etc/postfix/mariadb-vusers.cf

$ sudo chown root:postfix /etc/postfix/mariadb-valias.cf

Мы сделали их доступными только для пользователя и группы, а также сменили группу на postfix. Дальше нужно изменить конфигурацию master.cf:

submission inet n — n — — smtpd-o syslog_name=postfix/submission-o smtpd_tls_security_level=encrypt-o smtpd_sasl_auth_enable=yes-o smtpd_reject_unlisted_recipient=no-o smtpd_recipient_restrictions=permit_sasl_authenticated,reject-o milter_macro_daemon_name=ORIGINATINGpickup unix n — n 60 1 pickupcleanup unix n — n — 0 cleanupqmgr unix n — n 300 1 qmgrtlsmgr unix — — n 1000? 1 tlsmgrrewrite unix — — n — — trivial-rewritebounce unix — — n — 0 bouncedefer unix — — n — 0 bouncetrace unix — — n — 0 bounceverify unix — — n — 1 verifyflush unix n — n 1000? 0 flushproxymap unix — — n — — proxymapproxywrite unix — — n — 1 proxymapsmtp unix — — n — — smtprelay unix — — n — — smtpshowq unix n — n — — showqerror unix — — n — — errorretry unix — — n — — errordiscard unix — — n — — discardlocal unix — n n — — local#virtual unix — n n — — virtuallmtp unix — — n — — lmtpanvil unix — — n — 1 anvilscache unix — — n — 1 scache

Настройка Postfix почти завершена и вам осталось проверить ее корректность:

sudo postfix check

Если все прошло хорошо, можем идти дальше, если же нет — проверяйте настройки, возможно, где-то, что-то упустили. После этого откройте тот же файл и добавьте строчку:

dovecot unix — n n — — pipe
flags=DRhu user=vmail:vmail argv=/usr/libexec/dovecot/deliver -f ${sender} -d ${recipient}

Если это сделать раньше, то вы получите ошибку bad field count.

sudo systemctl restart postfix

Еще нам нужно проверить имеет ли Postfix доступ к созданным базам данных. Для этого будем использовать команду postmap:

sudo postmap -q losst.ru mysql:/etc/postfix/mariadb-vdomains.cf$ sudo postmap -q test.ru mysql:/etc/postfix/mariadb-vdomains.cf$ sudo postmap -q losst@losst.ru mysql:/etc/postfix/mariadb-vusers.

cf$ sudo postmap -q admin@losst.ru mysql:/etc/postfix/mariadb-vusers.cf$ sudo postmap -q none@losst.ru mysql:/etc/postfix/mariadb-vusers.cf

$ sudo postmap -q info@losst.

ru mysql:/etc/postfix/mariadb-valias.cf

Необязательно использовать правильных пользователей. Мы просто проверяем может ли программа работать с базой данных. Если вы получаете ошибку, проверьте пользователя и пароль к базе данных.

Настройка Dovecot

Установка Postfix Dovecot в связке используется чаще всего для веб-сайтов. Dovecot — это IMAP/POP3 сервер, который позволяет пользователям работать с почтой через такие клиенты, как Thunderbird. Для начала нам нужно создать группу и пользователя для обработки электронных адресов, поскольку наши ящики не привязаны к системе:

sudo groupadd -g 5000 vmail
$ sudo useradd -g vmail -u 5000 vmail -d /home/vmail -m

Настройки Dovecot распределены по нескольким файлам. Сначала приведите файл /etc/dovecot/dovecot.conf к такому виду:

sudo vi /etc/dovecot/dovecot.conf

!include_try /usr/share/dovecot/protocols.d/*.protocolprotocols = imap pop3 lmtp!include conf.d/*.conf

!include_try local.conf

Затем разрешим аутентификацию пользователей через базу данных MySQL в файле /etc/dovecot/conf.d/10-auth.conf:

sudo vi /etc/dovecot/conf.d/10-auth.conf

disable_plaintext_auth = yesauth_mechanisms = plain login

!include auth-sql.conf.ext

В следующем файле укажем параметры доступа к базе данных:

sudo vi /etc/dovecot/conf.d/auth-sql.conf.ext

passdb {driver = sqlargs = /etc/dovecot/dovecot-sql.conf.ext}userdb {driver = staticargs = uid=vmail gid=vmail home=/home/vmail/%d/%n/Maildir

}

Мы будем сохранять почту в папке /home/vmail/домен/имя/Maildir. Вам нужно создать папку для домена, если она не существует:

mkdir /home/vmail/losst.ru

Дальше, скажем программе, что для каждого пользователя нужно создавать отдельные почтовые ящики:

sudo vi /etc/dovecot/conf.d/10-mail.conf

mail_location = maildir:/home/vmail/%d/%n/Maildirnamespace inbox {inbox = yes}mail_privileged_group = mail

mbox_write_locks = fcntl

И наконец, приведите базовые настройки в 10-master.conf к такому виду:

sudo vi /etc/dovecot/conf.d/10-master.conf

service imap-login {inet_listener imap {port = 143}inet_listener imaps {}}service pop3-login {inet_listener pop3 {port = 110}inet_listener pop3s {}}service lmtp {unix_listener /var/spool/postfix/private/dovecot-lmtp {mode = 0600user = postfixgroup = postfix}}service auth {unix_listener /var/spool/postfix/private/auth {mode = 0666user = postfixgroup = postfix}unix_listener auth-userdb {mode = 0600user = vmail}user = dovecot}service auth-worker {user = vmail}service dict {unix_listener dict {}

}

Для шифрования будем использовать самоподписанный сертификат:

Установка почтового сервера Postfix на Ubuntu в связке Postfix + Dovecot + MySQL

В данной статье продемонстрирована базовая настройка связки Postfix + Dovecot + MySQL с поддержкой безопасных соединений.Статья написана с учетом того, что вы работаете с правами суперпользователя (root).

Большую часть пакетов в процессе настройки мы будем устанавливать с помощью Aptitude с загрузкой из сети. Для начала, нам нужно обновить базу данных пакетов:

# apt-get update

1. Установка MySQL-сервера и средств администрирования (phpMyAdmin)

Поскольку управлять доменами и почтовыми ящиками удобнее с помощью Postfix Admin, требуется поставить Web-сервер Apache и PHP. Плюс — работать с базами данных MySQL удобнее с использованием phpMyAdmin. Соответственно, ставим необходимые пакеты:

# apt-get install apache2 php5 mysql-server

# apt-get install phpmyadmin

В итоге, будут установлены требуемые пакеты с учетом зависимостей.

Лучше соблюдать приведенную последовательность команд, поскольку в некоторых версиях Linux при одновременной установке apache2 и phpmyadmin, последний — не регистрировался в хосте по-умолчанию.

2. Установка PostfixAdmin

В используемом мной дистрибутиве в списке стандартных пакетов Aptitude отсутствует PostfixAdmin, поэтому качаем его с сайта производителя и устанавливаем вручную. На момент написания статьи последняя версия 2.3.

Устанавливаем скачанный пакет:

# dpkg -i postfixadmin-2.3.2_all.deb

Если установщик выдаст ошибку зависимостей, т.е. не хватает пакетов, нужно просто дать еще одну команду:

# apt-get -f install

В результате будут установлены все зависимые пакеты, включая и Postfixadmin. В процессе настройки надо отметить apache2 для запуска Postfixadmin.

В ходе настройки базы данных необходимо задать пароль администратора MySQL, который был задан на первом этапе (см.п.1), а потом задать пароль для пользователя postfixadmin. Для примера я использовал 123456.

3. Настройка PostfixAdmin

На данном этапе наша задача настроить подключение PostfixAdmin к базе данных, зарегистрировать домен и несколько почтовых ящиков для нового домена.

Проверяем создала ли конфигурационная утилита базу данных и пользователя для нашего PostfixAdmin. Для этого заходим через phpMyAdmin на сервер MySQL. При установке по-умолчанию phpMyAdmin работает по адресу http://ВашХост/phpmyadmin. В списке баз данных должна быть БД postfixadmin.

Не пугайтесь, что она пустая. Структура таблиц будет создана позже во время настройки подключения к БД самого PostfixAdmin. Так же в списке пользователей должен быть пользователь с идентификатором postfixadmin.

Если этого нет, то необходимо создать БД и пользователя с максимальными правами доступа к этой БД.

К сожалению, конфигурационная утилита установки пакета не изменяет параметров файла config.inc.php, даже если с ее помощью создается БД. Конфигурационный файл PostfixAdmin находится в каталоге /etc/postfixadmin/config.inc.php. Изменяем параметры в данном файле в соответствии с приведенным ниже кодом:

$CONF['database_type'] = 'mysql';

$CONF['database_host'] = 'localhost';

$CONF['database_user'] = 'postfixadmin';

$CONF['database_password'] = '123456';

$CONF['database_name'] = 'postfixadmin';

$CONF['database_prefix'] = '';

Изменим алгоритм шифрования пароля заданный по-умолчанию в PostfixAdmin:

$CONF['encrypt'] = 'md5';

Обращаемся к процедуре настройки http://ВашХост/postfixadmin/setup.php. Если ошибок не обнаружено, внизу страницы появится запрос на создание пароля установки. Этот пароль используется для создания администраторов. После указания пароля и нажатия на кнопку Generate password hash, должна появится строка вида:

$CONF['setup_password'] = '272aa1a6bdc0…283ac11e57';

В файле config.inc.php необходимо найти соответствующий параметр и заменить этой строкой, только после этого можно будет создать администратора.

4. Установка и настройка Postfix

Устанавливаем:

# apt-get install postfix postfix-mysql dovecot-common dovecot-imapd dovecot-pop3d openssl

После установки, чтоб предотвратить мешанину из конфигурационных файлов, в папке /etc/postfix создаем подпапку mysql. В ней будут храниться файлы запросов почтового сервера к БД. В этой папке создадим три конфигурационных файла:

4.1. virtual-alias-maps.cf

user = postfixadmin

password = 123456

hosts = 127.0.0.1

dbname = postfixadmin

query = select `goto` from `alias` where `address` = '%s'

user = postfixadmin

password = 123456

hosts = 127.0.0.1

dbname = postfixadmin

query = select 1 from `domain` where `domain` = '%s'

user = postfixadmin

password = 123456

hosts = 127.0.0.1

dbname = postfixadmin

query = select 1 from `mailbox` where `username` = '%s'

Создаем пользователя и группу, которые будут отвечать за почту, точнее за почтовые ящики:

# groupadd -g 5000 vmail

# useradd -g vmail -u 5000 vmail -d /home/vmail -m

Postfix имеет удобный скрипт для управления конфигурационным файлом. Этот скрипт избавляет от необходимости искать директивы вручную. Теперь, используя этот скрипт, зададим конфигурацию для Postfix. Обычно для настройки параметров, дабы не вводить это все каждый раз вручную, я создаю отдельный скрипт. Назовем его postfix-myconf.sh:

#!/bin/sh

postconf -e virtual_mailbox_domains=mysql:/etc/postfix/mysql/virtual-mailbox-domains.cf

postconf -e virtual_mailbox_maps=mysql:/etc/postfix/mysql/virtual-mailbox-maps.cf

postconf -e virtual_alias_maps=mysql:/etc/postfix/mysql/virtual-alias-maps.cf

postconf -e virtual_uid_maps=static:5000

postconf -e virtual_gid_maps=static:5000

postconf -e virtual_transport=dovecot

postconf -e dovecot_destination_recipient_limit=1

postconf -e smtpd_tls_cert_file=/etc/ssl/cert/postfix.pem

postconf -e smtpd_tls_key_file=/etc/ssl/private/postfix.pem

postconf -e smtpd_use_tls=yes

postconf -e smtpd_sasl_type=dovecot

postconf -e smtpd_sasl_path=private/auth

postconf -e smtpd_sasl_auth_enable=yes

postconf -e smtpd_recipient_restrictions=permit_sasl_authenticated,reject_unauth_destination

Заключительным аккордом настройки Postfix будет добавление Dovecot интерфейса. Для этого в файл /etc/postfix/master.cf добавляем две строки:

dovecot unix — n n — — pipe

     flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -d ${recipient}

На данном этапе мы создаем ключи и сертификаты для Postfix и Dovecot. Процедура проста, как гвоздь: даем пару команд и отвечаем на заданные вопросы:

# openssl req -new -x509 -days 3650 -nodes -out /etc/ssl/certs/dovecot.pem -keyout /etc/ssl/private/dovecot.pem

# chmod o= /etc/ssl/private/dovecot.pem

# openssl req -new -x509 -days 3650 -nodes -out /etc/ssl/certs/postfix.pem -keyout /etc/ssl/private/postfix.pem

# chmod o= /etc/ssl/private/postfix.pem

В результате должны появится 4 файла: /etc/ssl/certs/dovecot.pem, /etc/ssl/private/dovecot.pem, /etc/ssl/certs/postfix.pem и /etc/ssl/private/postfix.pem. И не забываем дать права доступа на полученные файлы.

6. Настройка Dovecot

Конфигурационные файлы Dovecot находятся в /etc/dovecot.

6.1. dovecot.conf

Находим перечисленные ниже директивы и приводим их к заданному виду:

protocols = imap imaps pop3 pop3s

disable_plaintext_auth = no

mail_location = maildir:/home/vmail/%d/%n

namespace private {

   separator = .

   prefix = INBOX.

   inbox = yes

}

mechanisms = plain login

passdb sql {

   args = /etc/dovecot/dovecot-sql.conf

}

userdb static {

   args = uid=5000 gid=5000 home=/home/vmail/%d/%n allow_all_users=yes

}

socket listen {

   master {

      path = /var/run/dovecot/auth-master

      mode = 0600

      user = vmail

   }

   client {

      path = /var/spool/postfix/private/auth

      mode = 0660

      user = postfix

      group = postfix

   }

}

protocol lda {

   postmaster_address = postmaster@ВашДомен.ru

   auth_socket_path = /var/run/dovecot/auth-master

   mail_plugins = sieve

   log_path = /home/vmail/dovecot-deliver.log

   global_script_path = /home/vmail/globalsieverc

}

Настраиваем связку Dovecot с MySQL. Точно так же находим перечисленные ниже директивы и приводим их к заданному виду:

driver = mysql

connect = host=127.0.0.1

dbname=postfixadmin user=postfixadmin password=123456

default_pass_scheme = PLAIN-MD5

password_query = SELECT username as user, password FROM mailbox WHERE username = '%u'

Postfix и Dovecot настроены. Перезапускаем:

# /etc/init.d/dovecot restart

# postfix reload

Если все сделано без ошибок, то в файле /var/log/mail.log должны появиться строки:

mail dovecot: Dovecot v1.0.15 starting up

mail dovecot: auth-worker(default):

mysql: Connected to 127.0.0.1 (postfixadmin)

Журналы ошибок и вообще результаты деятельности почтовой системы лежат в файлах:

Тема настройки почтовой системы далее будет расширена подключением Web-интерфейса почты, подключение антивирусной программы, борьба со спамом.

Удачной настройки.

8. Возможные проблемы и способы их решения

В логах ошибка: postfix fatal: open database /etc/aliases.db: no such file or directory

Решение:

Генерируем aliases.db с использованием скрипта postalias:

# postalias /etc/aliases /etc/aliases.db

В результате создадутся необходимые файлы.