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
3. Edycja pliku main.cf:
nano /etc/postfix/main.cf
Na końcu pliku:
policy-spf_time_limit = 3600s
W Sekcji restrykcji dodać (widać że mam włączone sprawdzanie adresów IP w serwisach RBL):
check_policy_service unix:private/policy-spf
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
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>