Skrypt postfix-policyd-spf-perl pozwala Postfiksowi sprawdzać SPF nadawcy.
Zainstaluj Mail::SPF:
$ perl -MCPAN -e shell
Terminal does not support AddHistory.
To fix that, maybe try> install Term::ReadLine::Perl
cpan shell -- CPAN exploration and modules installation (v2.36)
Enter 'h' for help.
cpan[1]>
install Mail::SPF
Ściągnij i zainstaluj postfix-policyd-spf-perl:
$ cd /usr/src
$ wget https://launchpad.net/postfix-policyd-spf-perl/trunk/2.011/+download/postfix-policyd-spf-perl-2.011.tar.gz
$ tar xvfz postfix-policyd-spf-perl-2.011.tar.gz
$ cd postfix-policyd-spf-perl-2.011
$ mkdir -p /usr/local/lib/postfix
$ cp postfix-policyd-spf-perl /usr/local/lib/postfix/policyd-spf-perl
Dodaj do /etc/postfix/master.cf:
policyd-spf unix - n n - - spawn
user=nobody argv=/usr/bin/perl /usr/local/lib/postfix/policyd-spf-perl
Dodaj do /etc/postfix/main.cf:
smtpd_recipient_restrictions =
[...]
reject_unauth_destination
check_policy_service unix:private/policyd-spf
[...]
Przetestuj:
$ /usr/local/lib/postfix/policyd-spf-perl
request=smtpd_access_policy
protocol_state=RCPT
protocol_name=SMTP
helo_name=mail.big.corp
queue_id=8045F2AB23
sender=jdoe@big.corp
recipient=joan.doe@bogus.corp
client_address=123.123.123.123
client_name=big.corp
action=PREPEND Received-SPF: pass (false.cf: 123.123.123.123 is authorized to
use 'jdoe@big.corp' in 'mfrom' identity (mechanism 'mx' matched))
receiver=srv.localdomain; identity=mailfrom; envelope-from="jdoe@big.corp";
helo=mail.big.corp; client-ip=123.123.123.123
Porada
Jeśli po uruchomieniu policyd-spf-perl dostajesz błąd, np.:
Can't locate Sys/Hostname/Long.pm in @INC (you may need to install
the Sys::Hostname::Long module) (@INC entries checked:
/usr/lib/perl5/site_perl /usr/share/perl5/site_perl /usr/lib/perl5/vendor_perl
/usr/share/perl5/vendor_perl /usr/lib/perl5/core_perl /usr/share/perl5/core_perl)
at /usr/local/lib/postfix/policyd-spf-perl line 36.
BEGIN failed--compilation aborted at
/usr/local/lib/postfix/policyd-spf-perl line 36.
brakuje ci potrzebnego modułu (tutaj: Sys::Hostname::Long). Zainstaluj go:
install Sys::Hostname::Long