30.8.12
Správa linuxového serveru: Antivirus a antispam - Linux E X P R E S
Home » Články » Praxe » Správa linuxového serveru » Správa linuxového serveru: Antivirus a antispam Předchozí kapitola
Zpět na obsah
Následující kapitola
Správa linuxového serveru: Antivirus a antispam Na většině linuxových poštovních serverů běží dva základní nástroje pro boj se spamem, a sice SpamAssassin v roli antispamu a ClamAV v roli antivirového řešení. V tomto díle se dozvíte, jak je nainstalovat a nastavit i na vašem poštovním serveru. Pondělí, 25. červen 2012 | Autor Michal Dočekal | známka 2,25
Mnohé předešlé díly se věnovaly řešením, které by měly pomoci omezit množství spamu, které váš server propustí. Za jedno z nejúčinnějších řešení je považován greylisting, ale není to jediná technika, která může pomoci. Dosud probírané techniky mají však jeden společný faktor – omezují spam na základě způsobu odesílání, tzn. kdo email poslal, jak se jeho SMTP server choval a jak byl nastaven. To úspěšně odfiltruje řadu automatizovaných nástrojů pro posílání spamu (a bohužel i některé špatně nastavené poštovní servery), ale spam pocházející z korektně pracujících poštovních serverů, které (zatím) nejsou na žádných blacklistech, uvedené metody nezadrží. Zde je třeba nasadit poslední obrannou linii, kontrolu obsahu.
Amavis, SpamAssassin, ClamAV Kontrolu obsahu zajišťuje SpamAssassin, nejrozšířenější antispamové řešení (nejen) na linuxových serverech. Je napsaný v Perlu a pracuje tak, že na základě sady pravidel prověřuje průchozí poštu. V případě, že konkrétnímu pravidlu email vyhoví, upraví se jeho celkové skóre o počet bodů, který náleží danému pravidlu. Kupříkladu, obsahujeli tělo emailu slovo „viagra“, zvýší se skóre o 2,7 bodu. Některá pravidla mohou emailu skóre i snížit. Výsledné skóre se pak porovná s prahovou hodnotou (výchozí je 5,0 bodů) a v případě, že email hodnotu dosáhne nebo překročí, je označen jako spam. Skóre u jednotlivých pravidel nejsou navrhována náhodně, ale měla by při prahové hodnotě 5,0 bodů dosahovat jednoho falešného pozitiva (korektního emailu označeného jako spam) v dvou a půl tisících regulérních emailech (tzv. hamech). Prahovou hodnotu i skóre jednotlivých pravidel si můžete upravit. Dokonce si můžete tvořit i vlastní pravidla. Podstatnou informací je i to, že sada pravidel SpamAssassinu se podobně jako v případě antivirových databází časem mění a aktualizuje. Pokud chcete, můžete pomocí cronu aktualizovat nejenom antivirovou databázi, ale i pravidla pro SpamAssassin. Více v návodu níže. Pokud uživatelé vašeho serveru nepoužívají operační systém Microsoft Windows, v podstatě antivirus nepotřebujete. Máteli však takové uživatele, je vhodné je chránit pomocí antivirového řešení, které bude hledat viry v poště a likvidovat je. Základním antivirovým nástrojem v GNU/Linuxu je ClamAV. Je třeba zmínit, že testování obsahu emailů pomocí SpamAssassinu a ClamAV je náročné na výkon serveru (nejenom na CPU, ale i na paměť), což je i důvod, proč se správci poštovních serverů tolik věnují ostatním metodám obrany proti spamu. Čím více toho odfiltrují restrikce, greylisting apod., tím méně toho zbude na antispam, potažmo antivirus.
www.linuxexpres.cz/praxe/sprava-linuxoveho-serveru-antivirus-a-antispam
1/5
30.8.12
Správa linuxového serveru: Antivirus a antispam - Linux E X P R E S
A k čemu že je Amavis? Amavis je spolehlivý nástroj, opět napsaný v Perlu, který stojí mezi vaším MTA a filtry obsahu v podobě SpamAssassinu a ClamAV.
Instalace Instalaci všech tří nástrojů provedete jednoduše, přes správce balíčků, v případě Debianu takto: aptitude install amavisdnew spamassassin clamavdaemon
Schopnosti detekce antivirů můžete posílit, pokud nainstalujete nástroje pro dekompresi souborů (díky tomu bude ClamAV schopen prověřovat i obsahy archívů). Pozor! Některé z těchto nástrojů nepatří mezi svobodný software, tudíž důrazně doporučuji projít jejich licenční ujednání před tím, než je nasadíte na server. Také budete v tomto případě potřebovat contrib a nonfree repozitáře Debianu. aptitude install arj bzip2 cabextract cpio file gzip lha nomarch pax unrar unzip zip
Nastavení ClamAV Nejprve přidejte uživatele clamav do skupiny amavis, aby měl ClamAV přístup k souborům pro antivirový sken: gpasswd a clamav amavis
Následně ClamAV démona restartujte: service clamavdaemon restart
Nastavení SpamAssassinu Tím
je
nastavení
ClamAV hotové. Zbývá nastavit SpamAssassin. /etc/default/spamassassin a nastavte proměnnou ENABLED na jedničku:
Upravte
soubor
ENABLED=1
Chceteli, aby se pravidla SpamAssassinu aktualizovala každý den pomocí cronu, ve stejném souboru nastavte proměnnou CRON také na jedničku: CRON=1
Jak už bylo řečeno výše, činnost SpamAssassinu je náročná na procesor, tudíž nemusí být úplně od věci nastavit SpamAssassinu nízkou prioritu, aby se přednostně vyřizovaly aktuální požadavky ostatních démonů. Nejnižší priorita znamená nejvyšší „niceness“ hodnotu, tedy 19, standard je 0 a nejvyšší priorita (nejnižší „niceness“) je – 20. Rozumně nízká priorita (15) je v konfiguračním souboru připravená, stačí ji pouze odkomentovat (popřípadě upravit): NICE="nicelevel 15"
Poté nastartujte SpamAssassin: service spamassassin start
Nastavení Amavisu Ve výchozím nastavení Amavis neprovádí ani antispamovou, ani antivirovou kontrolu. Je tedy třeba mu říci,
www.linuxexpres.cz/praxe/sprava-linuxoveho-serveru-antivirus-a-antispam
2/5
30.8.12
Správa linuxového serveru: Antivirus a antispam - Linux E X P R E S
aby je prováděl, a to v souboru /etc/amavis/conf.d/15content_filter_mode, kde je třeba odkomentovat následující dva bloky: @bypass_virus_checks_maps = ( \%bypass_virus_checks, \@bypass_virus_checks_acl, \$bypass_virus_checks_re); @bypass_spam_checks_maps = ( \%bypass_spam_checks, \@bypass_spam_checks_acl, \$bypass_spam_checks_re);
Když se podíváte do /etc/amavis/conf.d, uvidíte jednotlivé soubory obsahující nastavení Amavisu. Projděte si minimálně soubor /etc/amavis/conf.d/20debian_default, kde jsou výchozí nastavení od tvůrců Debianu. V případě Debianu Squeeze tato nastavení nejsou optimální a je třeba je upravit (viz dále). Tento soubor však neměňte, pouze příslušné proměnné nadefinujte dle svých požadavků v souboru /etc/amavis/conf.d/50user, který je pro lokální úpravy určen. Do tohoto souboru můžete umístit tyto hodnoty: @local_domains_acl = ( ".$mydomain" ); $sa_tag_level_deflt = 999; $sa_tag2_level_deflt = 5; $sa_kill_level_deflt = 12; $final_spam_destiny = D_DISCARD;
První řádek definuje domény, pro které má Amavis filtrovat poštu – domény, které zde nebudou uvedeny, nebude Amavis filtrovat (pokud vám tedy Amavis nefiltruje poštu, prověřte, zda jsou zde uvedeny všechny vaše domény). Máteli jich více, můžete je oddělit čárkou: @local_domains_acl = ( ".$mydomain", "example.com", "example.org" );
Proměnná @sa_tag_level_deflt udává, od jakého skóre se do emailu budou přidávat hlavičky XSpam*. Hodnota – 999 zafunguje pro všechny emaily. Pro úvodní ladění a testování je to více než vhodné, jelikož se sem vypisují i hodnoty jednotlivých testů, což vám pomůže identifikovat, proč byl email označen jako spam. Proměnná @sa_tag2_level_deflt udává, od jakého skóre má být daný email označen jako spam. A konečně proměnná $sa_kill_level_deflt udává, od jaké úrovně se má se spamem provést akce definovaná ve $final_spam_destiny. Výchozí nastavení Debianu Squeeze obsahuje v této proměnné D_BOUNCE, což je pro mne nepochopitelná hodnota – tato hodnota totiž způsobí, že se email s vysokým skóre odmítne a vygeneruje se zpráva o nepřijetí, která se pošle odesílateli. Jak ale sami víte, odesílatel se dá snadno zfalšovat a u spamu bývá falšován téměř vždy. Pokud byste tuto hodnotu ponechali ve výchozím stavu, váš server by na spamy „odpovídal“, což by vyústilo v tzv. backscatter, tedy odesílání emailů o nepřijetí nevinným osobám. Doporučuji tedy nastavit buď na D_DISCARD (zahodit, popřípadě dle konfigurace poslat do karantény) nebo D_PASS (propustit). Následně restartujte Amavis: service amavis restart
Nastavení Postfixu Nejprve vložte do /etc/postfix/main.cf řádku: content_filter = smtpamavis:[127.0.0.1]:10024
www.linuxexpres.cz/praxe/sprava-linuxoveho-serveru-antivirus-a-antispam
3/5
30.8.12
Správa linuxového serveru: Antivirus a antispam - Linux E X P R E S
Nyní je třeba definovat příslušnou službu v souboru /etc/postfix/master.cf: smtpamavis unix n 2 smtp o smtp_data_done_timeout=1200 o smtp_send_xforward_command=yes o disable_dns_lookups=yes o max_use=20 127.0.0.1:10025 inet n n smtpd o content_filter= o smtpd_delay_reject=no o smtpd_client_restrictions=permit_mynetworks,reject o smtpd_helo_restrictions= o smtpd_sender_restrictions= o smtpd_recipient_restrictions=permit_mynetworks,reject o smtpd_data_restrictions=reject_unauth_pipelining o smtpd_end_of_data_restrictions= o smtpd_restriction_classes= o mynetworks=127.0.0.0/8 o smtpd_error_sleep_time=0 o smtpd_soft_error_limit=1001 o smtpd_hard_error_limit=1000 o smtpd_client_connection_count_limit=0 o smtpd_client_connection_rate_limit=0 o receive_override_options=no_header_body_checks,no_unknown_recipient_checks,no_milters o local_header_rewrite_clients=
Amavis jako takový naslouchá na portu 10024. Postfix musí Amavisu předat poštu pro filtrování na tento port, ale zároveň je třeba, aby mu Amavis poštu předal po filtrování zpět, což se řeší výše uvedenou definicí služby na portu 10025. Na tomto portu pak Postfix bude od Amavisu přijímat výsledek filtrování. Na závěr je třeba Postfixu oznámit změnu konfigurace: service postfix reload
Otestování funkčnosti Pro základní otestování postačí, když pošlete na server email, do kterého umístíte heslo „viagra“ – to poměrně spolehlivě zvýší skóre na nenulovou hodnotu. Můžete také využít GTUBE řetězec, který ve výchozím nastavení přiřadí vašemu mailu skóre 999. Tento řetězec má tuto podobu: XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBESTANDARDANTIUBETESTEMAIL*C.34X
Slovo závěrem Amavis je komplexní nástroj, který toho umí poměrně hodně. Pokud jej na svůj server nasadíte, doporučuji vám projít si jeho dokumentaci (můžete začít u odkazů v závěru článku), zejména pak hodnoty v souboru /etc/amavis/conf.d/20debian_defaults. Předchozí kapitola
Zpět na obsah
Následující kapitola
Odkazy Pokud si chcete přečíst více o této problematice, navštivte tyto odkazy:
www.linuxexpres.cz/praxe/sprava-linuxoveho-serveru-antivirus-a-antispam
4/5
30.8.12
Správa linuxového serveru: Antivirus a antispam - Linux E X P R E S
How to Install SpamAssasin, ClamAV, Amavis on Ubuntu / Debian Squeeze AMaViS: Filtering spam and viruses Fighting spam The GTUBE SpamAssassin (stránka projektu) ClamAV (stránka projektu) Amavis (stránka projektu)
Přidat téma diskuse Nejsou podporovány žádné značky, komentáře jsou jen čistě textové. Více o diskuzích najdete v nápovědě. Diskuzi můžete sledovat pomocí RSS kanálu
www.linuxexpres.cz/praxe/sprava-linuxoveho-serveru-antivirus-a-antispam
5/5