SPF(Sender Policy Framework)のインストール

Facebooktwittergoogle_plusmail

弊社のメールサーバにSPF(Sender Policy Framework)を組み込んでみました

SPF(Sender Policy Framework)
http://salt.iajapan.org/wpmu/anti_spam/admin/tech/explanation/spf/

2. SPFの標準化
SPFは、IETFのMARID等において数々の議論と検討を経て、現在、実験的カテゴリのRFCとして(RFC 4408)標準化されている。SMTP通信において送信者のドメインの正当性を検証する技術を一般に「送信ドメイン認証(Sender Authentication Technology)」と総称するが、SPFはそのひとつであり、SMTP通信において送信側のホストのIPアドレスを基に認証を行うIPアドレスベースの認証方式のひとつとして分類されている。


弊社のメールサーバにはすでにDKIM (Domainkeys Identified Mail)も組み込んであります

Install DomainKeys Identified Mail (DKIM)
http://www.rootlinks.net/2012/11/06/install-domainkeys-identified-mail-dkim/

今回参考にさせて頂いたサイト
postfix で postfix-policyd-spf-python ( or postfix-policyd-spf-perl ) を使ってSPF認証する(CentOS/ScientificLinux編)
http://server-setting.info/centos/postfix-policyd-spf-python-redhat.html

今回は簡単そうなpostfix-policyd-spf-perlを組込みました
SPF Policy Server for Postfix (Perl implementation)
https://launchpad.net/postfix-policyd-spf-perl/

当方の環境はCentOS release 5.10 (Final)+Postfix 2.3.3です

  • 送信側の設定
    1. DNS設定追加
    2. 送信側の設定は簡単です。ドメインのDNSにTXTレコードを記述します

      意味は「rootlinks.netからのメールは必ずMXレコードに登録されたホストから送信されます」。言い換えればMXレコード以外のホストから送信されたものは偽物ですとなります
      ただ”-all”にするとメーリングリストのように中継サーバを経由すると拒否される場合があるかもしれません。その場合には”~all”の方が適切でしょうかね

    3. digコマンドで確認
    4. digコマンドで確認します

    5. フリーメール宛に送信してみる
    6. 弊社からgoogleメールに送信してヘッダを確認します。”Received-SPF: pass”とあれば成功です

  • 受信側設定
    1. perl-Sys-Hostname-Longのインストール
    2. perl-Sys-Hostname-Longをyumでインストールします

    3. perl-Mail-SPFのインストール
    4. perl-Mail-SPFをyumでインストールします

    5. postfix-policyd-spf-perl-2.010.tar.gzをインストール
    6. postfix-policyd-spf-perl-2.010.tar.gzをダウンロードしてインストールします。インストールといってもperlプログラムをコピーするだけですが

    7. master.cfを編集
    8. postfixの設定ファイル /etc/postfix/master.cfを編集します

    9. main.cfの編集
    10. postfixの設定ファイル /etc/postfix/main.cfを編集します

    11. Postfixを再起動
    12. テスト
    13. googleからrootlinks.netにメールを送信してみます
      メールヘッダーを確認するとpassの行が追加されています

余談ですがSPFもDKIMもまだまだ実装されているサーバは少ない気がします
たまたま見つけたドメインでは”Received-SPF: permerror(SPFレコードの記述に誤りがあるなどで認証処理に失敗した)”になっていました。実装したのに設定ミスって….

確認したら単純な記述ミスがされていました。ひとつのドメインに複数行書かれていたんです。至極残念ですね

Leave a Reply

  

  

  


*