プロジェクト

全般

プロフィール

SMTP認証(SMTP-Auth)

  • PostfixのSMTP認証に関するページです。
  • SMTPサーバの接続に認証を設けることで、不正なメールの送信や
    不正なメールの踏み台送信を防ぐことが出来ます。
  • 実装には幾つかの方法がありますが、今回は簡単なOSアカウントとの
    連携(pam-unix)を利用して実装します。

前提条件

  • このソフトウェアの構築には下記の導入が前提となります。
    • Postfix は構築済みとします。
    • Cyrus-SASL2

インストール

  • yumまたはrpmコマンドで適宜インストールを行います。
    # yum install cyrus-sasl
    

設定ファイル編集

  • 次の設定ファイルを編集します。
    (初回で存在しない場合は作成する)
    # vi /etc/sasl2/smtpd.conf
    # ------------------------------------------------------
    saslauthd_path: /var/run/saslauthd/mux
    pwcheck_method: pwcheck
    
  • Postfix側にも設定を追記します。
    # vi /etc/postfix/main.cf
    # ------------------------------------------------------
    # 変更箇所のみ記載します。
    # SMTP 認証を行う
    smtpd_sasl_auth_enable = yes
    # SMTP 認証を適用するローカルドメイン
    smtpd_sasl_local_domain = $mydomain
    # 匿名認証は行わない
    smtpd_sasl_security_options = noanonymous
    # リレーを許可する範囲(ローカル、SMTP認証されたもの、宛先=目的地)
    smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
    
    # Auth コマンドをサポートしないMTA(Outlook等)はサポートしない
    broken_sasl_auth_clients = yes
    
  • Postfixのサービス設定も変更します。
    saslの設定有効化と、アクセス制御を行います。
    (認証成功した場合許可、それ以外は拒否)
    # vi /etc/postfix/main.cf
    # ------------------------------------------------------
    # 変更箇所のみ記載します。
    smtp      inet  n       -       n       -       -       smtpd
      -o smtpd_sasl_auth_enable=yes
      -o smtpd_client_restrictions=permit_sasl_authenticated,reject
    
  • サービスの設定・再起動を行います
    # service saslauthd start
    # service postfix restart
    # chkconfig saslauthd on
    # chkconfig --list saslauthd
    saslauthd       0:off   1:off   2:on    3:on    4:on    5:on    6:off
    

動作確認

  • メーラのSMTPサーバ設定に、SMTP認証が入っていないと送信が
    できないことを確認する。(画像はMozzila Thunderbirdの場合)
  • 初回送信時にパスワードの応答があり、以後記録される。

 

戻る