relaymail
Описание
Эта роль настраивает хост так, чтобы он отправлял исходящие письма через смартост и, при необходимости, пересылал электронные письма, адресованные местным пользователям системы. Это безопасная альтернатива ssmtp.
Почему не следует использовать ssmtp, разве его проще настраивать?
На самом деле, я верю, что эта роль упрощает настройку Postfix по сравнению с ssmtp.
Вот что я узнал, когда сам устанавливал ssmtp:
Я хотел использовать ssmtp и заметил, что он НЕ проверяет SSL/TLS сертификат удаленного сервера в текущих версиях Debian и Ubuntu, а также НЕ проверяет имя хоста сертификата. Это серьезная проблема, так как это делает шифрование бесполезным, и ваш пароль передается в открытом виде, что позволяет любому его перехватить. Об этом также сообщалось в баге Debian, но никаких обновлений не было уже много лет: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=662960
Версия ssmtp в пакетах Redhat была изменена для проверки сертификата, но имя хоста все равно НЕ проверяется, и шифрование остается ненадежным, как и в Debian/Ubuntu. Для этого также есть баг, но прогресса тоже нет уже много лет: https://bugzilla.redhat.com/show_bug.cgi?id=864894
Итак, если вам важна безопасность учетной записи электронной почты, используемой для исходящих писем ваших серверов, не используйте ssmtp.
Разработка ssmtp не ведется с 2009 года: https://anonscm.debian.org/gitweb/?p=ssmtp/ssmtp.git
Кроме того, любой пользователь, который может отправлять письма через ssmtp, нуждается в доступе на чтение к конфигурационному файлу ssmtp, который включает имя пользователя и пароль для аутентификации в smtp. В нормальных условиях вы, вероятно, предоставите разрешение на чтение для "других", что означает, что каждый пользователь или сервис на этой системе сможет прочитать ваши учетные данные smtp.
Это не так в случае с безопасным дизайном Postfix.
Требования
Эта роль работает на всех дистрибутивах, основанных на Debian, и ее легко адаптировать для работы на любом дистрибутиве, который предоставляет Postfix.
Для этой роли требуется версия Ansible 2.4 или выше.
Переменные роли
relaymail_smtp_host
: имя хоста smtp сервера, используемого для пересылки электронной почты (обязательно)- Пример:
smtp.example.org
- Пример:
relaymail_smtp_port
: порт smtp сервера, используемого для пересылки электронной почты- По умолчанию:
587
- По умолчанию:
relaymail_smtp_user
: имя пользователя для аутентификации на пересылающем почтовом сервере (обязательно)- Пример:
[email protected]
- Пример:
relaymail_smtp_password
: пароль для аутентификации на пересылающем почтовом сервере (обязательно)relaymail_force_from_address
: переписать адрес отправителя наrelaymail_smtp_user
(илиrelaymail_from_address
, если он определен).all
переписывает адрес отправителя для всех писем,local
переписывает его для всех писем, отправленных местным пользователем,none
никогда не переписывает адрес отправителя- По умолчанию:
all
- По умолчанию:
relaymail_from_address
: необязательный адрес отправителя, который будет использоватьсяrelaymail_force_from_address
вместоrelaymail_smtp_user
- Пример:
user
или[email protected]
- Пример:
relaymail_overwrite_to
:all
переписывает адрес получателя для всех писем,local
переписывает адрес получателя для писем, адресованных местным пользователям,none
никогда не переписывает адрес получателя- По умолчанию:
all
- По умолчанию:
relaymail_overwrite_to_target
: адрес электронной почты, на который должны отправляться письма с переписанным адресом получателя (обязательно, еслиrelaymail_overwrite_to
неnone
)- Пример:
[email protected]
- Пример:
relaymail_smtp_tls_security_level
: см. http://www.postfix.org/postconf.5.html#smtp_tls_security_level- Пример:
dane-only
- По умолчанию:
secure
- Пример:
relaymail_smtp_tls_wrappermode
: Подключение с использованием явного SSL/TLS режима (вместо STARTSSL). Требуется при отправке почты на порту 465 (SMTPS).- Пример:
"yes"
- По умолчанию:
"no"
- Пример:
relaymail_authorized_submit_users
: Разрешить только указанным пользователям отправлять почту через команду sendmail (см. http://www.postfix.org/postconf.5.html#authorized_submit_users)- Пример:
root
- По умолчанию:
static:anyone
- Пример:
relaymail_restrict_port_25
: Ограничить исходящий трафик на порту 25 для пользователя Postfix (через iptables).- Пример:
false
- По умолчанию:
true
- Пример:
relaymail_enable_smtpd
: Включить smtpd на порту 25 для отправки почты через smtp- Пример:
true
- По умолчанию:
false
- Пример:
relaymail_inet_interfaces
: Интерфейсы, на которых следует прослушивать, когда включен smtpd- Пример:
all
- По умолчанию:
loopback-only
- Пример:
relaymail_mynetworks
: Сети, из которых разрешено принимать и пересылать электронные письма (применимо только когда включен smtpd)- Пример:
127.0.0.0/8 172.30.0.0/16
- По умолчанию:
127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
- Пример:
relaymail_authorized_smtp_users
: Пользователи, которым разрешено отправлять почту через локальный smtp- Пример:
['keepalived']
- По умолчанию:
[]
- Пример:
relaymail_install_rsyslog
: Устанавливает rsyslog, который отвечает за запись логов постфикса в/var/log/mail.log
- Пример:
false
- По умолчанию:
true
- Пример:
relaymail_additional_options
: словарь пар ключ/значение, которые будут добавлены вmain.cf
.- По умолчанию:
{}
- По умолчанию:
relaymail_additional_master_config
: Дополнительная конфигурация, которая добавляется вmaster.cf
- По умолчанию: ``
Примечание: Опции, установленные с помощью relaymail_additional_options
, переопределят предыдущие настройки.
Согласно руководству по постфиксу, "При многократном определении одного и того же параметра запоминается только последний экземпляр."
Поэтому такие переопределения допустимы, но Postfix сгенерирует предупреждающее сообщение.
Пример плейбука
- hosts: all
roles:
- role: Yannik.relaymail
relaymail_smtp_host: smtp.example.org
relaymail_smtp_user: [email protected]
relaymail_smtp_password: secret
relaymail_overwrite_to: local
relaymail_overwrite_to_target: [email protected]
relaymail_additional_options:
smtp_tls_wrappermode: "yes"
Лицензия
GPLv2
Информация об авторе
Янник Сембритцки
This role setups up a host so that it sends outgoing mails over a smarthost and optionally forwards email addressed to local system users. A secure alternative to ssmtp.
ansible-galaxy install Yannik/ansible-role-relaymail