В данной статье рассмотрим процесс установки и настройки Postfix и Dovecot – двух популярных программных компонентов для организации почтового сервера.
Postfix – это агент передачи почты (MTA) с открытым исходным кодом, изначально созданный в качестве альтернативы Sendmail.
Он был разработан с упором на безопасность, производительность и простоту настройки, а потому стал одним из лучших выборов как для небольших, так и для крупных почтовых систем.
Одним из ключевых преимуществ Postfix является его модульная архитектура. Он имеет простую для понимания и очень гибкую структуру, позволяющую системным администраторам настраивать ПО в соответствии со своими потребностями.
Кроме того, Postfix может похвастаться различными функциями безопасности, такими как контроль доступа и поддержка шифрования, для защиты конфиденциальных данных электронной почты.
Dovecot – это сервер POP3 и IMAP с открытым исходным кодом для операционных систем Linux, написанный в первую очередь с учётом требований безопасности.
Основная задача Dovecot – функционировать в качестве сервера для хранения электронной почты. Электронные письма доставляются на сервер с помощью агента доставки почты (MDA) и сохраняются для дальнейшего использования на сервере с помощью почтового клиента.
Он также может действовать в качестве почтового прокси-сервера, перенаправлять соединения на другой сервер и управлять почтой на удалённых серверах.
Dovecot полностью совместим с реализациями серверов Courier IMAP и UW IMAP, а также с почтовыми клиентами, такими как Outlook или Thunderbird, которые имеют прямой доступ к почтовым ящикам.
Таким образом, Dovecot – это надёжный, безопасный и полностью соответствующий стандартам сервер IMAP/POP3. Его намного проще настроить, чем другие серверы IMAP, и он имеет проверенные механизмы аутентификации.
Подготовка к установке Postfix и Dovecot включает в себя правильный выбор сервера, который будет использоваться для установки и запуска этих почтовых компонентов.
Выбор подходящего сервера основывается на различных факторах, которые нужно учитывать для обеспечения оптимальной производительности и надёжности вашей почтовой системы.
Всем этим требования отвечает VPS/VDS хостинг на Linux c поддержкой Ubuntu, который предоставляет RU-CENTER. Чтобы выбрать наиболее подходящий тариф, просто свяжитесь с нашими специалистами, и они обязательно порекомендуют идеальное решение для ваших задач.
Важно! Убедитесь, что на вашем сервере установлен стек Lamp. В противном случае установите его, следуя нашим инструкциям.
sudo apt update -y
sudo apt install -y postfix
sudo mv /etc/postfix/main.cf /etc/postfix/main.cf.bk
sudo nano /etc/postfix/main.cf
smtpd_banner = $myhostname ESMTP $mail_name
biff = no
append_dot_mydomain = no
readme_directory = no
# TLS parameters
smtp_use_tls = yes
smtp_tls_security_level = may
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_use_tls = yes
smtpd_tls_security_level = may
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_tls_cert_file = /etc/letsencrypt/live/example.ru/fullchain.pem
smtpd_tls_key_file = /etc/letsencrypt/live/example.ru/privkey.pem
smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
smtpd_sasl_auth_enable = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
virtual_transport = lmtp:unix:private/dovecot-lmtp
virtual_mailbox_domains = /etc/postfix/virtual_mailbox_domains
myhostname = mail.example.ru
myorigin = /etc/mailname
mydestination = localhost.$mydomain, localhost
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
inet_protocols = all
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
Где:
sudo service postfix restart
После завершения этих шагов, Postfix будет установлен и настроен на вашем сервере. Вы можете протестировать его, отправив письмо с одного локального пользовательского ящика на другой или отправив тестовое письмо на внешний адрес.
Возможно, вам потребуется дополнительная настройка, если вы хотите включить функции, такие как аутентификация или шифрование TLS/SSL, но базовая установка и настройка Postfix завершена успешно.
sudo apt install -y dovecot-core dovecot-imapd dovecot-pop3d dovecot-lmtpd
Эта команда установит основные компоненты Dovecot и модули для поддержки протоколов IMAP и POP3.
sudo nano /etc/dovecot/conf.d/10-mail.conf
Иногда файл конфигурации может называться иначе: например, 10-auth.conf.
mail_location = mbox:~/mail:INBOX=/var/mail/%u
mail_location = maildir:/var/mail/vhosts/%d/%n
Параметр %d представляет домен, а %n – пользователей. Это означает, что вам нужно будет создать подкаталог в /var/mail/vhosts для каждого домена, получающего электронные письма на вашем сервере.
sudo mkdir -p /var/mail/vhosts/example.ru
Где вместо «example.ru» пропишите своё доменное имя.
Повторите приведённую выше команду для любого другого домена, заменив «example.ru» доменным именем. Например, если вы планируете получать электронные письма для домена example.su, выполните команду ниже.
sudo mkdir -p /var/mail/vhosts/example.su
sudo groupadd -g 5000 vmail
sudo useradd -r -g vmail -u 5000 vmail -d /var/mail/vhosts -c "virtual mail user"
sudo chown -R vmail:vmail /var/mail/vhosts/
sudo nano /etc/dovecot/conf.d/10-master.conf
inet_listener imaps {
#port = 993
#ssl = yes
}
Чтобы Dovecot мог использовать порт 993 и SSL для безопасного соединения IMAP, измените эту запись на:
inet_listener imaps {
port = 993
ssl = yes
}
inet_listener pop3s {
#port = 995
#ssl = yes
}
inet_listener pop3s {
port = 995
ssl = yes
}
service lmtp {
unix_listener lmtp {
#mode = 0666
}
Теперь она должна иметь вид:
service lmtp {
unix_listener /var/spool/postfix/private/dovecot-lmtp {
mode = 0600
user = postfix
group = postfix
}
}
# Postfix smtp-auth
#unix_listener /var/spool/postfix/private/auth {
# mode = 0666
#}
Измените её на:
#Postfix smtp-auth
unix_listener /var/spool/postfix/private/auth {
mode = 0666
user = postfix
group = postfix
}
sudo nano /etc/dovecot/conf.d/10-auth.conf
# disable_plaintext_auth = yes
И измените её на:
disable_plaintext_auth = yes
auth_mechanisms = plain
Следует заменить, чтобы изменить механизм аутентификации:
auth_mechanisms = plain login
!include auth-system.conf.ext
Замените на:
#!include auth-system.conf.ext
sudo nano /etc/dovecot/conf.d/auth-passwdfile.conf.ext
Внесите в файл следующие изменения:
passdb {
driver = passwd-file
args = scheme=PLAIN username_format=%u /etc/dovecot/dovecot-users
}
userdb {
driver = static
args = uid=vmail gid=vmail home=/var/mail/vhosts/%d/%n
}
$ sudo nano /etc/dovecot/dovecot-users
Этот файл представляет собой базу данных, которая содержит список всех пользователей электронной почты на вашем сервере.
Примеры:
host@example.ru:{plain}EX_PASSWORD
rucenter@example.ru:{plain}EX_PASSWORD
nic@example.ru:{plain}EX_PASSWORD
Где:
«example.ru» – ваше доменное имя;
EX_PASSWORD – новый пароль.
$ sudo nano /etc/dovecot/conf.d/10-ssl.conf
Найдите строку:
ssl = yes
И измените значение «ssl» с «yes» на «required»:
ssl = required
#ssl_cert = </etc/dovecot/dovecot.pem
#ssl_key = </etc/dovecot/private/dovecot.pem
Измените их и убедитесь, что они указывают на SSL-сертификат для вашего домена. Например, если вы используете сертификат Let's Encrypt, ваши записи будут иметь вид:
ssl_cert = </etc/letsencrypt/live/example.ru/fullchain.pem
ssl_key = </etc/letsencrypt/live/example.ru/privkey.pem
sudo service dovecot restart
После завершения этих шагов, Dovecot будет установлен и настроен на вашем сервере. Теперь пользователи смогут получить доступ к своим почтовым ящикам через протоколы IMAP и POP3.
Настройка Postfix для работы с Dovecot позволит обеспечить взаимодействие между двумя компонентами и позволит пользователям получать и отправлять электронную почту через Dovecot.
sudo nano /etc/postfix/main.cf
smtp_use_tls = yes
smtp_tls_security_level = may
smtpd_tls_security_level = may
smtpd_sasl_auth_enable = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
И:
#virtual_mailbox_base = /home/vmail
#virtual_mailbox_maps = hash:/etc/postfix/vmaps
#virtual_minimum_uid = 1000
#virtual_uid_maps = static:5000
#virtual_gid_maps = static:5000
virtual_transport = lmtp:unix:private/dovecot-lmtp
sudo nano /etc/postfix/master.cf
Внесите изменения в строку:
submission inet n - y - - smtpd
sudo systemctl restart postfix
sudo systemctl restart dovecot
Готово! Postfix настроен для работы с Dovecot.