Postfix – sprawdzanie rekordów SPF nadawców.

Postfix_logo

Wielu z nas ma do czynienia ze spamem. Zazwyczaj są to wiadomości reklamowe, bądź informacje w stylu “Wygrałeś, itp.”.
Są to zwyczajne fake’i a konta pocztowe nadawcze są nieprawidołowe. Na moim serwerze nie było sprawdzania rekordów SPF.

Jak to działa?
Serwer B zabezpieczony przez SPF sprawdza w systemie DNS, czy wysyłana do niego poczta pochodzi z serwera uprawnionego do wysyłania poczty z danej domeny. Jeżeli tak, to poczta jest przyjmowana. Natomiast jeśli adres IP lub adres domenowy serwera przekazującego e-mail nie jest uprawniony do wysyłania maili z danej domeny, mail nie jest przyjmowany. Dzięki temu wiadomości wysyłane przez spamerów podszywających się pod cudze adresy e-mail lub przez wirusy typu Mydoom zostaną odrzucone.

Oczywiście zabezpieczenie SPF dotyczy tylko komunikacji pomiędzy serwerami SMTP. Użytkownicy nie muszą niczego zmieniać w swoich programach pocztowych.

Dzisiejszy opis przeprwadzę na Debiane 7 Wheezy z Postfix’em.

1. Wymagany pakiet;

apt-get install postfix-policyd-spf-perl

2. Sprawdzenie lokalizacji po instalacji:

locate policyd-spf

policy1

3. Edycja pliku main.cf:

nano /etc/postfix/main.cf

Na końcu pliku:

policy-spf_time_limit = 3600s

policy2

W Sekcji restrykcji dodać (widać że mam włączone sprawdzanie adresów IP w serwisach RBL):

check_policy_service unix:private/policy-spf

policy3

4. Edycja pliku master.cf

nano /etc/postfix/master.cf

Na końcu taka regułka powodująca “spawn” proecesu

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

policy4

5. Na koniec przeładowanie Postfixa

/etc/init.d/postfix reload

6. Sprawdzanie działania:

tail -f /var/log/mail.log
Sep 21 15:43:19 xxx postfix/smtpd[1187]: connect from mail-la0-f52.google.com[209.85.215.52]
Sep 21 15:43:19 xxx postfix/trivial-rewrite[1190]: warning: do not list domain xxx in BOTH mydestination and 
virtual_mailbox_domainsSep 21 15:43:23 xxx postfix/policy-spf[1199]: 
Policy action=PREPEND Received-SPF: pass (gmail.com ... _spf.google.com: 
Sender is authorized to use 'xxx@gmail.com' in 'mfrom' identity mechanism 'include:_netblocks.google.com' matched)) 
 receiver=xxx identity=mailfrom; envelope-from="xxx@gmail.com"; helo=mail-la0-f52.google.com; client-ip=209.85.215.52
Sep 21 15:43:23 xxx postfix/smtpd[1187]: EEA192DA374D: client=mail-la0-f52.google.com[209.85.215.52]
Sep 21 15:43:25 xxx postfix/cleanup[1203]: EEA192DA374D: message-id=<56000976.6030400@gmail.com>