Linux

Postfix : Добавление поддержки TLS-шифрования трафика

Сразу создаём самоподписной доверенный сертификат:

openssl req -new -nodes -x509 -out /etc/postfix/smtpd.pem -keyout /etc/postfix/smtpd.pem -days 3650

В процессе выполнения на экран будут выданы запросы о вводе таких параметров как: Country Name, State or Province Name; Locality Name; Organization Name; Organizational Unit Name; Common Name; Email Address. Самым важным параметром является значение Common Name и в нашем случае оно должно совпадать с FQDN сервера, по которому клиенты будут обращаться к нему для отправки почты.

Теперь необходимо включить поддержку TLS в файле /etc/postfix/main.cf:

smtp_use_tls = yes
smtpd_use_tls = yes
smtpd_tls_auth_only = yes
smtp_tls_note_starttls_offer = yes
smtpd_tls_key_file = /etc/postfix/smtpd.pem
smtpd_tls_cert_file = /etc/postfix/smtpd.pem
smtpd_tls_CAfile = /etc/postfix/smtpd.pem
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom
Указанные параметры имеют следующие значения:
smtp_use_tls — использовать TLS, если удаленный сервер сообщает о поддержке TLS
smtpd_use_tls — сообщать клиентам о поддержке TLS
smtpd_tls_auth_only — использовать аутентификацию SMTP только для TLS-соединений
smtp_tls_note_starttls_offer — фиксировать в логе имена серверов, выдающих сообщение STARTTLS, поддержка TLS для которых не включена
smtpd_tls_key_file — местонахождение закрытого ключа сервера
smtpd_tls_cert_file — местонахождение сертификата сервера
smtpd_tls_CAfile — местонахождение самоподписного доверенного сертификата
smtpd_tls_loglevel — детальность сообщений о TLS-активности, выводимых в лог
smtpd_tls_received_header — запрашивать заголовки сообщений с информацией о версии протокола и алгоритме шифрования
smtpd_tls_session_cache_timeout — время, в течение которого данные в кэше TLS-сессии считаются актуальными
tls_random_source — имя устройства-генератора псевдослучайных чисел (PRNG).
Для того, чтобы Postfix принимал TLS-соединения на специальный порт (465/SMTPS, а не 25/SMTP), в файле /etc/postfix/master.cf необходимо раскомментировать строки:
smtps inet n — n — — smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes
На этом добавление поддержки TLS-шифрования трафика к Postfix заканчивается. Остается перезапустить Postfix  и начать пользоваться аутентификацией SMTP и TLS-шифрованием трафика.