-
Greylisting, czyli recepta na mniej spamu
Greylisting jest jedną z najnowszych i najbardziej kontrowersyjnych metod walki ze spamem. Osobiście jestem nastawiony do niej dosyć sceptycznie. Polega ona na odrzucaniu przez nasz serwer wiadomości pochodzącej z serwera od którego dostajemy ją po raz pierwszy (w danym okresie czasu). Serwer nadawcy powinien ponowić próbę dostarczenia wiadomości, a wtedy zostanie ona przyjęta przez odbiorcę. Niestety wiele maszyn, nawet tych „dobrych” miewa problemy z dostarczeniem takowych wiadomości. Wszystko zależy oczywiście od poprawności konfiguracji. Trzeba mieć jednak na względzie opóżnienie w dostarczeniu wiadomości, nawet do kilkudziesięciu minut, co nie jest przyjemne. Opiszę instalację tego narzędzia antyspamowego na podstawie serwera Postfix i Sendmail, pracujących pod kontrolą systemu CentOS. W pierwszym z nich pakiet nosi nazwę postgrey i jest dostępny w repozytorium RPMforge.
yum install postgrey
vim /etc/postfix/main.cf
dodajemy następujący wpis:
„smtpd_recipient_restrictions = check_policy_service unix:postgrey/socket”
a następnie wykonujemy następujące polecenia w konsoli:
/etc/init.d/postgrey start
/etc/init.d/postfix restart
Tyle wystarczy,aby greylisting zaczął działać. Standardowo będzie on odrzucał daną wiadomość przez 300 sekund. Można to oczywiście zmienić. Aby to zrobić należy uruchomić postgrey-a z parametrem „–delay=n” , gdzie n=liczbie sekund. Osobiście polecam modyfikację skryptu startowego znajdującego się standardowo w katalogu „/etc/rc.d/init.d/”. Zmodyfikowana część kodu powinna wyglądać następująco:
start() {
echo -n $”Starting $prog: „
daemon $postgrey -d –delay=60 $OPTIONS
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog
}
Oczywiście zamiast „60” możemy dać dowolną liczbę sekund. Pamiętajmy jednak, żeby nie była ona zbyt długa, bo może spowodować duże opóźnienia, albo wręcz niedostarczenie wiadomości. Innym bardzo popularnym serwerem pocztowym jest Sendmail. Aby zastosować w nim opisywaną metodę walki ze spamem musimy zainstalowąć pakiet „milter-greylist”
yum install milter-greylist
Następnie edytujemy plik „/etc/mail/sendmail.mc”
vim /etc/mail/sendmail.mc
dopisujemy:
INPUT_MAIL_FILTER(`greylist’,`S=local:/var/milter-greylist/milter-greylist.sock’)dnl
define(`confMILTER_MACROS_CONNECT’, `j, {if_addr}’)dnl
define(`confMILTER_MACROS_HELO’, `{verify}, {cert_subject}’)dnl
define(`confMILTER_MACROS_ENVFROM’, `i, {auth_authen}’)dnl
define(`confMILTER_MACROS_ENVRCPT’, `{greylist}’)dnl
następnie:
make /etc/mail
/etc/init.d/sendmail restart
Standardowo wszystkie wiadomości są dostarczane bez żadnych opóźnień. Musimy wyedytować plik „/etc/mail/greylist.conf”
vim /etc/mail/greylist.conf
zakomentowujemy linijkę z „acl whitelist default” i dopisujemy własną „acl greylist default delay 1m”, gdzie 1m oznacza opóźnienie 1 minutę. Przydatną opcją jest ukrywanie przed serwerem pocztowym nadawcy czasu opóźnienia. Standrdowo jest ona włączona i żeby ją wyłączyć należy zakomentować linijkę mającą w swojej treści słowo „quiet”. Następnie restartujemy milter-greylist-a poleceniem:
/etc/init.d/milter-greylist restart
Mam nadzieję, ·że mój krótki tutorial przybliży Wam działanie greylisting-u. Miłej zabawy i powodzenia 🙂
Dobry patent, też to zastosowałem i od razu widać spadek ilości spamu.