Yannik.relaymail

説明

ビルドステータス

このロールは、ホストを設定して、スマートホストを介して送信メールを送信し、オプションでローカルシステムユーザーに宛てたメールを転送します。ssmtpの安全な代替手段です。

なぜssmtpを使用しないべきか、それは設定が簡単ではないですか?

実際、このロールはssmtpよりもpostfixの設定をさらに簡単にすると考えています。

私がssmtpを自分でインストールしたときにわかったことは次のとおりです:

私は今日、ssmtpを使いたいと思いましたが、現在のDebianおよびUbuntuのリリースでは、リモートサーバーのSSL/TLS証明書を検証せず、証明書のホスト名も検証しないことに気付きました。これは大きな問題で、事実上暗号化が無意味になり、パスワードが平文で送信されてしまうため、誰でも傍受できてしまいます。この件はDebianのバグとして報告されていますが、何年も進展がありません:https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=662960

Redhatパッケージのssmtpバージョンには少なくとも証明書を検証するパッチが当てられていますが、ホスト名は依然として検証されず、暗号化はDebian/Ubuntuと同様に不正確です。この件に関するバグもありますが、何年も進展がありません:https://bugzilla.redhat.com/show_bug.cgi?id=864894

したがって、サーバーの送信メールに使用するメールアカウントのセキュリティを気にする場合は、ssmtpを使用しないでください。

ssmtpは少なくとも2009年以降、積極的な開発が行われていません:https://anonscm.debian.org/gitweb/?p=ssmtp/ssmtp.git

これらのポイントに加えて、ssmtpでメールを送信できるユーザーは、SMTP認証に使用するユーザー名とパスワードを含むssmtp構成ファイルへの読み取りアクセスが必要です。通常の条件では、「他の」ユーザーに読み取り権限を与えることが多く、これはそのシステム上のすべてのユーザー/サービスが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でfromアドレスを上書きします(または定義されている場合はrelaymail_from_address)。allはすべてのメールのfromアドレスを上書き、localはローカルユーザーから送信されたすべてのメールのfromアドレスを上書き、noneは決してfromアドレスを上書きしません。
    • デフォルト: all
  • relaymail_from_address: relaymail_force_from_addressrelaymail_smtp_userの代わりに使用するオプションのfromアドレス
  • relaymail_overwrite_to: allはすべてのメールのtoアドレスを上書き、localはローカルユーザー宛てのメールのtoアドレスを上書き、noneはnever toアドレスを上書きしません。
    • デフォルト: all
  • relaymail_overwrite_to_target: 上書きされたtoアドレスのメールが送信されるメールアドレス(relaymail_overwrite_tononeでない場合は必須)
  • 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: SMTPベースのメール送信のためにポート25でsmtpdを有効にします。
    • 例: 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: postfixのログメッセージを/var/log/mail.logに書き込むためのrsyslogをインストールします。
    • 例: false
    • デフォルト: true
  • relaymail_additional_options: main.cfに追加するキー/バリューの辞書。
    • デフォルト: {}
  • relaymail_additional_master_config: master.cfに追加される追加設定
    • デフォルト: ``

注意: relaymail_additional_optionsを使用して設定したオプションは、以前の設定を上書きします。postfixのマニュアルによれば、「同じパラメータが複数回定義されている場合、最後のインスタンスだけが記憶されます」ということです。したがって、上書きは有効ですが、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

著者情報

Yannik Sembritzki

プロジェクトについて

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.relaymail
ライセンス
gpl-2.0
ダウンロード
499