Home > Dodatki do kursów > Postfix – wybrane zabezpieczenia przed spamem

Postfix – wybrane zabezpieczenia przed spamem

SPAM, SPAM, SPAM…

Spam jest obecnie jednym z największych utrapień administratorów na całym świecie – co do tego chyba nie trzeba nikogo przekonywać. I jak to zwykle bywa, każdy nowy rodzaj spamu powoduje powstanie nowych metod zwalczania niechcianej poczty i na odwrót..  I tak to dorobiliśmy się takich metod jak:

  • greylisting
  • weryfikacja adresu nadawcy
  • rekory SPF
  • RBL-e
  • metody oparte o analizę treści
  • …itd., itp.

W tym artykule przyjglądniemy się konfiguracji trzech z nich…

Greylisting

Technika greylistingu polega na chwilowym odrzuceniu przesyłki przez MTA i opiera się na założeniu że porządny serwer pocztowy i tak spróbuje za chwilę, natomiast wirus czy automat spamowy – nie. Na pierwszy rzut oka nie wygląda to może zbyt sensownie – ale działa! Co więcej, jest to technika nie obciążająca serwera pocztowego a wymagająca jedynie przechowywania mapy adresów na serwerze pocztowym.

Włączenie tej metody ochrony przed spamem w postfixie jest bardzo prosta. Po pierwsze trzeba zainstalować pakiet postgrey, który w większości dystrybucji dostępny jest w głównym repozytorium. Jeśli jesteśmy szczęśliwymi posiadaczami dystrybucji „enterprajzowej” to być może będziemy musieli poszukać go w jednym z wielu dodatkowych repozytoriów.

Po zainstalowaniu pakietu należy uruchomić demona postgrey i upewnić się że będzie uruchamiany zawsze podczas startu systemu. Następnie można – a czasem nawet trzeba – dostosować parametry w pliku konfiguracyjnym /etc/sysconfig/postgrey ustawiając odpowiednio czas po którym postgrey przepuści wiadomość:

OPTIONS="--unix=/var/spool/postfix/postgrey/socket --delay=60"

Ostatni element to poinformowanie postfixa, że powinien skorzystać z usługi postgrey. Przy założeniu że przepuszczamy całość ruchu pocztowego przez postgreya, dodajemy następujący wpis do ustawień restrykcji:

smtpd_recipient_restrictions =
   permit_mynetworks,
   reject_unauth_destination,
   ...
   check_policy_service unix:postgrey/socket,
   ...

Na koniec wypada dodać, że postfix pozwala na wybiórcze przesyłanie maili do postgreya za pośrednictwem tabeli access. Po więcej szczegółów odsyłam do tej strony

Weryfikacja adresu nadawcy

Podczas transakcji SMTP Postfix może przeprowadzić weryfikację adresu nadawcy symulując proces wysyłania odpowiedzi na adres nadawcy. Innymi słowy MTA łączy się z serwerem pocztowym odpowiednim dla domeny nadawcy i rozpoczyna równoległą transację SMTP. Jako odbiorcę fikcyjnej wiadomości podaje konto nadawcy weryfikowanej przesyłki i po wysłaniu poleceń MAIL FROM: oraz RCPT TO: zrywa transakcję. Jeśli zdalny serwer zaakceptował połączenie – nadawca jest zweryfikowany pomyślnie. Jeśli nie – Postfix odpowiada tą samą klasą błedu (tymczasowy/permanentny).  Aby nie weryfikować ponownie adresów, Postfix przetrzymuje adresy wraz z informacją o wyniku weryfikacji w odpowiedniej mapie  (zalecany typ btree)

Za konfigurację tej funkcjonalności odpowiadają następujące parametry konfiguracyjne:

  • address_verify_map – wskazujący na położenie pliku z mapą
  • reject_unverified_sender – dodawany do listy restrykcji

Poniżej przedstawiona jest przykładowa konfiguracja:

address_verify_map = hash:/var/log/postfix-verify

smtpd_recipient_restrictions = permit_mynetworks,
         check_policy_service unix:postgrey/socket,
         reject_unverified_sender,reject_unauth_destination,
         check_policy_service unix:private/policy

Sender Policy Framework

Na koniec ostatnia technika, która w gruncie rzeczy jest bardzie zabezpieczeniem przed wysyłaniem spamu z naszej domeny niż blokadą przychodzącego spamu. Jej działanie opiera się bowiem na umieszczeniu w strefie DNS informacji o tym, z których hostów dozwolone jest wysyłanie poczty z naszej domeny.

Poniżej przedstawiony jest przykładowyrekord TXT informujący o tym, że zdomeny vnet.com możliwe jest wysyłanie poczty wyłącznie z hostów określonych jako MX dla vnet.com:

vnet.com.	IN TXT	"v=spf1 mx -all"

Postfix sam w sobie nie potrafi przeglądać rekordów SPF. Do tego celu służy zewnętrzne narzędzi, np. postfix-policyd-spf-perl. Jak wskazuje nazwa, jest to narzędzie napisane w perlu i  wymaga zainstalowania modułu Mail::SPF.

Po zainstalowaniu wymaganego modułu należy zciągnąć pakiet ze strony www.openspf.org/Software, umieścić go w katalogu /usr/lib/postfix/ np. pod nazwą policyd-spf-perl i dodać następujący wpis do pliku master.cf:

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

Ostatni etap to dodanie do restrykcji frazy:

check_policy_service unix:private/policy

Po przeładowaniu Postfixa nasz MTA powinien już sprawdzać wpisy SPF z DNSu

Categories: Dodatki do kursów Tags: , , ,
  1. Brak komentarzy
  1. Brak jeszcze trackbacków