Jak działa mechanizm "greylisting"?
- Kamil Folga,
- 27.05.2008, godz. 12:13
Istnieje wiele metod radzenia sobie z niechcianą korespondencją. Bardzo popularne metody to wykorzystanie filtra antyspamowego (przykładowo SpamAssassin) lub mechanizmów wbudowanych w oprogramowanie serwera poczty. Omawiane metody pochłaniają bardzo dużo zasobów sprzętowych, co nie jest bez znaczenia przy ogromnych ilościach przychodzących wiadomości. Istnieje jednak bardzo prosty i skuteczny mechanizm walki z niechcianą pocztą, określany nazwą "greylisting".
Jak to działa? Serwer wykorzystujący greylisting zapamiętuje dla przychodzącej wiadomości adres IP łączącego się serwera, dane nadawcy oraz odbiorcy przesyłki. Przedstawione informacje są następnie sprawdzane w wewnętrznej bazie danych serwera. Jeżeli taka informacja już istnieje w bazie danych, wiadomość jest dostarczana do lokalnego odbiorcy. W przeciwnym przypadku, przesyłka jest odrzucana (na określony okres czasu), a serwer nadawcy zostaje poinformowany o niedostępności i konieczności ponownego wysłania przesyłki w późniejszym terminie. Jeżeli serwer nadawcy jest zgodny z specyfikacją RFC, powinien ponownie wysłać przesyłkę za ustalony okres czasu. Cały proces odbywa się na poziomie protokołu SMTP i jest przeźroczysty dla użytkownika końcowego. Greylisting jest tak bardzo efektywny, ponieważ większość źródeł niechcianej poczty, nie próbuje ponownie wysyłać przesyłek, więc w rzeczywistości duża ich liczba nigdy nie trafia do odbiorców.
Korzyścią z wykorzystania omawianego mechanizmu jest bardzo małe zapotrzebowanie na zasoby systemu. Każda z przesyłek odrzucona przez greylisting chroni zasoby, które musiałyby zostać zaangażowane do skanowania antywirusowego oraz antyspamowego. Oznacza to, że możemy osiągnąć bardzo dobre efekty filtracji poczty, nawet na starszych i mniej wydajnych serwerach. Wadą mechanizmu jest z pewnością więcej problemów z opóźnieniami w dostarczaniu przesyłek oraz niedoręczonymi przesyłkami.
Istnieje kilka implementacji mechanizmu greylisting, a współpracować z rozwiązaniem może praktycznie każde oprogramowanie serwera poczty. W naszym przykładzie pokażemy, w jaki sposób zaimplementować mechanizm na serwerze opartym o dystrybucję Debian Etch oraz oprogramowanie serwera poczty Postfix.
Wykorzystywaną do naszych celów implementacją greylisting będzie postgrey. Oprogramowanie jest darmowe i współpracuje z serwerem poczty Postfix. Rozpoczynamy od automatycznej instalacji oprogramowania postgrey:
Mail#apt-get install postgrey
Domyślny czas opóźnienia dla serwera nadawcy jest ustawiony na 5 minut. Jeżeli zamierzamy zmienić ten parametr, należy edytować plik /etc/default/postgrey. Usługa postgrey powinna zostać uruchomiona na porcie 60000.
Teraz czas na zmiany w konfiguracji serwera poczty Postfix. Edytujemy plik /etc/postfix/main.cf. Do konfiguracji smtpd_recipient_restrictions dodajemy linię check_policy_service inet:127.0.0.1:60000. Wpis w pliku main.cf powinien wyglądać następująco:
smtpd_recipient_restrictions =
permit_mynetworks
permit_sasl_authenticated
reject_unauth_destination
check_policy_service inet:127.0.0.1:60000
Na koniec pozostaje nam restart serwerów:
Mail#/etc/init.d/postgrey restart
Mail#/etc/init.d/postfix reload
Konfiguracja mechanizmu nie jest skomplikowana, a efekty można szybko zauważyć po zwiększonej skuteczności filtracji przesyłek.