【MiraiNet】pypolicyd-spf を使う時のちょっとした注意点
こんにちは!技術部の田中です。
今回はPostfixでSPF検証(送信ドメイン認証)を行うツールpypolicyd-spfについて、概要と導入時のちょっとした注意点を紹介します。
1. pypolicyd-spf ってなあに? & 導入する背景
pypolicyd-spfは、Postfixと連携して届いたメールのSPFレコードをチェック(なりすまし検証)するPythonのツール です。標準のPostfixにはこの機能がないため、外部プログラムとして組み込んで使います。
導入する最大のメリットは、なりすましメールをブロックできること。
最近よくある「差出人(From)を受信者(To)と同じアドレスに偽装して送りつけてくるスパムメール」を、自動的に拒否できます。
2. 導入時に知っておくべき2つの注意点
注意点1:メールセキュリティを前段で入れていると使えない
クラウド型のメールセキュリティを経由してメールサーバにメールを配送する構成の場合、メールサーバでpypolicyd-spfは使えません。
接続元IPがすべて「メールセキュリティのIPアドレス」になってしまい、正しい送信元IPでSPF判定ができないためです。
SPFチェックはメールサーバではなく、手前のメールセキュリティ側で行うことになりますが、
マルチドメインの運用をしていて、1つのドメインだけメールセキュリティが前段にある、とかだと困ります。
そんな時は、設定ファイルのWhitelistに信頼できるリレーとしてメールセキュリティが公開しているIPアドレスを追加しておけば導入は可能です。
注意点2:Domain_Whitelist は「書きすぎ注意」
設定ファイルのDomain_Whitelistは、「指定ドメインがFromであれば無条件許可」ではありません。
実際の仕組みは、指定ドメインのSPFレコードを展開し、そこに記載されているIPアドレスからの通信を許可する仕様です。
大手サービスを利用されているドメインをたくさん書きすぎると、許可した記憶のないドメインも(同じSPFレコードのため)チェックがスルーされたり、メール受信のたびに大量のDNS問い合わせが発生します。
ホワイトリストへの登録は、本当に必要なドメインを設定するようにしましょう。
‘スペースなし’のカンマ区切りで設定することにも要注意です。(スペースがあるとエラーになります!)
3. まとめ
・pypolicyd-spf は「なりすましメール」などを弾くのに有効!
・メールセキュリティが前段にある構成のドメインがある場合は要注意!
・Domain_Whitelist は書きすぎ注意!






