Greylisting aneb kladivo na spam

Petr Krčmář 3. 8. 2006

Spamu je dnes všude plno a neznám nikoho, komu by nevadil. Více či méně úspěšných řešení je k dispozici mnoho. Jedno staré přísloví říká, že na hrubý pytel má přijít hrubá záplata. Podíváme se společně na jednu velmi kontroverzní, ale velmi účinnou metodu obrany proti spamu zvanou greylisting.

Podle nedávné zprávy, která se objevila na BBC.co.uk, tvoří přes 95 procent elektronické pošty spam. Taková situace si samozřejmě žádá nějaká opatření a snad žádný admin už dnes neprovozuje mail server, na kterém by nebyla alespoň základní ochrana proti spamu.

Těch samozřejmě existuje celá řada a kromě účinnosti je můžeme řadit také podle jejich kontroverznosti. Geylisting, kterým se budeme zabývat patří podle obou hledisek do horních příček. Je tedy sice kontroverzní, ale zároveň poměrně jednoduchý a především pekelně účinný.

Princip greylistingu

Metoda greylisting vychází z předpokladu, že spammeři na rozdíl od legitimních uživatelů nepoužívají k odesílání pošty servery dodržující RFC. Spammer nemá čas, chuť ani důvod řešit nějaké nefunkční adresy. Jednoduše vezme ohromný seznam, spustí robota a ten maximální možnou rychlostí chrlí ven zadanou poštu.

Obvykle mají odeslané maily falešnou hlavičku odesílatele a robot naprosto ignoruje jakékoliv chyby. U spamu jde především o kvantitu, takže když se dvacet třicet procent z několika milionů mailů nedoručí, nikoho to netrápí.

Toto chování je typické pro spam, ale u běžné pošty se s ním nesetkáme. Z toho právě vychází greylisting. Princip je poměrně jednoduchý: Pokud dorazí mail z úplně nové adresy, mail server jej přijme a zapamatuje si tří údaje:

  • IP adresu odesílatele
  • poštovní adresu odesílatele
  • poštovní adresu příjemce

Pak obvykle pošle odesílateli odpověď

450 Requested mail action not taken: mailbox unavailable

a mail jednoduše zahodí. Odeslaná odpověď 450 znamená dočasnou nedostupnost schránky. Sama o sobě neznamená žádnou chybu, ale jen to, že je SMTP server nedostupný. Pro legitimního odesílatele to znamená, že se má pokusit mail doručit později, kdy už to „možná bude fungovat”.

Pokud se jedná o regulérní server, který se řídí RFC 2821, pokusí se později o nové spojení. Po určité době tedy přijde našemu serveru tentýž mail ještě jednou. Ten jej už podle informací, které si uložil, pozná a standardně doručí. Do databáze je pak zapsáno, že byl tento mail ověřen a může se z něj už přijímat pošta běžným způsobem.

Výhody

Výhodou je legitimní přístup k odesílatelům včetně dodržení všech standardů. Greylisting neohrozí komunikaci s běžnými servery, pokud jejich konfigurace neobsahuje nějakou hrubou chybu. Obecně ale problémy nenastávají.

Další velkou výhodou je nízká náročnost greylistingu na systémové zdroje. Některé techniky jako heuristická analýza nebo třeba statistická analýza znamenají pro server poměrně velkou zátěž a v případě, že je příchozí pošty hodně, může to znamenat problém. V případě greylistingu stačí jen odeslat správnou odpověď na příchozí maily.

Z toho samozřejmě plyne také velmi snadná konfigurace a bezproblémové použití této metody. Nemusíte složitě konfigurovat filtry ani server nic učit.

Nevýhody

Hlavní nevýhodou pro uživatele je zpoždění legitimní pošty z nových adres. To se může pohybovat v rozmezí několika desítek minut až hodin. Tuto nevýhodu je potřeba zvážit v případě, že je pro nás důležité okamžité zpracování veškeré pošty.

Problémy mohou také nastat v případě špatně nastaveného MTA, který může považovat chybu 450 za chybu a nebude opakovat pokus o odeslání. Také může dojít k velkému zpoždění mezi první a druhou zprávou a příjemce už může mezi tím záznam z databáze odstranit. Poslední technický zádrhel může nastat ve chvíli, kdy se o znovudoručení pokusí server s jinou IP adresou. Hypoteticky by tato situace mohla nastat v případě nějaké rozsáhlé mailserverové far­my.

Poslední nevýhodou, která mě napadá, je poměrně jednoduchá možnost „prostřelení” tohoto filtru tak, že jednou provedeme opětovné doručení a filtr se na nás už nebude vztahovat. Bude k tomu stačit použít běžný SMTP server. To je ovšem možno řešit dalším doplňujícím spam filtrem nebo třeba blacklistem.

Praktické nasazení

Existuje řada implementací greylistingu, které mohou fungovat jako samostatné SMTP proxy (třeba Spey) nebo jako moduly pro běžné SMTP servery. My si ukážeme řešení s pomocí policy serveru pro Postfix s názvem Postgrey.

