先日、CentOS 7にpypolicyd-spfを導入したらバグでメール受信ができなかったので、Perl版のpostfix-policyd-spf-perlを導入しました。
giesen / postfix-policyd-spf-perl
https://copr.fedorainfracloud.org/coprs/giesen/postfix-policyd-spf-perl/
非公式のrepositoriesですが、今のところ問題なく動作しています。
- repoダウンロード
- インストール
- master.cfの設定
- main.cfの設定
- postfixリロード
1 2 3 4 |
# curl -o /etc/yum.repos.d/giesen-postfix-policyd-spf-perl-epel-7.repo https://copr.fedorainfracloud.org/coprs/giesen/postfix-policyd-spf-perl/repo/epel-7/giesen-postfix-policyd-spf-perl-epel-7.repo % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 390 100 390 0 0 181 0 0:00:02 0:00:02 --:--:-- 181 |
プログラムは/usr/libexec/postfix/postfix-policyd-spf-perlにインストールされます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# yum info postfix-policyd-spf-perl Available Packages Name : postfix-policyd-spf-perl Arch : noarch Version : 2.010 Release : 1.el7.centos Size : 17 k Repo : giesen-postfix-policyd-spf-perl/x86_64 Summary : Basic Postfix policy engine for Sender Policy Framework (SPF) checking URL : https://launchpad.net/postfix-policyd-spf-perl/ License : GPLv2 Description : This is a basic Postfix policy engine for Sender Policy Framework (SPF) : checking. It is implemented in pure Perl and uses Mail::SPF. This SPF policy : server implementation is very basic and requires almost no configuration. # repoquery --list postfix-policyd-spf-perl /usr/libexec/postfix/postfix-policyd-spf-perl /usr/share/doc/postfix-policyd-spf-perl-2.010 /usr/share/doc/postfix-policyd-spf-perl-2.010/CHANGES /usr/share/doc/postfix-policyd-spf-perl-2.010/LICENSE /usr/share/doc/postfix-policyd-spf-perl-2.010/README # yum -y install postfix-policyd-spf-perl |
postfixのmaster.cfに追記します。
1 2 3 4 |
# vi /etc/postfix/master.cf policy-spf unix - n n - 0 spawn user=nobody argv=/bin/perl /usr/libexec/postfix/postfix-policyd-spf-perl |
postfixのmain.cfにspfを記述します。
1 2 3 4 5 6 7 8 |
# vi /etc/postfix/main.cf smtpd_recipient_restrictions = permit_mynetworks, ........................, reject_unauth_destination, check_policy_service unix:private/policy-spf policy-spf_time_limit = 3600 |
1 |
# systemctl reload postfix |
ログ(/var/log/maillog)に下記の行があればSPFチェックが行われています。
1 2 3 |
postfix/policy-spf[25724]: Policy action=PREPEND Received-SPF: softfail postfix/policy-spf[26021]: Policy action=PREPEND Received-SPF: pass postfix/policy-spf[30153]: Policy action=PREPEND Received-SPF: none |
“action=PREPEND”は受信メールのヘッダーに調査結果を追記します。
メールのヘッダーを確認すると”Received-SPF: pass”などの行があると思います。