Cyber Asylum
Greylisting - stop nevyžiadanej pošte
Blog - Open Source
Napísal Jaroslav Petráš   
Sobota, 30 Apríl 2011 03:34
V poslednej dobe sa neúmerne navýšilo množstvo nevyžiadanej pošty v mojich schránkach. Tieto návaly SPAMu som dokázal ignorovať celý týždeň. Potom mi došli nervy a rozhodol som sa situáciu riešiť. Zvolil som greylisting ako formu boja proti nevyžiadanej pošte.

Greylisting

Je zaujímavá a efektívna metóda pre boj s nevyžiadanou poštou. Server na ktorom je nasadená táto metóda neprijíma prichádzajúcu poštu ihneď. Namiesto prijatia správy pošle odpoveď že správu nie je možné momentálne doručiť. Po akú dobu bude server prichádzajúcej pošty odmietať správu doručiť je možné nastaviť. Slušný server odosielatela  chvíľku počká a pokúsi sa správu doručiť znova. Až vtedy bude uznaný za dôveryhodný a správa bude doručená. K dispozícii je aj whitelist. Servery ktoré sú v ňom uvedené nebudú overovaním zdržované. Je možné nastaviť aby sa greylistingom overené servery automaticky pridávali do whitelistu po určitom počte úspešných overení.

Z princípu je teda jasné že nevýhodou greylistingu bude zdržovanie správ. Ja osobne mám nastavenú dobu "odmietania" na 60 sekúnd. To znamená že počas prvých 60 sekúnd správa určite nedorazí. Po uplynutí tejto doby bude ďalší pokus o doručenie uznaný a správa doručená. No neznamená to že správy budú chodiť v tomto prípade s minútovým oneskorením. Kedy sa rozhodne odosielajúci server zopakovať pokus o doručenie je záležitosťou jeho nastavenia (na ktoré má dosah iba jeho správca).

Konfigurácia

Ako MTA používam postfix s virtuálnymi schránkami. A čo sa greylistingu týka, po niekoľkých omyloch a pokusoch som sa rozhodol zakotviť u postgrey. Inštalácia a konfigurácia v Debian GNU/Linux OS je veľmi jednoduchá. Stačí nainštalovať balík postgrey:

# aptitude install postgrey


následne upraviť nasledovné konfiguračné súbory /etc/default/postgrey a /etc/postfix/main.cf

/etc/default/postgrey
# postgrey startup options, created for Debian

# you may want to set
#   --delay=N   how long to greylist, seconds (default: 300)
#   --max-age=N delete old entries after N days (default: 35)
# see also the postgrey(8) manpage

POSTGREY_OPTS="--inet=10023 --lookup-by-host --delay=60 --max-age=90 --auto-whitelist-clients=3 --retry-window=4"

# the --greylist-text commandline argument can not be easily passed through
# POSTGREY_OPTS when it contains spaces.  So, insert your text here:
POSTGREY_TEXT="Greylisted."
Podľa konfigurácie vyššie bude postgrey bežať na porte 10023 a do jeho databázy sa budú ukladať záznamy s celými IP adresami po dobu 90 dní. Po troch úspešných overeniach bude odosielateľ pridaný na whitelist. Každá nová správa bude odmietaná po dobu 60 sekúnd a ako príčina bude uvedný text "Greylisted."


úryvok z /etc/postfix/main.cf
smtpd_recipient_restrictions =
        permit_mynetworks,
        permit_sasl_authenticated,
        reject_non_fqdn_hostname,
        reject_non_fqdn_sender,
        reject_non_fqdn_recipient,
        reject_unauth_destination,
        reject_unauth_pipelining,
        reject_invalid_hostname,
        check_client_access hash:/etc/postfix/checks/client,
        check_sender_access hash:/etc/postfix/checks/sender,
        check_recipient_access hash:/etc/postfix/checks/recipient,
        check_helo_access hash:/etc/postfix/checks/helo,
        check_policy_service inet:127.0.0.1:10023,
        permit
Overenie postgreyom je uvedené ako predposledné. Správne poradie položiek u smtpd_recipient_restrictions je dôležité.
Treba si dávať pozor aj na stabilitu služby (programu) ktorá je pre greylisting (alebo iné overovanie) použitá. Pokiaľ z nejakej príčiny zlyhá (seg. fault, bug, atď..), správa bude zamietnutá s kódom 451 a textom "Server configuration problem".
Následne už stačí iba reštartovať postfix a postgrey aby sa prejavili nové nastavenia. Ako postfix a postgrey pracujú si môžeme pozrieť pomocou tailf /var/log/mail.info (hlavne si je dobré overiť správnosť fungovania).

Záver

Od nasadenia postgrey (cca dnes o 01:00) sa mi do schránky nepredral jediný SPAM. Za zmienku stojí aj to že postgrey prichádza s už predvyplneným whitelistom kde sa nachádzajú užívateľmi overené adresy (napr. gmail, ebay, yahoo, atď..).
Posledná úprava Sobota, 30 Apríl 2011 13:56
 
Services - IT Outsourcing
 

Jaroslav Petráš


asfethan

Narodený v roku 1988

moje profesie
 - programátor
 - GNU/Linux SysAdmin
 - Web developer
 - správca IT

moje záľuby
 - korčulovanie
 - squash
 - spoločenské akcie
 - hudba
 - autá
 - práca s IT

e-mail
   asfethan@cyberasylum.eu

jabber
   asfethan@cyberasylum.eu

Moja plocha


desktop screenshot

 - Debian GNU/Linux OS
 - XMonad
 - GNOME 3
 - gvim
 - xterm
 - dzen2
 - stalonetray
 - sysinfo-dzen2-php

Teamspeak 3 server


ts.niekde.sk
ts.cyberasylum.eu
  • free to use
  • for new permanent channels, informations or abuse reports please use e-mail address below

e-mail
   ts@cyberasylum.eu