クラウド、レンタルサーバ、SEO、WPなどのレシピを!

サーバーレシピ

postfix メールサーバー

Postfix3.3 迷惑メール対策 SPF設定

更新日:

Postfix 3.4 [迷惑メール対策 SPF] CentOS7 (マルチドメイン)
↑こちらもご覧ください。記事が新しいです。

迷惑メール対策のひとつ「SPF」を設定します。
Postfix3.3 迷惑メール対策 DKIM設定(2018/10/23追加)もご覧ください。

PostfixのSPFでは、perl版と、python版があります。

perl版 SPF

最初、perl版に挑戦をしていたのですが、どうもうまくいかない。

コマンドラインから、
# /usr/local/lib/policyd-spf-perl
と起動させて、

というふうに書き込む(標準入力に入れる)と、/var/log/maillog に

Oct XX XX:XX:XX postfix/policy-spf[XXXX]: Policy action=PREPEND Received-SPF: softfail ; identity=mailfrom; envelope-from="(メールアドレス)"; helo=(ホスト名); client-ip=(差出側アドレス)

と、SPFの判定がでるのに、なぜか、Postfix経由だと、perl版SPFを認識してくれない。

ということで、perl版SPFを断念(悲)。

python版 SPF

もうひとつの「python版PSF」を入れてみます。

単純に

# yum install pypolicyd-spf

と、yumコマンドで入れると、

と、postfix 2.1も入ってしまうので、今回は、ソース版のSPFをインストール。

python版、SPFの「pypolicyd-spf」

「pypolicyd-spf」は、version 1.3 系と、version 2.0系があり、 Version 1.3系は、python ver.2 をサポートするが、pypolicyd-spf version 2.0系は、python ver.3に。

今回、新しい方の、「pypolicyd-spf」version 2.0系、python ver.3系を入れる。
python 2 系を削除すると、yumなどに影響をするので、python2 と python3 を同居させるようにインストール。

インストール方法は、別途。

「pypolicyd-spf」には、「py3dns」と、「pyspf」というライブラリが必要になります。

AmazonLinux2 で、python2 とpython3との共存(2019/01/04追記)

Amazon Linux 2 で、python ver.2 と、python ver.3 を共存するのは、比較的簡単。
# yum install python3
で、インストールをします。

と、2つのバージョンが入りました。

py3dns(pypolicyd-spf用ライブラリ)

「py3dns」は、python 用 DNS ライブラリ。

「pydns」pydns-2.3.6.tar.gzは、python 2 用。

今回、python3 用を入れます。
https://sourceforge.net/projects/pydns/files/py3dns/py3dns-3.0.2.tar.gz/download
から、
py3dns-3.0.2.tar.gz
をダウンロードしてインストール

pyspf(pypolicyd-spf用ライブラリ)

https://sourceforge.net/projects/pymilter/files/pyspf/pyspf-2.0.12/pyspf-2.0.12.tar.gz/download
からダウンロードしてインストール。

pypolicyd-spf 本体インストール

pypolicyd-spf 設定

Failだと、メールが届かないので、「False」にして、ヘッダ情報に付加して、メールは、届くようにする。

pypolicyd-spf テスト

# /usr/bin/python3 /usr/bin/policyd-spf /etc/python-policyd-spf/policyd-spf.conf

で、何も反応がないことを確認。
実際には、標準入力を待っている状態。
不具合がある場合は、なにか、エラーメッセージが出てきます。

postfix 設定

上記、2行を加えます。行頭の 「policy」の部分を、main.cfでも、同じ名前にします。「policy」でなくても大丈夫。

postfix 2.10から変更された
smtpd_recipient_restrictions
から
smtpd_relay_restrictions
にする。
(古い設定のままでした(汗))

そして、「check_policy_service unix:private/policy」を加えます。

も、加えます。

実際のメール受信で、SPFをテスト

SPFが設定されている、メールアドレスからテストなどをしてみます。

policyd-spf[4769]: prepend Received-SPF: None (mailfrom) identity=mailfrom;

上記は、SPFは、確認できなかったメール。

policyd-spf[4769]: prepend Received-SPF: Pass (mailfrom) identity=mailfrom;

上記は、OKなメール。

「Pass」だとOK。

 

-postfix, メールサーバー

Copyright© サーバーレシピ , 2019 All Rights Reserved.