Net: Postfix で SPF を検証する

このエントリを先頭に Postfix を DKIM 対応としていったが、ついでなので SPF も検証するように設定した覚え書き。

  • 前提
    OS : Debian GNU/Linux 5.0 lenny
    MTA : Postfix 2.5.5
  • postfix-policyd-spf-python パッケージをインストール
    # apt-get install postfix-policyd-spf-python
  • /etc/postfix-policyd-spf-python/policyd-spf.conf の設定
    下記のような感じで設定。

    # For a fully commented sample config file see policyd-spf.conf.commented

    debugLevel = 1
    defaultSeedOnly = 1

    #HELO_reject = SPF_Not_Pass
    #Mail_From_reject = Fail
    HELO_reject = False
    Mail_From_reject = False

    PermError_reject = False
    TempError_Defer = False

    skip_addresses = 127.0.0.0/8,::ffff:127.0.0.0//104,::1//128

  • /etc/postfix/master.cf の設定
    これは、/usr/share/doc/postfix-policyd-spf-python/README.Debian に記載されていたとおりに行う。
  • /etc/postfix/main.cf の設定
    これも、/usr/share/doc/postfix-policyd-spf-python/README.Debian に記載されていたとおりに行うが、設定したサーバでは Postgrey を導入している関係上、該当する箇所を以下のように設定した。

    smtpd_recipient_restrictions =
            permit_mynetworks,
            permit_sasl_authenticated,
            reject_unauth_destination,
            check_client_access regexp:/etc/postfix/check_client,
            check_policy_service unix:private/policyd-spf
    policyd-spf_time_limit = 3600

  • サービスの再起動
    /etc/init.d/postfix restart
  • 確認
    SPF が設定されているドメインからメールを送信して、受信メールのヘッダに検証結果が正しく出力されているか確認。