Sagator (1)

10. 1. 2005
Doba čtení: 4 minuty

Sdílet

Sagator je slovenský GNU/GPL systém, který vytváří rozhraní mezi MTA a filtry obsahu, mezi něž patří zejména různé antiviry a antispamy. Protože se mi líbí o poznání více než konkurence (AMaViS), rozhodl jsem se ho nasadit na náš poštovní server a o zkušenosti se následně podělit.

Nejdříve budete mít tu čest se se Sagatorem zběžně seznámit, příště prozkoumáme některé jeho hlouběji umístěné vnitřnosti (především jisté na první pohled lehce tajemné „skenery“) a nakonec možná přijde i drobné howto..

Architektura

V běžném provozu Sagator sestává z několika démonů, kteří komunikují mezi sebou a s MTA. V současné době je vše testováno především na systémech Postfix a Sendmail. Sagator byl ale odpočátku navrhován jako velice ohebný – díky tomu ho můžete navěsit na prakticky jakýkoliv MTA. Je také silně modulární – můžete ho nakonfigurovat tak, aby poštu proháněl vámi zvolenou sestavou nástrojů na kontrolu obsahu. Jednotlivé testy můžete řetězit do procesních stromů, které se mohou všemožně větvit na základě dílčích výsledků.

Autor dbal také na bezpečnost. Sagator je přímo stvořený pro vězeňské prostředí – velmi rád běhá v kleci. Chroot prostředí nemusíte vytvářet ručně – zajistí to přiložený skript. Navíc se obejde bez práv roota.

K dispozici jsou balíčky pro Fedora Core (1, 2, 3), Debian (Woody) a Slackware (10).

Sagator je napsaný v Pythonu, což je myslím docela velká výhoda – Python je moderní, objektový, snadno se učí a přímo nutí k psaní přehledného kódu. Sagator také závisí na minimu balíčků – v zásadě si vystačí se standardní instalací Pythonu a několika základními systémovými nástroji, které už beztak máte nainstalovány. Abych nezapomněl – samozřejmě budete potřebovat ještě nějaký ten MTA a vlastní filtry obsahu.

Podporované antiviry…:

  • ClamAV – Clam AntiVirus
  • NOD32 (podporovány jsou verze 1 i 2)
  • AVG LS – AVG Linux Email Server Edition
  • sophie/trophie (SAVI – Sophos Anti-Virus Interface, libvsapi – TrendMicro anti virus)
  • ICAP protocol (SAVSE – Symantec AntiVirus Scan Engine)
  • BitDefender
  • Kaspersky antivirus
  • Universal dazuko scanner (dazuko je rozhraní, skrze které můžete použít několik dalších antivirů)
  • a jiné (zejména poslední beta přidává několik dalších)

… a antispamy:

  • SpamAssassin
  • Bogofilter
  • Quick Spam Filter
  • momentálně se pracuje na podpoře dspam filtrů

Interní skenery

Jako „skener“ je v terminologii Sagatoru označován jakýkoliv kód, který lze zařadit do procesního stromu, jímž zpráva prochází. Kromě skenerů pro antispamy a antiviry můžete využít mnohé další, které zprávy nějak kontrolují či předpracovávají. Jejichž funkce je víceméně zřejmá z názvu: const, exec_any, smtp_comm, regexp_scan, string_scan, max_file_size, file2stream, stream2file, stream2mbox, match_all, alternatives, match_any, nothing, recover, parsemail, mimeparse, mime_ext, file_type, decompress, store, restore. Trochu více si o nich povíme příště…

Rozsudek jménem Sagatoru

Podle virovosti, spamovitosti či nějakého jiného kritéria můžete zprávám naordinovat vhodný osud. Paleta možností je dostatečně široká. Neškodné zprávy necháte asi v klidu projít, pouze nastavíte do hlaviček, že je vše v pořádku (skener modify_header, add_header). Zprávy s přílohami spustitelnými v prostředí Windows a identifikované viry asi přesunete do karantény (quarantine), odkud je jednoduchým příkazem můžete vrátit do příchozí fronty MTA či přímo do uživatelského mailboxu, pokud to bude v budoucnu třeba. Téměř jisté spamy možná smažete (drop), pravděpodobné spamy nejspíše pouze označíte do hlaviček (modify_header, add_header) a předmětu (modify_subject) a necháte projít (deliver).

Pokud zprávu z nějakého důvodu smažete či přesunete do karantény, můžete dát pokyn MTA, aby poslal klasické bounce oznámení odesílateli, jako že problém je v tom a v onom, a ať se příště polepší, či nechat Sagator odeslat vhodné oznámení příjemci (report_recipi­ents) – že zpráva byla zlikvidována, a pokud se mu to nezdá, ať se ozve, nebo správci (skener report). Výchozí už tak docela přehlednou šablonu zprávy je možné změnit či přizpůsobit.

Statistiky

Sagator volitelně spouští speciálního logovacího démona, který předžvýkává informace o aktuálním dění pro účely statistik. Pro účely logování můžete využít některý z logovacích „skenerů“ – log, log_mysql, log_pgsql, log_sqlite, stat. Pokud logování spustíte, budete moci snadno nastavit například MRTG (flexibilní nástroj pro tvorbu grafů o provozu lecjakého typu, často se používá třeba pro statistiky síťového provozu), aby zobrazoval detailní statistiky o došlých, prošlých, zlikvidovaných či jiných zprávách.

Skenování na rozkaz

Viry se dnes šíří velice rychle – často během několika hodin zaplaví tisíce poštovních serverů. Může se tak snadno stát, že vámi používaný antivirus nerozpozná takový virus v době, kdy k vám míří, ovšem po aktualizaci by si s ním již poradil. Například v takové situaci vám přijde vhod řádkový příkaz sgscan, kterým můžete aplikovat sadu pravidel Sagatoru na vybrané mailboxy/maildiry plné zpráv.

Podpora

Na projektové stránce sagatoru na sourceforge je k dispozici anglický mailinglist sagator-users(at)lists­.sourceforge.net. Adresu archivu a formuláře pro přihlášení najdete v odkazech. Komunita kolem Sagatoru není například ve srovnání s konkurenčním AMaViSem zatím příliš rozsáhlá. Zakladatel projektu a hlavní autor Ján ONDREJ (SAL) ale bere uživatele docela vážně. Při nasazování Sagatoru na našem debianím serveru jsem narazil na několik drobných potíží se závislostmi, které SAL ještě tentýž den vyřešil a zveřejnil v podobně opravených balíčků. Kromě toho také na moji prosbu a návrh velmi rychle doplnil několik funkcí, z nichž některé jsou ve svém oboru docela výjimečné, konkrétně možnost předepsat zprávám různý osud podle různých úrovní spam hits a zaznamenání spam hits v podobě hvězdiček či číselného indexu do předmětu – např. „[SPAM *****] Fr3e p0rn“ nebo „[SPAM 5,7] Fr3e p0rn“.

Odkazy

Sagator – projektová stránka

Sagator – archiv mailing listu

Sagator – formulář pro přihlášení do mailing listu

bitcoin_skoleni

seriál Stavíme mailový server

seriál MRTG – grafické prehľady

Seriál: Sagator

Autor článku