• Prosta implementacja SPF w Postfix-ie

    dodany przez Przemysław Sikora

    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.

6 komentarzy do “Prosta implementacja SPF w Postfix-ie”

  1. […] pomocą Prosta implementacja SPF w Postfix-ie | CentOS- otwarty system operacyjny dla biznesu. Podziel się […]

  2. michas100 pisze:

    Jeszcze jest coś takiego jak spamassassin do postfix’a też skutecznie blokuje spam, pozdrawiam

  3. michas101 pisze:

    > 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?

  4. endo pisze:

    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ć.

  5. freebox pisze:

    > 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.

  6. lewar pisze:

    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.

Dodaj komentarz

Warto odwiedzić
Valid XHTML 1.0 Transitional centos.com.pl- mapa strony