Poštovní server na OS Linux: Antivirus a antispam

27. 12. 2013

Sdílet

 Autor: © Piumadaquila - Fotolia.com
V minulém dílu jsme se začali zabývat problematikou bezpečnosti poštovního serveru. Nyní budeme pokračovat na shodné téma s využitím externích nástrojů mimo samotný sendmail.

Abychom si uvědomili možnosti ovládání našeho pošťáka vadným kódem, ukážeme si v následujícím příkladu, jak snadné je poslat přes server poštovní zprávu s libovolným obsahem a odesílatelem. Pokud k tomuto serveru máte přístup.

K síťovým serverům lze obecně přistupovat pomocí terminálové emulace, kterou v našem případě reprezentuje jednoduchý program telnet. Pokud tedy v příkazovém řádku vašeho linuxu napíšete

telnet localhost 25

připojíte se přímo do prostředí poštovního serveru, který právě na portu 25 protokolu IP poslouchá. Vlastní odeslání zprávy pak učiníte posloupností následujících příkazů serveru. Nejprve musíte pozdravit.

EHLO localhost
MAIL From: kdokoliv@odkudkoliv.cz
RCPT To: povolny@fvtm.ujep.cz

Následně definujete odesílatele a příjemce. S tím, že odesílatelem může být kdokoliv, koho vám povolí váš server. Zbývá dodat obsah samotné zprávy, což zajistí příkaz DATA, text samotné zprávy a jeho ukončení prázdným řádkem s tečkou, např.:

DATA
Nyni napisete text zpravy.
.

Zpráva je úspěšně odeslána a vy se můžete odhlásit z prostředí poštovního serveru příkazem QUIT. Věřte, že bude doručena příjemci přesně tak, jak jste ji na serveru zadali.

Spamassassin

Jak je vidět z předchozího příkladu, nelze reálně určit skutečného původce problémových zpráv (podobně jako tomu bylo u odesílání pošty), a proto je nutné kontrolovat všechny příchozí zprávy a soubor access použít jen v případě, kdy jednoznačně identifikujeme zdroj nebo síť, ze které nákaza pochází.

Sendmail není modulárním serverem jako třeba postfix, díky procmailu lze ale vložit do procesu doručení zprávy libovolný program, kterým je i známý spamassassin.

Spamassassin není ničím jiným než filtrem, jenž hodnotí procházející poštovní zprávy, které v případě podezření buď smaže, nebo doručí modifikované do schránky (tak abyste je rozeznali a mohli u klienta odfiltrovat do vyhrazené složky). Jeho konfigurace není složitá.

Prvním krokem je instalace. Tu v distribuci Fedora uděláte jednoduše příkazem

yum install spamassassin

Vzhledem k obecné rozšířenosti tohoto balíčku jej distribuce bez problémů nainstaluje v aktuální verzi včetně všech potřebných doplňkových balíčků, jako je např. perl-CPAN.

Nastavení programu se uskutečňuje buď globálně v souboru /etc/mail/spamassassin/local.cf, nebo lokálně u každého uživatele v souboru user_prefs.cf umístěného v domovské složce (konkrétně ve složce /home/jmeno/.spamassassin/). Mezi nejdůležitější direktivy patří tyto:

required_hits 5
trusted_networks 192.168.1.
rewrite_header Subject [SPAM]
whitelist_from *@firma.cz

První definuje hranici bodového skóre, od které je zpráva považována za SPAM. Pomocí druhého lze z kontroly vyloučit libovolnou podsíť. Třetí direktiva určuje změnu předmětu zprávy, pokud je vyhodnocena jako SPAM. Pomocí zde definovaného řetězce lze zprávu následně filtrovat u klienta. Na posledním řádku je uvedena výjimka, která říká spamassassinu, že e-maily z firemní domény nikdy nebudou označeny jako SPAM.

Filtr je nakonfigurovaný a zbývá jej propojit s vlastním poštovním serverem. To uděláme v souboru /etc/procmailrc (konfigurační soubor procmailu) přidáním tohoto řádku,

INCLUDERC=/etc/mail/spamassassin/spamassassin-spamc.rc

který odkazuje na RC soubor spamassassinu vytvořený po jeho instalaci.  Zbývá restartovat jak poštovní server, tak i samotný filtr příkazy

service spamassassin restart

service sendmail restart

Kontrolu funkčnosti provedeme v souboru /var/log/maillog, kde bychom měli u každé nové příchozí zprávy vidět i její detekci démonem spamd, vlastní hodnocení a následné doručení do schránky uživatele.

ClamAV

S viry pro Linux to zatím není až tak horké, v poštovních zprávách se však vyskytují a mohou být doručovány i na PC s náchylnějšími operačními systémy. Proto je nutné filtrovat příchozí zprávy solidním antivirovým programem. Zatímco se spamassassin stará o nevyžádanou poštu, ClamAV je volně dostupným filtrem prověřujícím zprávy na standardní viry.

Opět jej najdeme ve standardním repozitáři distribuce Fedora, instalaci tak provedete snadno příkazem yum.

yum install clamav
yum install clamav-milter
yum install clamav-update

Tyto příkazy zajistí i instalaci všech potřebných doprovodných knihoven. Antispamovou kontrolu jsme dělali v sendmailu pomocí programu procmail, který zpracovává poštu těsně před jejím doručením do schránky. ClamAV implementujeme do procesu zpracování pošty pomocí takzvaného milteru, což není nic jiného než filtr prováděný v průběhu doručování pošty podle zadaných parametrů (spamassassin lze implementovat také pomocí milteru).

Konfiguraci antiviru děláme editací souboru /etc/clamav.conf, nicméně zde není třeba žádných změn. Samotný milter lze pak nastavit v souboru /etc/clam.d/milter.conf. Tady už jsou možnosti větší, doporučujeme prostudovat příslušnou dokumentaci. V tomto souboru je však nezbytně nutné zakomentovat řádek example (tj. vložit před něj znak #), jinak jej milter bude při spuštění ignorovat.

Implementaci milteru do sendmailu učiníme přidáním dvou řádku v souboru /etc/mail/sendmail.mc.

INPUT_MAIL_FILTER(`clmilter', `S=local:/var/run/clamav-milter/clamav.sock, F=,T=S:4m;R:4m')dnl
define(`confINPUT_MAIL_FILTERS', `clmilter')dnl

V prvním řádku definujeme parametry filtru. Ve druhém potom nastavíme, aby byl filtr aplikován pro příchozí zprávy serveru.

Posledním krokem je restart sendmailu, tak aby aplikoval novou konfiguraci, a zároveň start samotného milteru. To uděláme příkazy

service sendmail restart
service clamav-milter start

Funkčnost lze nejlépe ověřit v souboru /var/log/maillog, kde bychom měli vidět vše podstatné, co se se zprávou na serveru děje. Automatický update antiviru je zajištěn pomocí démonu cron.

V příštím dílu budeme pokračovat pokročilejšími možnostmi nastavení sendmailu pro více firemních domén.

bitcoin školení listopad 24

Autor je vedoucím informačního centra Univerzity J. E. Purkyně