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: имя пользователя для аутентификации на пересылающем почтовом сервере (обязательно)
  • 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
  • relaymail_overwrite_to: all переписывает адрес получателя для всех писем, local переписывает адрес получателя для писем, адресованных местным пользователям, none никогда не переписывает адрес получателя
    • По умолчанию: all
  • relaymail_overwrite_to_target: адрес электронной почты, на который должны отправляться письма с переписанным адресом получателя (обязательно, если relaymail_overwrite_to не none)
  • 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
Лицензия
gpl-2.0
Загрузки
490
Владелец