Home / Blog / Hosting / Настройка Postfix и Dovecot: полное руководство по почтовом…
HOSTING

Настройка Postfix и Dovecot: полное руководство по почтовому серверу

Узнайте, как выполнить настройку Postfix и Dovecot на Linux. Пошаговый гайд по созданию почтового сервера с IMAP, SMTP и TLS для надежной работы.

TL;DR
Узнайте, как выполнить настройку Postfix и Dovecot на Linux. Пошаговый гайд по созданию почтового сервера с IMAP, SMTP и TLS для надежной работы.
SJ
slipjar.app
28 May 2026 7 min read 26 views
Настройка Postfix и Dovecot: полное руководство по почтовому серверу

Коротко о главном:

  • Postfix выполняет роль агента передачи почты (MTA), отвечая за отправку и маршрутизацию сообщений.
  • Dovecot служит агентом доставки (MDA), обеспечивая доступ к письмам через протоколы IMAP и POP3.
  • Для успешной доставки писем критически важна правильная настройка DNS-записей: MX, SPF, DKIM и PTR.
  • Безопасность связки обеспечивается использованием SSL/TLS сертификатов (например, Let's Encrypt) и Dovecot SASL для аутентификации.

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

Для практики: описанное выше мы тестируем на серверах проверенного хостинга — VPS с крипто-оплатой и нужными локациями.

Подготовка инфраструктуры и DNS-записей

Прежде чем устанавливать пакеты, необходимо подготовить фундамент. Почтовые системы крайне чувствительны к настройкам сети. Если вы проигнорируете этот этап, ваши письма будут блокироваться крупными провайдерами вроде Gmail или Mail.ru еще на этапе установления соединения.

Первым делом проверьте имя хоста (hostname). Оно должно быть в формате FQDN (Full Qualified Domain Name), например, mail.yourdomain.com. Команда hostname -f должна возвращать именно это значение. Также убедитесь, что вы провели базовую настройку SSH-ключей для безопасного доступа к серверу перед началом работ.

Настройка DNS включает создание следующих записей:

Тип записи Значение Описание
A-запись mail.yourdomain.com -> IP сервера Связывает имя почтового сервера с его адресом.
MX-запись yourdomain.com -> mail.yourdomain.com Указывает другим серверам, куда отправлять почту для вашего домена.
PTR (Reverse DNS) IP сервера -> mail.yourdomain.com Обратная запись, обязательная для прохождения спам-фильтров. Настраивается у хостинг-провайдера.
SPF (TXT) v=spf1 mx ip4:IP_ADDRESS -all Список разрешенных отправителей для вашего домена.
Ключевой момент: без корректной PTR-записи (Reverse DNS) вероятность доставки письма на внешние ящики стремится к нулю. Большинство антиспам-систем проверяют соответствие IP-адреса и домена, указанного в HELO/EHLO запросе Postfix.

Установка и базовая конфигурация Postfix

Postfix — это современная замена старому Sendmail. Он быстрее, безопаснее и проще в конфигурировании. Установка в системах на базе Debian/Ubuntu выполняется командой apt install postfix. В процессе установки выберите "Internet Site" и введите ваше системное имя почты (mail.yourdomain.com).

Основной файл конфигурации находится по адресу /etc/postfix/main.cf. Для минимально рабочей схемы нам нужно отредактировать несколько параметров. Мы будем использовать формат хранения почты Maildir, так как он более надежен и производителен, чем устаревший Mbox, особенно при работе с IMAP.

Пример базовых правок в main.cf:

myhostname = mail.yourdomain.com
myorigin = /etc/mailname
mydestination = $myhostname, yourdomain.com, localhost.localdomain, 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
home_mailbox = Maildir/

Параметр home_mailbox = Maildir/ указывает Postfix доставлять почту в папку Maildir в домашнем каталоге пользователя. Это критически важно для последующей интеграции с Dovecot. После внесения изменений всегда выполняйте systemctl restart postfix для применения настроек.

Настройка Dovecot для работы с IMAP и SASL

Dovecot берет на себя задачу предоставления доступа к почтовым ящикам. Он также будет выступать в роли сервера аутентификации для Postfix. Это означает, что когда пользователь пытается отправить письмо, Postfix спрашивает у Dovecot: "Этот пользователь действительно тот, за кого себя выдает?".

Установите необходимые пакеты: apt install dovecot-imapd dovecot-pop3d dovecot-core. Основные настройки распределены по файлам в директории /etc/dovecot/conf.d/. В файле 10-mail.conf убедитесь, что путь к почте совпадает с тем, что мы указали в Postfix:

mail_location = maildir:~/Maildir

Следующий шаг — настройка аутентификации в 10-auth.conf. Отключите передачу паролей в открытом виде (если не используете SSL на начальном этапе, хотя это не рекомендуется) и разрешите plain-текст аутентификацию для работы внутри защищенных туннелей:

disable_plaintext_auth = yes
auth_mechanisms = plain login

Интеграция Dovecot и Postfix через сокет

Чтобы Postfix мог использовать Dovecot для проверки паролей, нужно настроить сокет в файле 10-master.conf. Найдите секцию service auth и приведите её к следующему виду:

service auth {
  unix_listener /var/spool/postfix/private/auth {
    mode = 0660
    user = postfix
    group = postfix
  }
}

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

Настройка безопасности и шифрования TLS

В современном интернете отправка почты без шифрования — верный способ скомпрометировать пароли пользователей. Самый простой способ получить валидные сертификаты — использовать Let's Encrypt. После получения сертификатов их нужно прописать в обоих сервисах.

В Postfix (main.cf) добавьте или измените следующие строки:

smtpd_tls_cert_file=/etc/letsencrypt/live/mail.yourdomain.com/fullchain.pem
smtpd_tls_key_file=/etc/letsencrypt/live/mail.yourdomain.com/privkey.pem
smtpd_use_tls=yes
smtpd_tls_auth_only = yes

В Dovecot (10-ssl.conf) укажите те же пути:

ssl = required
ssl_cert = </etc/letsencrypt/live/mail.yourdomain.com/fullchain.pem
ssl_key = </etc/letsencrypt/live/mail.yourdomain.com/privkey.pem

Использование ssl = required гарантирует, что ни один почтовый клиент не сможет подключиться без шифрования. Это стандарт безопасности для 2024 года. Если вы планируете масштабировать инфраструктуру, возможно, вам стоит изучить, что такое CDN, хотя для почтового трафика это применяется редко, понимание распределения нагрузок будет полезным.

Настройка Postfix Master.cf для работы Submission

Стандартный порт SMTP 25 часто блокируется провайдерами для защиты от спама. Для отправки почты клиентами (Outlook, Thunderbird, мобильные устройства) используется порт 587 (Submission). Его нужно активировать в файле /etc/postfix/master.cf.

Раскомментируйте следующие строки:

submission inet n       -       y       -       -       smtpd
  -o syslog_name=postfix/submission
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_sasl_type=dovecot
  -o smtpd_sasl_path=private/auth
  -o smtpd_reject_unlisted_recipient=no
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
  -o milter_macro_daemon_name=ORIGINATING

Эти параметры заставляют Postfix требовать обязательную авторизацию и шифрование на 587 порту. Таким образом, ваш сервер не станет открытым релеем (open relay), через который спамеры могли бы рассылать миллионы писем от вашего имени.

Ключевой вывод: правильная настройка ограничений (smtpd_recipient_restrictions) — это единственный способ защитить сервер от превращения в источник спама. Всегда разрешайте отправку только авторизованным пользователям или доверенным сетям.

Создание почтовых ящиков и тестирование

В простейшей конфигурации Postfix и Dovecot используют системных пользователей Linux. Чтобы создать почтовый ящик user@yourdomain.com, вам достаточно создать пользователя в системе с помощью команды adduser user. Однако для серьезных проектов чаще используют виртуальных пользователей в базе данных (MySQL/PostgreSQL).

Для проверки работы сервера используйте утилиту telnet или openssl. Например, проверка IMAP:

openssl s_client -connect mail.yourdomain.com:993

Если вы видите приглашение сервера Dovecot, значит SSL и порт 993 работают корректно. Для анализа ошибок всегда используйте логи. В большинстве систем они находятся в /var/log/mail.log или доступны через journalctl -u postfix.

Протокол Порт Метод шифрования
SMTP (Relay) 25 Opportunistic TLS
SMTP (Submission) 587 STARTTLS
IMAP 143 STARTTLS
IMAPS 993 SSL/TLS (Implicit)

Если вы также занимаетесь веб-разработкой на этом же сервере, вам может быть полезно пошаговое руководство по установке Nginx на Ubuntu для настройки веб-интерфейса почты (например, Roundcube).

Часто задаваемые вопросы

Почему мои письма попадают в спам, хотя я все настроил?

Проверьте репутацию вашего IP-адреса в черных списках (DNSBL). Также убедитесь, что записи DKIM и DMARC настроены корректно. Даже при идеальной технической настройке, если вы отправляете письма с "грязного" IP-адреса, который ранее использовался для спама, доверие придется нарабатывать постепенно.

Можно ли использовать Postfix без Dovecot?

Да, если вам нужно только отправлять почту (например, уведомления с сайта). Но если вам нужно принимать почту и читать её через почтовые клиенты, Dovecot необходим как MDA. Postfix сам по себе не умеет предоставлять доступ к письмам по протоколам IMAP или POP3.

Какое количество оперативной памяти нужно для такой связки?

Для небольшого количества ящиков (до 50) вполне достаточно 1 ГБ оперативной памяти. Основным потребителем ресурсов будет не сам Postfix или Dovecot, а антиспам-фильтры вроде SpamAssassin или антивирусы (ClamAV), если вы решите их установить. Без них связка потребляет менее 200 МБ RAM.

Как проверить, не является ли мой сервер открытым релеем?

Используйте онлайн-сервисы (например, MXToolbox) для проверки Open Relay. В правильно настроенном Postfix параметр smtpd_recipient_restrictions должен содержать permit_sasl_authenticated и reject_unauth_destination, что запрещает пересылку писем от неавторизованных отправителей на внешние адреса.

Author

SJ

slipjar.app

Editorial team

The slipjar.app team writes about hosting, servers and infrastructure in plain language.