プロジェクト

全般

プロフィール

Postfixでより詳細なSPF認証に対応する(python版)

python版ではperl版では設定できない「FromやEHLO個別でのSPFレコードの参照」や
「エラー時の挙動(拒否・ヘッダ情報負荷してスルー)」といったものに対応している。

前提条件

  • Postfixがインターネット経由で送受信できること
  • インターネット上のDNSと通信ができること

インストール

  • EPELをインストールする
    # yum install epel-release
    
  • Python版SPFをインストールする
    # yum --enablerepo=epel install pypolicyd-spf
    
  • Postfixのmain.cfに連携設定
    # vi /etc/postfix/main.cf
    -----------------------------
    policy_time_limit = 3600
    smtpd_recipient_restrictions =
      …(既存設定略)…,
      check_policy_service unix:private/policy
    
  • Postfixのmaster.cfに連携設定
    # vi /etc/postfix/master.cf
    -----------------------------
    policy     unix  -       n       n       -       0       spawn
      user=nobody argv=/usr/libexec/postfix/policyd-spf
    
  • サービスを再起動する
    # systemctl restart postfix
    

設定

  • 次の設定ファイルを変更する
    # vi /etc/python-policyd-spf/policyd-spf.conf
    -----------------------------
    #  For a fully commented sample config file see policyd-spf.conf.commented
    
    # 設定例
    # Fail  パスできなかった場合
    # False 
    
    # デバッグレベル
    debugLevel = 1
    
    # テスト実行のみ(0の場合有効)
    defaultSeedOnly = 1
    
    # HELOのホスト名のチェック
    HELO_reject = Fail
    
    # Fromヘッダのホスト名のチェック
    Mail_From_reject = Fail
    
    # SPFレコードが解釈できない場合
    PermError_reject = False
    
    # 一時的な認証障害
    TempError_Defer = False
    
    # 次のアドレスではスキップする
    skip_addresses = 127.0.0.0/8,::ffff:127.0.0.0/104,::1
    
  • サービスを再読み込みは不要