Настройка SSL в Postfix


Самой распространенной связкой, используемой для настройки почтовых серверов под Linux является Postfix + Dovecot. Dovecot отвечает за прием писем и работу с ними, Postfix — за отправку. По умолчанию оба пакета работают без шифрования. Dovecot на порту 143, Postfix на порту 25. Из соображений безопасности лучше менять данное поведение. В рамках данного материала рассмотрим как производится настройка SSL в Postfix.



Для демонстрации используем дистрибутив Ubuntu, в Debian настройки идентичные. В CentOS принципиальных отличий тоже нет, но сервисы нужно перезапускать через systemctl.

В Ubuntu / Debian также можно использовать systemctl:

systemctl restart postfix



Как выполняется настройка SSL в Postfix


Основной конфигурационный файл Postfix main.cf. Открываем его для редактирования



mcedit /etc/postfix/main.cf


В файле находим секцию, относящуюся к настройкам TLS и добавляем туда несколько строк или раскомментируем их


# TLS parameters
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



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

Сейчас настраиваем Postfix. Он используется для отправки писем. Dovecot в почтовой системе отвечает за получение и хранение писем.



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



Тем не менее, этого недостаточно — дополнительно требуется добиться того, чтобы Postfix работал на портах, поддерживающих шифрование — это 587 и 465 порты.


mcedit /etc/postfix/master.cf



В файле находим и раскомментируем 2 строки:

#submission inet n — — — — smtpd


Отвечает за работу службы на порту 587

#smtps inet n — — — — smtpd


Отвечает за работу службы на порту 465



Перезапускаем почтовую службу

/etc/init.d/postfix restart



Проверяем какие порты использует Postfix сейчас

netstat -nltp | grep master


tcp 0 0 0.0.0.0:465 0.0.0.0:* LISTEN 1264/master 
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 1264/master 
tcp 0 0 0.0.0.0:587 0.0.0.0:* LISTEN 1264/master 



Пример вывода приведен на скриншоте:

настройка SSL в Postfix



Цель достигнута, используются в том числе порты 587 и 465.

Чтобы теперь отправлять с сервера почту с шифрованием достаточно указывать в настройках почтового клиента SSL/TLS и один из открытых только что портов.

Сказать спасибо