Postfix umí od verze 2.1 používat takzvané policy servery, kterým může přenechat filtraci zpráv. Postgrey patří mezi ně a je kompletně napsán v Perlu. Pro jeho instalaci budete potřebovat

  • Perl (verze 5.6.0 a vyšší)
  • Net::Server
  • IO::Multiplex
  • BerkeleyDB (modul pro Perl)
  • Berkeley DB (knihovna verze 4.1 a vyšší)

Samotný balíček s Postgrey získáte z domovských stránek projektu nebo jej najdete ve své distribuci. Má jen 30 KB a obsahuje samotný Perlovský skript, příklad whitelistu a nějakou tu dokumentaci.

Instalace se skládá z několika poměrně jednoduchých kroků:

  1. Vytvořte uživatele postgrey.
  2. Vytvořte adresář, kam si bude program ukládat databázi mailů. Standardně je to  /var/spool/postfix/postgrey
  3. Zapište Postgrey do startovacích skriptů, aby nastartoval jako démon:  postgrey --inet=10023 -d
  4. Do /etc/main.cf přidejte konfiguraci:
    smtpd_recipient_restrictions =
        permit_mynetworks
        reject_unauth_destination
        check_policy_service inet:127.0.0.1:10023
  5. Soubory postgrey_whitelist_clients a postgrey_white­list_recipien­ts zkopírujte do /etc/postfix a upravte si je jak potřebujete. Adresy v  postgrey_whi­telist_recipi­ents nejsou podrobovány greylistingu.

To je vše, Postfix by měl nyní umět greylisting. Protože se pro komunikaci používá síťové rozhraní, může Postgrey běžet i na jiném stroji než Postfix.

Zkušenosti

Praktická zkušenost je velmi dobrá. Zpoždění některých mailů je sice větší (řádově desítky minut), ale pro běžnou práci to nevadí. Účinnost tohoto filtru je velmi dobrá, uvádí se, že je někde mezi 80 a 95 procenty. Z vlastní zkušenosti můžu potvrdit, že z 80 spamů, které dříve denně přicházely, se jich po nasazení greylistingu do pošty dostane asi 6.

Greylisting je velmi účinný způsob, jak se zbavit dotěrného spamu. Přestože někteří pesimisté prorokují, že se časem spammeři naučí jej obcházet, zatím se tak neděje. Možná je to způsobeno nevelkým rozšířením greylistingu.

Anketa

Používáte greylisting?

Našli jste v článku chybu?
Měšec.cz: Do ostravské MHD bez jízdenky. Stačí vaše karta

Do ostravské MHD bez jízdenky. Stačí vaše karta

Vitalia.cz: Malovaná těhotenská bříška

Malovaná těhotenská bříška

Měšec.cz: Ceny PHM v Evropě. Finty na úspory

Ceny PHM v Evropě. Finty na úspory

120na80.cz: Tipy pro odvodnění organismu

Tipy pro odvodnění organismu

Vitalia.cz: Pepsi Cola mění sirup za cukr

Pepsi Cola mění sirup za cukr

Lupa.cz: IT scéna po brexitu: přijde exodus vývojářů?

IT scéna po brexitu: přijde exodus vývojářů?

Podnikatel.cz: Přiznal prodej padělků. Pokuta ho nemine

Přiznal prodej padělků. Pokuta ho nemine

Lupa.cz: Vodafone umí volání přes Wi-Fi. Z ciziny jako v ČR

Vodafone umí volání přes Wi-Fi. Z ciziny jako v ČR

Vitalia.cz: Patří maso do dětského jídelníčku?

Patří maso do dětského jídelníčku?

Podnikatel.cz: Polská vejce na českém pultu Albertu

Polská vejce na českém pultu Albertu

DigiZone.cz: Kauza technik: oficiální vyjádření Novy

Kauza technik: oficiální vyjádření Novy

Lupa.cz: eIDAS: Nepřehnali jsme to s výjimkami?

eIDAS: Nepřehnali jsme to s výjimkami?

Měšec.cz: Udali ho na nelegální software a přišla Policie

Udali ho na nelegální software a přišla Policie

Měšec.cz: TEST: Vyzkoušeli jsme pražské taxikáře

TEST: Vyzkoušeli jsme pražské taxikáře

DigiZone.cz: Sázka na e-sporty stanici Prima vychází

Sázka na e-sporty stanici Prima vychází

Podnikatel.cz: Tahle praktika stála šmejdy přes milion

Tahle praktika stála šmejdy přes milion

Podnikatel.cz: Za červen to zabalila více jak stovka firem

Za červen to zabalila více jak stovka firem

Vitalia.cz: Sobotní masakr žrádla, chlastu a zábavy

Sobotní masakr žrádla, chlastu a zábavy

Lupa.cz: Největší torrentový web KickassTorrents padl

Největší torrentový web KickassTorrents padl

Měšec.cz: Platíme NFC mobilem. Konečně to funguje!

Platíme NFC mobilem. Konečně to funguje!