Greylisting za postfix: postgrey

 Postfix

Na portalu za sistemce postoji članak (http://sistemac.carnet.hr/node/101) gdje je opisan način rada i implementacija greylistinga za sendmail. Ovdje ćemo opisati greylisting za postfix, postgrey.

Postgrey nema posebnu konfiguracijsku datoteku, osim /etc/default/postgrey. U principu, ovdje se nema što ni mijenjati, osim eventualno vremena usporenja za inicijalni primitak maila, --delay. U CARNetovom paketu je ova vrijednost podešena na 58 sekundi:

POSTGREY_OPTS="--delay=58 --inet=127.0.0.1:60000"

Ostatak retka govori da postgrey daemon sluša na lokalnom mrežnom sučelju na portu 60000. Naravno, odgovarajuća vrijednost mora postojati i u postfixu u main.cf (pored ostalih opcija):

smtpd_recipient_restrictions = check_policy_service inet:127.0.0.1:60000 

Da se podsjetimo, greylisting radi na način da za svaku SMTP sesiju (session, sjednicu) zabilježi tri parametra: IP adresu udaljenog računala, envelope adrese pošiljatelja i primatelja, takozvani triplet. Svaki put kad vidi jedinstvenu kombinaciju ova tri parametra, odnosno jedinstveni triplet, greylista odbije mail (uz standardnu poruku "450 <netko@negdje.hr>: Recipient address rejected: Greylisted for XX seconds") i zabilježi triplet u svoju whitelistu.

Ukoliko u navedenom periodu od XX sekundi udaljeni poslužitelj opet bude pokušao isporučiti mail, on će biti odbijen, ali se vrijeme odbijanja (delaya) i dalje smanjuje. Kad to vrijeme istekne, mail će uredno biti zaprimljen.

Razlog ovakvog ponašanja ovog filtera je jednostavan: svaki (ispravno podešeni) mail poslužitelj *mora* pokušavati isporučiti mail nekoliko puta, često i nekoliko desetaka puta u periodu od nekoliko sati do nekoliko dana, u ovisnosti o postavkama udaljenog poslužitelja. Spammeri rabe posebne programe, koji ne poštuju sve konvencije te se ni ne trude protumačiti poruke o greškama koje dobivaju od udaljenih poslužitelja. Njima je jedino bitno isporučiti što više spamova u što kraćem vremenu.

Zbog ove činjenice efikasnost greyliste je čak oko 97%, iako se može očekivati ovo smanjenje čim se spammeri budu prilagodili. Do danas ta prilagodba nije primijećena u znatnijoj mjeri.

Jedan manji problem kod greylistinga je zaustavljanje svih mailova koje sustav susreće po prvi put. Kako bi se ovo ponašanje ublažilo, defaultno je uključena opcija --auto-whitelist-clients=5. Ona jednostavno omogućava da se nakon 5 uspješno propuštenih mailova ta IP adresa stavi u whitelistu i na taj način trajno omogući primanje mailova s te adrese, bez ikakvih usporavanja. Da bi --auto-whitelist-clients opcija proradila, treba zadovoljiti dodatni uvjet da je IP adresa s koje je poslan mail "viđena" u zadnjih --max-age dana (default je 35).

Slična se operacija može napraviti i ručno (što je puno fleksibilnije), što ćemo obraditi u nastavku članka.

Kako ne bi bespotrebno usporavali e-mail promet unutar Hrvatske, paket postfix-cn donosi popis većine MX poslužitelja u CARNetu. Ovi se poslužitelji nalaze u datoteci /etc/postgrey/whitelist_clients(.local). Ovdje možete dopisati MX poslužitelje s kojih vam dolazi znatnija količina pošte. Primjerice:

negdje.nesto.hr 
161.53.xxx.yyy
/.*\.carnet\.hr/

Dakle, moguće je koristiti ime udaljenog računala, njegovu IP adresu ili regularni izraz koji opisuje poslužitelje koje želite propuštati bez zastoja.

U istom direktoriju postoji datoteka whitelist_recipients. Kako samo ime govori, radi se o datoteci gdje možete upisati primatelje na lokalnom računalu za koje se greylista neće primjenjivati. Ovo ne znači da se mail neće dalje provjeravati u SpamAssassinu, te je moguće da mail bude odbijen (jer je spam) iako je prošao greylistu!

U obje datoteke možete upisati nazive poslužitelja, IP adrese, e-mail adrese, regularne izraze i slično. Potpuni popis potražite u man stranicama (man postgrey).

Nakon bilo kakve promjene u ovim (dodatnim) whitelistama, napravite reload postgreya:

# /etc/init.d/postgrey reload

U mail.logu će se moći vidjeti sljedeći redak:

Mar  8 21:42:02 po postgrey[16648]: HUP received: reloading whitelists...

Fizički, baza tripleta (whitelista) se nalazi u /var/lib/postgrey i ne briše se između restarta računala. Ne morate (ni nemojte!) ovdje ništa dirati.

Više informacija imate na URL-u http://projects.puremagic.com/greylisting i naravno, u manualu (man postgrey).

Kuharice: 
Kategorije: 
Vote: 
0
No votes yet

Komentari

Članak ne spominje da postgrey automatski stvara bijelu listu adresa, tj. stječe se dojam kao da su u bijeloj listi samo adrese navedene u /etc/postgrey/whitelist_clients.

No, man page za postgrey spominje sljedeće opcije:

--auto-whitelist-clients=N   whitelist host after first successful delievery
                             N is the minimal count of mails before a client is
                             whitelisted (turned on by default with value 5)
                             specify N=0 to disable.

--max-age=N         delete entries older than N days since the last time
                    that they have been seen (default: 35)

i daje sljedeće objašnjenje:

Auto-whitelisting clients

       With the option --auto-whitelist-clients a client IP address will be
       automatically whitelisted if the following conditions are met:

       o   At least 5 successfull attempts of delivering a mail (after
           greylisting was done). That number can be changed by specifying a
           number after the --auto-whitelist-clients argument. Only one
           attempt per hour counts.

       o   The client was last seen before --max-age days (35 per default).

Vrijednosti tih opcija moglo bi se mijenjati u /etc/default/postgrey

(Ipak, bijela lista spominje se u članku http://sistemac.carnet.hr/node/101.)

-- rpr. /Robert Premuž/

U pravu ste, članak eksplicitno ne spominje whitelistu, ali se ona podrazumijeva. Članak ne pokušava ponovo u potpunosti opisivati način rada greyliste, nego se oslanja na prethodni članak, možda je zato došlo do nejasnoća.

No, cijenim trud i dotjerat ću članak kako bi se izbjegle nedoumice.

--
\ Željko Boroš
\\ Hrvatska akademska i istraživačka mreža - CARNet
\\\ RISS - Računalni i informacijski sustavi i servisi
\\\\ The views of this user are strictly his own.