Как установить и настроить Postfix и Dovecot

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

Что такое Postfix и зачем нужен

Postfix – это агент передачи почты (MTA) с открытым исходным кодом, изначально созданный в качестве альтернативы Sendmail. 

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

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

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

Особенности и функции Postfix

  • Передача почты. Как уже было сказано ранее, основная функция Postfix – передача электронных писем от отправителя к получателю. Postfix обрабатывает письма, проверяет их адреса, решает, куда доставить сообщение, и передает его соответствующему почтовому серверу.
  • SMTP-сервер. Postfix реализует протокол SMTP (Simple Mail Transfer Protocol), используемый для отправки и приёма писем в интернете. Он позволяет Postfix работать в качестве почтового сервера, который обрабатывает входящие и исходящие письма по стандарту SMTP.
  • Безопасность. Postfix разработан с упором на обеспечение безопасности и защиту от спама. Он имеет встроенные механизмы для ограничения доступа, фильтрации писем и предотвращения отказов в обслуживании.
  • Масштабируемость. Благодаря своей эффективной реализации Postfix способен обрабатывать большие объёмы почтового трафика и работать на серверах с различными аппаратными ресурсами.
  • Аутентификация. Postfix обеспечивает возможность аутентификации отправителей и получателей, что повышает безопасность почтовых операций и предотвращает подмену адресов.
  • Интеграция с другими компонентами. Postfix легко интегрируется с другими программными обеспечениями: например, с антивирусами, антиспамами и почтовыми клиентами.

Что такое Dovecot

Dovecot – это сервер POP3 и IMAP с открытым исходным кодом для операционных систем Linux, написанный в первую очередь с учётом требований безопасности. 

Основная задача Dovecot – функционировать в качестве сервера для хранения электронной почты. Электронные письма доставляются на сервер с помощью агента доставки почты (MDA) и сохраняются для дальнейшего использования на сервере с помощью почтового клиента.

Он также может действовать в качестве почтового прокси-сервера, перенаправлять соединения на другой сервер и управлять почтой на удалённых серверах.

Dovecot полностью совместим с реализациями серверов Courier IMAP и UW IMAP, а также с почтовыми клиентами, такими как Outlook или Thunderbird, которые имеют прямой доступ к почтовым ящикам.

Таким образом, Dovecot – это надёжный, безопасный и полностью соответствующий стандартам сервер IMAP/POP3. Его намного проще настроить, чем другие серверы IMAP, и он имеет проверенные механизмы аутентификации. 

Подготовка к установке: подбор сервера

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

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

  1.  Оцените ожидаемый объём почтового трафика и количество пользователей почтовой системы. Чем больше пользователей и почтовых ящиков ожидается, тем мощнее должен быть сервер.
  2. Убедитесь, что выбранный сервер обладает достаточными ресурсами:
  • оперативная память (ОЗУ): от 2 ГБ. 
  • процессор: от двух ядер. 
  1. Объём дискового пространства также зависит от того, будет ли сервер использоваться только для почты или для других задач.
  2. Выберите сервер с высокой производительностью, способный  быстро и эффективно обрабатывать почтовые операции. Это особенно важно при обработке большого количества писем или при подключении множества пользователей.
  3. Обратите внимание на безопасность сервера. Убедитесь, что операционная система и все используемые компоненты обновляются регулярно, чтобы минимизировать риски уязвимостей.

Всем этим требования отвечает VPS/VDS хостинг на Linux c поддержкой Ubuntu, который предоставляет RU-CENTER. Чтобы выбрать наиболее подходящий тариф, просто свяжитесь с нашими специалистами, и они обязательно порекомендуют идеальное решение для ваших задач. 

Как установить и настроить Postfix в Ubuntu 20.04

Важно! Убедитесь, что на вашем сервере установлен стек Lamp. В противном случае установите его, следуя нашим инструкциям

  1. Подключитесь к серверу по SSH.
  2. Обновите пакеты до последних версий:

sudo apt update -y

sudo apt install -y postfix

  1. Перед вами появится окно настроек Postfix. Нажмите Enter, чтобы продолжить.

  1. В окне «General mail configuration type», выберите Internet Site и нажмите Enter.

  1. Введите полное имя домена и выберите Ok.

  1. Создайте резервную копию файла /etc/postfix/main.cf и создайте новый:

sudo mv /etc/postfix/main.cf /etc/postfix/main.cf.bk

sudo nano /etc/postfix/main.cf

  1. Добавьте приведённую ниже информацию в новый файл. 

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

Где: 

  • «myhostname» – полное доменное имя вашего сервера;
  • «mydomain» – домен, к которому относится ваш сервер;
  • «myorigin» – доменное имя, которое будет использоваться в качестве отправителя по умолчанию для локальных пользователей;
  • «mydestination» – список доменов, для которых ваш сервер является точкой назначения. Обычно он включает ваше полное доменное имя и localhost.
  1. Сохраните и закройте файл.
  2. Перезапустите Postfix, чтобы применить изменения конфигурации:

sudo service postfix restart

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

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

Как установить и настроить Dovecot в Ubuntu 20.04

  1. Подключитесь к серверу по SSH.
  2. Установите Dovecot и все пакеты зависимостей, необходимые для запуска службы imap, pop3 и lmtp:

sudo apt install -y dovecot-core dovecot-imapd dovecot-pop3d dovecot-lmtpd

