-
Prosta implementacja SPF w Postfix-ie
Zacznijmy od wyjaśnienia pojęcia SPF (Sender Policy Framework). Jest to mechanizm sprawdzania (autoryzowania) serwerów pocztowych, czy są uprawnione do wysyłania poczty z określonych domen. Dzięki temu mechanizmowi możemy nieco ograniczyć ilość napływającego do nas spamu. Będziemy potrzebowali pakietu „perl-Mail-SPF” oraz „perl-NetAddr-IP”, który znajduje się w repozytorium rpmforge i epel. Jeśli mamy skonfigurowane, któreś z powyższych repo, wydajemy w terminalu komendę:
yum install perl-Mail-SPF perl-NetAddr-IP
Następnie pobieramy skrypt perlowy, który jest „sercem” testowania SPF. Polecam skorzystania ze strony https://launchpad.net/postfix-policyd-spf-perl/. Przykładowo:
wget http://launchpad.net/postfix-policyd-spf-perl/trunk/2.007/+download/postfix-policyd-spf-perl-2.007.tar.gz
Następnie rozpakowujemy
tar xvsf postfix-policyd-spf-perl-2.007.tar.gz
Skrypt „postfix-policyd-spf-perl” kopiujemy np. do /usr/bin/
cp postfix-policyd-spf-perl-2.007/postfix-policyd-spf-perl /usr/bin
Przystępujemy do edycji pliku master.cf. Dopisujemy na końcu pliku następujące linie:
policy unix - n n - 0 spawn
user=nobody argv=/usr/bin/postfix-policyd-spf-perl
gdzie wartość „argv” stanowi ścieżka do skryptu sprawdzania SPF. W przykładzie użyty został użytkownik „nobody”, ale może być oczywiście inny, byle istniał w systemie. Następnie musimy dodać do pliku „main.cf” (znajdującego się w katalogu „/etc/postfix”) następujący wpis:check_policy_service unix:private/policy,
Należy go umieścić jako jeden z warunków dostarczenia wiadomości (smtpd_recipient_restrictions). Należy jednak pamiętać, aby był po wpisie „reject_unauth_destination,”. Czas na restart postfixa:
service postfix restart
Informuję, iż powyższa implementacja jest niezwykle uproszczoną wersją, która nie udostępnia plików konfiguracyjnych, a domyślną polityką jest odrzucanie wiadomości, które uzyskały status „SPF: Fail”. Działanie skryptu najprościej sprawdzić patrząc w nagłówki wiadomości przychodzącej. Powinien znajdować się tam wpis o podobnej treści:
Received-SPF: pass (centos.com.pl: adres_ip is authorized to use 'pomoc@centos.com.pl’ in 'mfrom’ identity (mechanism 'ip4:adres_ip’ matched)) receiver=nazwa_serwera_odbierającego_pocztę; identity=mailfrom; envelope-from=”pomoc@centos.com.pl”; helo=nazwa_serwera_odbierającego_pocztę; client-ip=adres_ip
Received: from nazwa_serwera_nadawcy (nazwa_serwera_nadawcy [adres_IP_serwera_nadawcy])Podane adresy i nazwy są oczywiście przykładowe. Poniżej zaprezentuje przykładowy wpis do DNS dla przykładowej domeny „naszadomena.com”. Załóżmy, że uprawnionym serwerem do wysyłania wiadomości w tej domenie jest tylko komputer wpisany w rekordzie MX:
IN TXT „v=spf1 mx -all”
Szczegółowe wyjaśnienie zagadnień związanych z konfiguracją SPF dla domen już wkrótce.
[…] pomocą Prosta implementacja SPF w Postfix-ie | CentOS- otwarty system operacyjny dla biznesu. Podziel się […]
Jeszcze jest coś takiego jak spamassassin do postfix’a też skutecznie blokuje spam, pozdrawiam
> Jeszcze jest coś takiego jak spamassassin do postfix’a też skutecznie blokuje spam
na co komu skrzyżowania bezkolizyjne, jak wystarczą skrzyżowania ze światłami?
Zaśmiecanie gównem netu. Pokażcie mi gdzie w RFC jest podane, że coś takiego jak wymysł SPF jest wymagany. Paru gówniarzy sobie wymyśli jakieś bzdury i potem są problemy.
Powinny być za to kary albo powinno to być objęte przepisami aby to ujednolicić.
> Zaśmiecanie gównem netu. [..] Paru gówniarzy sobie wymyśli jakieś bzdury i potem są problemy.
Taak, całkiem słuszne, też uważam, że bryczką nie dość, że przyjemniej od auta, to jeszcze zdrowiej.
SPF służy całkiem dobrze tym, co go sprawdzają (ich serwer) – nie dostają gówna z domen, które ktoś sobie upatrzył na „niby” adresata spamu. Ale tylko jeśli tamci mają za admina „gówniarza” który myśli i potrafi dobrze ustawić rekordy SPF w DNSie.
Skrypt postfix-policyd-spf-perl w wersji 2.010 wymaga dodatkowo pakietu perl-Sys-Hostname-Long-1.4-5.el6.noarch.rpm, bez którego nie zadziała.