Hlavní navigace

SpamAssassin: Braňte se proti spamům!

25. 9. 2003
Doba čtení: 4 minuty

Sdílet

Spam je problém. Spam je velký problém. Spam trápí každého z nás bez výjimky. Ale existují způsoby, jak se docela účinně bránit. SpamAssassin je jedním z nich.

Nedávno jsem svou poštu přesunul na vlastní server. Protože jsem předtím využíval antispamových služeb providera, problém „spam“ mě dříve netrápil. Ale po přechodu se v mé poště začalo objevovat čím dál víc nevyžádaných mailů s různými nabídkami (Nechcete zvětšit penis?) a reklamními bannery. Začal jsem zvažovat nasazení nějakého filtru. Původně mě napadlo napsat si vlastní prográmek, ale nakonec jsem na radu známého nasadil SpamAssassina. Můžu zodpovědně říct, že jsem maximálně spokojen a můžu jej jenom doporučit.

Instalace není nijak extrémně náročná a zvládne ji i průměrný uživatel. Rootovská práva nejsou podmínkou, v README je popsán i postup instalace do domovského adresáře. Já jsem zvolil nejjednodušší metodu, a to instalaci z hotového balíčku jako root.

Domovská stránka má adresu www.spamassas­sin.org a hotové balíčky můžete získat třeba na těchto místech: .deba .rpm. Zdrojové zase přímo z domovské stránky.

Proces instalace do domovského adresáře je podrobně popsán v dokumentaci.

Po instalaci do systému (ať už přímo, nebo jen do domovského adresáře) se ještě nic neděje. Je potřeba nejdříve pochopit, jak to celé funguje.

Příchozí pošta se v systému roztřídí a uloží k uživateli, kterému patří. Pak si ji uživatel může vybrat a přečíst. SpamAssassin funguje tak, že jej přidáme na konec celého procesu tak, aby jím příchozí pošta procházela a on pak podle našich pokynů provádí její filtraci. Z toho plyne, že pokud si poštu stahujete z cizího serveru přímo do svého mailového klienta, nebude vám SpamAssassin nic platný. Pokud ale pro přesun pošty používáte fetchmail (který poštu normálně uloží jako nově příchozí), můžete se pustit vesele do instalace.

Samotné rozpoznávání spamů probíhá tak, že SpamAssassin přiděluje, podle jemu známých znaků, každému mailu trestné body. Rozeznává se například: otazník na konci předmětu, mail je psán velkými písmeny, mail obsahuje jenom obrázek, informace o (už zmíněném) zvětšení penisu a dokonce se ověřuje i platnost adresy odesilatele. Nakonec se všechny trestné body sečtou a podle tohoto součtu je rozhodnuto, zda se jedná o spam.

Pokud si přejeme filtrovat poštu automaticky všem uživatelům, použijeme démona spamd. Je ale dobré, aby měl každý uživatel možnost si tuto službu v případě potřeby deaktivovat. Já jsem zvolil opačný postup. Každý uživatel si ji musí nejprve zapnout, aby mu byla pošta filtrována. Samotné zapojení programu do práce je pro uživatele naprosto triviální. Já zde popíšu fungování s ProcMailem – je potřeba otevřít (nebo, pokud jej ještě nemáte, vytvořit) ve vašem domovském adresáři soubor s názvem .procmailrc (i s tečkou na začátku!) a do něj zapsat:

:0fw: spamassassin.lock
| /usr/bin/spamassassin

:0:
* ^X-Spam-Status: Yes
Spamíky

První dva řádky říkají procmailu, aby každý mail podal také našemu filtru (pokud jste instalovali do home, cesta bude samozřejmě jiná). Druhá část potom říká, že pokud se identifikuje spam, má se přesunout do složky nazvané „Spamíky“. Já osobně tam tu druhou část nemám a označené spamy mi zůstávají mezi ostatní poštou a filtruje je až poštovní program. Ale o tom až později.

V tuhle chvíli by už mělo všechno fungovat. Můžete si zkusit poslat nějaký mail. Na první pohled nepoznáte žádný rozdíl. V hlavičce mailu se však objevila nová položka

X-Spam-Status: No

v případě, že nejde o spam, nebo

X-Spam-Status: Yes

v tom druhém. Navíc, pokud se jedná o spam, přidá se do mailu seznam rozeznaných spamových příznaků i s jejich bodovým hodnocením. SpamAssassinu ale můžeme jednoduše nastavit další chování, a to v souboru ~/.spamassassin/u­ser_prefs .

Z těch zajímavých je to například required_hits, což je hranice počtu bodů pro identifikaci spamu (standardně je to pět bodů). Změnou tohoto parametru můžete změnit přísnost hodnocení spamu. Další důležitou volbou je rewrite_subject. Pokud je nastavena na 1, pak je při identifikaci spamu do předmětu přidána informace. Pokud její text nezměníte (nastavením subject_tag nějakýtext), je to *****SPAM***** . Dále lze nastavit tzv. blacklist a whitelist. Do blacklistu můžete zapsat adresy, z nichž je příchozí pošta automaticky pokládána za spam. A naopak, pošta z whitelistu není nikdy označena jako spam.

Pak zbývá poslední krok, a tím je nastavení vašeho oblíbeného emailového klienta. Vytvoříte nový filtr, který bude všechnu poštu obsahující v předmětu řetězec SPAM házet do samostatné složky (není dobré ji mazat, mohlo by se stát, že se vytřídí i něco důležitého, takové riziko je tu vždycky, i když je malé).

comupterworld - webcast prosinec

Toto je samozřejmě jen základní použití. SpamAssassin toho umí daleko víc. Umí posílat nové spamy do centrály, kde jsou zařazeny do databáze (parametr -r), umí se učit nové druhy spamů (pokud používáte například zmíněnou složku Spamíky, můžete mu do ní házet i nerozeznané spamy a jednou za čas spustit sa-learn, on se je naučí) a spoustu dalších užitečných věcí. Ale ty už si sami určitě najdete v manuálových stránkách.

SpamAssassina používám už několik týdnů a za sebe můžu říct, že má úspěšnost 100 %. Zatím neprošel žádný spam, ani žádná bězná pošta nebyla chybně označena. Běžně se však jeho účinnost pohybuje okolo 97 % (alespoň podle toho, co jsem četl), ale i to je určitě dost. I kdyby každý třicátý spam prošel, je to pořád velká pomoc.

Byl pro vás článek přínosný?

Autor článku

Petr Krčmář pracuje jako šéfredaktor serveru Root.cz. Studoval počítače a média, takže je rozpolcen mezi dva obory. Snaží se dělat obojí, jak nejlépe umí.