Эта команда установит основные компоненты Dovecot и модули для поддержки протоколов IMAP и POP3.

  1. Отредактируйте файл /etc/dovecot/conf.d/10-mail.conf, чтобы поручить Dovecot искать письма в каталоге:

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

Иногда файл конфигурации может называться иначе: например, 10-auth.conf.

  1. Найдите следующую запись:

mail_location = mbox:~/mail:INBOX=/var/mail/%u   

  1. Измените её на:

mail_location = maildir:/var/mail/vhosts/%d/%n

  1. Сохраните и закройте файл. 

Параметр %d представляет домен, а %n – пользователей. Это означает, что вам нужно будет создать подкаталог в /var/mail/vhosts для каждого домена, получающего электронные письма на вашем сервере.

  1. Создайте первый подкаталог:

sudo mkdir -p /var/mail/vhosts/example.ru 

Где вместо «example.ru» пропишите своё доменное имя.

Повторите приведённую выше команду для любого другого домена, заменив «example.ru» доменным именем. Например, если вы планируете получать электронные письма для домена example.su, выполните команду ниже.

sudo mkdir -p /var/mail/vhosts/example.su

  1. Создайте группу Vmail для службы Dovecot:

sudo groupadd -g 5000 vmail

  1. Создайте пользователя vmail, добавьте его в группу Vmail и выдайте ему права на каталог /var/mail/vhosts/:

sudo useradd -r -g vmail -u 5000 vmail -d /var/mail/vhosts -c "virtual mail user"

sudo chown -R vmail:vmail /var/mail/vhosts/

  1.  Теперь отредактируйте файл Dovecot «10-master.conf».

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

  1.  Найдите в нём запись, как указано ниже:

inet_listener imaps {

  #port = 993

  #ssl = yes

}

Чтобы Dovecot мог использовать порт 993 и SSL для безопасного соединения IMAP, измените эту запись на:

inet_listener imaps {

 port = 993

  ssl = yes

}

  1.  Далее найдите следующую запись:

inet_listener pop3s {

  #port = 995

  #ssl = yes

}

  1.  Замените её на:

inet_listener pop3s {

  port = 995

  ssl = yes

}

  1.  Внесите изменения в ещё одну запись:

service lmtp {

  unix_listener lmtp {

    #mode = 0666

  }

Теперь она должна иметь вид:

service lmtp {

  unix_listener /var/spool/postfix/private/dovecot-lmtp {

    mode = 0600

    user = postfix

    group = postfix

  }

}

  1.  Найдите конфигурации сокета аутентификации Dovecot:

# 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

}

  1.  Сохраните внесённые изменения и закройте файл.
  2. Далее настроим Dovecot для использования безопасной аутентификации. Отредактируйте файл Dovecot 10-auth.conf:

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

  1.  Найдите запись, указанную ниже:

# disable_plaintext_auth = yes

И измените её на:

disable_plaintext_auth = yes

  1.  Запись, имеющую вид:

auth_mechanisms = plain

Следует заменить, чтобы изменить механизм аутентификации:

auth_mechanisms = plain login

  1.  Отключите параметр аутентификации Dovecot по умолчанию, который требует, чтобы пользователи обязательно имели системную учётную запись для использования службы электронной почты. Найдите строку:

!include auth-system.conf.ext

Замените на:

#!include auth-system.conf.ext

  1.  Строку #!include auth-passwdfile.conf.ext необходимо заменить на !include auth-passwdfile.conf.ext, чтобы Dovecot мог использовать файл паролей.
  2.  Сохраните и закройте файл.
  3. Теперь необходимо отредактировать файл паролей Dovecot – auth-passwdfile.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    

}

  1.  Сохраните и закройте файл.
  2.  Затем создайте файл паролей /etc/dovecot/dovecot-users: 

$ sudo nano /etc/dovecot/dovecot-users

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

  1.  Добавьте в файл пользователей, которым вы хотите разрешить использовать почтовый агент. 

Примеры:

host@example.ru:{plain}EX_PASSWORD

rucenter@example.ru:{plain}EX_PASSWORD

nic@example.ru:{plain}EX_PASSWORD

Где: 

«example.ru» – ваше доменное имя;  

EX_PASSWORD – новый пароль. 

  1. Сохраните изменения и закройте файл.
  2. Настройте Dovecot для использования SSL-сертификата. Откройте файл /etc/dovecot/conf.d/10-ssl.conf:

$ sudo nano /etc/dovecot/conf.d/10-ssl.conf

Найдите строку:

ssl = yes

И измените значение «ssl» с «yes» на «required»:

ssl = required

  1.  Найдите ещё две записи:

#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

  1. Сохраните внесённые изменения и закройте файл.
  2. Перезапустите Dovecot, чтобы новые настройки вступили в силу:

sudo service dovecot restart

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

Как настроить Postfix для работы с Dovecot

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

  1.  Откройте файл конфигурации Postfix main.cf:

sudo nano /etc/postfix/main.cf

  1. Внесите следующие изменения:

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

  1. Добавьте:

virtual_transport = lmtp:unix:private/dovecot-lmtp

  1. Теперь вам будет необходимо отредактировать файл master.cf:

sudo nano /etc/postfix/master.cf

Внесите изменения в строку:

submission inet n - y - - smtpd

  1. Завершите настройки, перезагрузив Postfix и Dovecot:

sudo systemctl restart postfix

sudo systemctl restart dovecot

Готово! Postfix настроен для работы с Dovecot. 

Всё ещё остались вопросы?