Instalacja SPF w Postfix na platformie Centos i Debian

Centos:
 
yum install perl-Mail-SPF perl-NetAddr-IP
Debian:
 
apt-get install postfix-policyd-spf-perl
Ze strony https://launchpad.net/postfix-policyd-spf-perl/ pobieramy skrypt perl.
wget https://launchpad.net/postfix-policyd-spf-perl/trunk/release2.010/+download/postfix-policyd-spf-perl-2.010.tar.gz
Rozpakowujemy
tar xvsf postfix-policyd-spf-perl-2.010.tar.gz
Kopiujemy do /usr/bin
cp postfix-policyd-spf-perl-2.010/postfix-policyd-spf-perl /usr/bin
Edycja pliku /etc/postfix/master.cf. Na końcu pliku dopisujemy dwie linijki.
 

...

policy-spf unix  -       n       n       -       0      spawn 
    user=nobody argv=/usr/bin/postfix-policyd-spf-perl

 
Edycja pliku /etc/postfix/main.cf
 

policy_time_limit = 3600

...

smtpd_recipient_restrictions =
        ...
        check_policy_service unix:private/policy-spf
         ...
 
Restartujemy postfixa.
service postfix restart
Jeżeli w nagłówku wiadomości email znajdziemy takie wpisy "Received-SPF: pass ...", to oznacza że wiadomość przeszła poprawnie sprawdzanie SPF.
Received-SPF: pass (conx.pl: 78.47.85.139 is authorized to use 'rambo@conx.pl' in 'mfrom' identity (mechanism 'mx' matched)) 
receiver=gz.ut.pl; identity=mailfrom; envelope-from="rambo@conx.pl"; helo=s1.conx.pl; client-ip=78.47.85.139
Jeśli w nagłówku wiadomości email znajdziemy takie wpisy "Received-SPF: permerror ... Maximum DNS-interactive terms limit (10) exceeded", to oznacza że skrypt perla osiągnął limit sprawdzania zaincludowanych reguł w SPF.
Received-SPF: permerror (ut.pl ... getresponse.com: Maximum DNS-interactive terms limit (10) exceeded) 
receiver=gz.ut.pl; identity=mailfrom; envelope-from="rambo@ut.pl"; helo=s1.conx.pl; client-ip=78.47.85.139
W powyższym przykładzie domena "ut.pl" ma includuje SPF z domeny "getresponse.com". A ta z kolei dziedziczy od następnej domeny "sharepointonline.com" i "spf.protection.outlook.com" itd..
v=spf1 mx a ip4:104.160.64.0/23 ip4:104.160.67.63/32 ip4:104.160.67.128/25 ip4:104.160.68.224/27 
ip4:104.160.69.0/27 ip4:89.206.36.195/32 ptr:getresponse.com ptr:getresponse.net 
include:spf.protection.outlook.com include:sharepointonline.com -all"
Po kilku includach skrypt doszedł do 10 zapytań DNS.