Hlavní navigace

VirusBuster MailShield 2005 for SMTP v praxi

12. 9. 2005
Doba čtení: 12 minut

Sdílet

Volné pokračování článku VirusBuster MailShield 2005 for SMTP, které se zabývá praktickým použitím a novými funkcemi zajímavého komerčního lapače virů a spamů.

VirusBuster je antivirový a antispamový software od stejnojmenné maďarské firmy. U nás ho prodává firma OfficePlus s.r.o. (www.officeplus­.cz). Obecné informace jste se mohli dozvědět v předchozí recenzi. Já se zaměřím jen na užitečné poznatky z praktického používání. Jako operační systém jsem při testech použil Slackware current a poštu obhospodařuje Postfix a Courierimap.

Instalace VirusBusteru

Jelikož je program šířen v tarballu s vlastním instalátorem, rozhodl jsem se ho instalovat do adresáře /opt/vb/, abych si ušetřil práci při případné odinstalaci. Stačí stáhnout balíček, rozbalit a spustit instalátor:

./vbmailshield-install.pl
VirusBuster MailShield Configuration
Copyright (c) 2001-2004 VirusBuster Ltd.
en:     English
hu:     Magyar
Language: en

Loading distribution file...  Ok.
Checking platform...  Linux-i386 - Ok.

In which directory do you want to install the binary files?
[/usr/bin] /opt/vb/bin

Directory '/opt/vb/bin' doesn't exist.
Create new directory?
[yes]

In which directory do you want to install the library files?
[/usr/lib] /opt/vb/lib

Directory '/opt/vb/lib' doesn't exist.
Create new directory?
[yes]

In which directory do you want to install the documentation files?
[/usr/share/doc] /opt/vb/doc

Directory '/opt/vb/doc' doesn't exist.
Create new directory?
[yes]

In which directory do you want to install the manual files?
[/usr/share/man] /opt/vb/man

Directory '/opt/vb/man' doesn't exist.
Create new directory?
[yes]

Which directory do you want to be the spool directory?
[/var/spool/vbmailshield] /opt/vb/vbmailshield

Directory '/opt/vb/vbmailshield' doesn't exist.
Create new directory?
[yes]

Specify the log directory name
[/var/log/vbmailshield] /opt/vb/log/vbmailshield

Directory '/opt/vb/log/vbmailshield' doesn't exist.
Create new directory?
[yes]

Do you want to install the init script?
[yes]

What is the directory that contains the init scripts?
[/etc/rc.d]

Please note, that VBMailShield uses SystemV style init scripts. By default,
Slackware supports them through the /etc/rc.d/rc.sysvinit facility. If the
required directories does not exists, this setup script will create them
under /etc/rc.d. You can find more information about the SystemV init support
in the /etc/rc.d/rc.sysvinit script.

What is the directory that contains the init directories (rc0.d - rc6.d)?
[/etc/rc.d]

Specify the names which may appear on incoming mail messages
Enter the domain names here separated with spaces.
[] gavanet.org

Are there any networks of local machines you want to relay mail for?
Enter them here, separated with spaces. You should use the
standard address/length format (example: 194.222.242.0/24)
If there are none, just press the ENTER.
[]

Poznámka: Až po instalaci jsem se dozvěděl, že sem jsem měl
napsat 10.193.64.0/18, což je moje czfree síť. Počítače v tomto
subnetu mohou odesílat poštu bez omezení domény uvedené
v předchozím odstavci.

Specify the IP address and port number of the SMTP server that will
be used for forwarding scanned mail (example: 192.168.1.2:2525)
[] 127.0.0.1:2525

Specify the log file name
[vbmailshield.log]

Specify the email address of the administrator
[] zdenek@gavanet.org

Specify the mail from field of administrator's email
(example: admin@vbuster.hu or Admin <admin@vbuster.hu>)
[] vb@gavanet.org

Enter your registration user name
[] zstepanek@atlas.cz

Enter your registration key (example: WESAE-WCRVC-CSNEH)
[] SUPER-TAJNE-HESLO

Installing files...  Done.
Creating spool directories...  Done.
Installing config file...
Installing init scripts...  Done. 

Takže na první pohled je vše v pořádku. Pochyby vzbuzuje jedině init script. Wrapper rc.sysvinit jsem nikdy nepoužíval a netuším, jestli funguje.

Ukázalo se, že instalátor vytvořil klasický rc skript v /etc/rc.d/  a vytvořil podadresáře rc.0rc.6, ve kterých bylo po vzoru RedHatu startování nebo zastavování VirusBusteru. Já jsem je stejně hned smazal a startování VirusBusteru si zařídím podle slackwarového zbůsobu v rc.inet2. Jinak rc skript /etc/rc.d/vbmailshield funguje bez problémů. Od prvního spuštění VirusBusteru do prvního emailu jím zkontrolovaného uběhly asi tři minuty.

Konfigurace

VirusBuster se zařadí před MTA, to znamená, že poslouchá na portu 25 a stávající MTA je potřeba přesunout na jiný port a zajistit, aby naslouchal jen na localhostu, případně přijímal poštu jen z konkrétního stroje, pokud chcete mít VirusBuster na jiném počítači. Takže doporučuji port 2525 blokovat firewallem.

V konfiguračním souboru Postfixu master.cf najdětě řádek:

smtp      inet  n       -       n       -       100     smtpd 

a změňte jej na a

2525      inet  n       -       n       -       100     smtpd 

Port 2525 je defaultní port, kde VirusBuster očekává normální MTA, můžete nastavit i jiný port, ale nezapomeňte to pak změnit v konfiguraci VirusBusteru.

V tomto okamžiku už stačí jen restartovat postfix a zkontrolovat nmapem porty 25 a 2525.

nmap localhost -p 25,2525

Starting nmap 3.81 ( http://www.insecure.org/nmap/ ) at 2005-07-13 08:47 CEST
Interesting ports on localhost (127.0.0.1):
PORT     STATE SERVICE
25/tcp   closed  smtp
2525/tcp open  unknown

Nmap finished: 1 IP address (1 host up) scanned in 0.143 seconds 

Teď nahodíme VirusBuster:

/etc/rc.d/vbmailshield start 

Stačí si přečíst hlášku od skriptu, a pokud tam nebude žádná chyba, ještě nmapem zkontrolovat, jestli je otevřený port 25. Pokud ano, mělo by jít odesílat emaily v rámci lokální domény. Jaká je to doména, se zadává při instalaci, instalační skript patřičně poupraví všechny relevantní konfigurační soubory. To mi způsobilo trochu problém, jelikož z vnitrní sítě odesílám emaily pod několika doménami. Jak povolit i jiné odchozí emailové domény bude dále v článku. V závislosti na nastavení subnetu při instalaci by z tohoto subnetu měly jít odesílat emaily ze všech domén.

Poznámka: V tomto okamžiku mám nainstaloavnou verzi 1.56.1–13, v této verzi je chyba, že svoje knihovny v případě instalace do neobvyklého adresáře /opt/vb/lib nezařadí do prohledávání ( ldconfig). Knihovny tak nejsou přístupné bez zadání absolutní cesty. Podobná problém je i s některými spustitelnými soubory. V průběhu recenze vyšla nová verze, kde jsou tyto chyby opraveny. Chcete-li se vyhnout zbytečným problémům, instalujte radši do standardně nabízených adresářů. V pokračování recenze již budu popisovat ostrou verzi 1.56.1. Nyní je k dispozici opět novější verze, je vidět, že programátoři nespí.

Pokuste se nyní sami sobě poslat email, pokud přijde, již prošel VirusBusterem. To lze snadno ověřit programem /opt/vb/bin/vbshldstat. Ten poskytuje statistiku o programu samotném a o počtu emailů, které jím prošli.

Hook started at 2005-07-12 22:53:47     Hook uptime is   0 days 13:28:37
                                        CFG  uptime is   0 days 13:28:38
===============================================================================
Processes [PID]:       now/1sec/max     Data Transfer:     average/ total
-------------------------------------------------------------------------------
Smtp Receiver [28198]:   0/  0/  1      Smtp  received:          0/     9
Hook Scanner  [28194]:   0/  0/  1      Bytes received:          0/23.97k
Smtp Sender   [28200]:   0/  0/  1      Smtp  sent:              0/    10
Total connections:              10      Bytes sent:              0/26.07k
Dropped connections:             1      IP blacklist:                   0
RBL:                             0      Domain blacklist:               0
5xx transmit.errors:             0      Rcpt blacklist:                 0
4xx transmit.errors:             0      Queue status (R/S):      0/     0
Processing error:                0      System load average:         0.08
ASAP comm.errors:                0      Files in resend spool:          0
                                        Next resend after      287 sec.
-------------------------------------------------------------------------------
Infected mails                   0      Mail checked:            0/     9
Virus found:                     0      Attc.check/decoded:      5/     5
Virus removed:                   0      Average attach.num:          0.56
Attachment deleted:              0      Warning message sent:           0
Mail blocked:                    0      Transmitted mails:      10 (  0)
File filtered:                   0      ASAP-spam found:         0/     9
Spams found:              0/     9
Total spams found:        0/     9 

Pokud budete mít nějaký problém, zkuste parametr „-d“ a program bude upovídanější.

Aktualizace

U antiviru nesmíte zapomínat na pravidelnou aktualizaci. Ta je řešena pomocí skriptu /opt/vb/bin/vdbupdate.sh. Po jeho spuštění vám to napíše:

# ./vdbupdate.sh
Can't find daemon 'vbmailshield' in PATH 

Vyskytla se drobná chybička. Instalátor neupravil proměnnou PATH a ani mě na to neupozornil, nebo jsem si toho alespoň nevšiml. Problém je jednoznačně způsoben instalací do /opt/vb/. Kdybych instaloval do nabízených adresářů, problém by nenastal. V changelogu k novější verzi jsem nečetl informaci o opravě. A přitom stačí pouhé:

$ export PATH=$PATH:/opt/vb/bin 

Znovu jsem spustil update:

$ ./vdbupdate.sh
Virus database directory=/opt/vb/lib/vbmailshield
St čec 13 12:33:13 CEST 2005
Downloading vdb path...OK
Downloading sdb path...Downloading the virus database...OK
Updating virus database...OK
Downloading the spam database...OK
Updating spam database...OK 

Nezapomeňte si zapsat do cronu spouštění tohoto skriptu. Výrobce doporučuje jednou za hodinu.

Provoz

Nyní nastal čas se podívat, proč většině lidí ze sítě nejde odesílat pošta. VirusBuster propouští odchozí poštu jen z domény gavanet.org, kterou jsem nastavil při instalaci, zjevně proto, že políčko pro zapsání lokálního subnetu jsem při první instalaci nechal prázdné. Jenže lidé odesílají poštu z domén všech možných freemailů i jiných domén. Bylo tedy potřeba povolit v odchozích emailech jakoukoliv doménu. Najděte sekci [rules] v konfiguračním souboru /etc/vbmailshield/vbmailshield.conf a upravte ji podobně jako v následující ukázce:

[rules]
#           DOMAIN               ;    IP / IPMASK  ;   TEMPLATE ; TARGET
#------------------------------------------------------------------------------
gavanet.org                      ; *               ; incoming   ;         #prijem domeny gavanet.org ze vsech IP
*                                ; 10.0.0.0/8      ; outgoing   ;         #odesilani vsech domen z 10.0.0.0/8
*                                ; 127.0.0.0/8     ; outgoing   ;         #odesilani vsech domen z localhostu 

Uvedená pravidla znamenají, že VirusBuster přijme z Internetu poštu do domény gavanet.org (jiné domény můj SMTP server nespravuje) a povolí odchozí poštu do všech domén z lokální sítě a z localhostu. TEMPLATE (incoming/outgoing) je vlastně nastavení kolony filtrů. Obecné nastavení filtrů je v šabloně default. V šablonách incoming a outgoing je už jen zapsáno, zda je filtr aktivní, a případně je tam nějaké doplňující nastavení. Nastavení v této šabloně má zjevně vyšší prioritu než v šabloně default. Je možné si vytvořit i vlastní šablony, například když chcete mít nějaké nastavení pro odchozí emaily z vaší vlastní domény a jiné nastavení pro odchozí maily z domén freemailů.

Tím je základní konfigurace hotová a nyní si projdeme konfigurační soubor od začátku do konce a popíšu části, které jsem upravoval.

VirusBuster pravděpodobně generuje statistiky zpracovaných emailů, zatím mi sice nic nepřišlo, ale nejspíš za to může krátký a nepravidelný provoz VirusBusteru. Zapsal jsem svůj email na následující řádek:

statistic-mail      = zdenek@gavanet.org         # address to send virus statistic 

Dále je na řadě automatické učení. Konfigurace je opět až nebezpečně jednoduchá, stačí odkomentovat připravené řádky v konfiguračním souboru a upravit emaily, kam se zasílají spamy a nespamy.

spamal-update-timer          = 12h
spamal-prob-limit            = 0.1
spamal-nonspam-total-ratio   = 0.6
spamal-ageing-interval       = 168
spamal-min-token-count=1
spamal-max-token-size=30
spamal-min-token-size=3
spamal-max-html-token-size=50
spamal-min-html-token-size=6
spamal-max-prob=0.7
spamal-min-prob=0.3
spamal-max-size=16M
spamcl-spam-address          = <spam@gavanet.org>     # e-mail address must be entered between < and > signs
spamcl-nonspam-address       = <nespam@gavanet.org>  # e-mail address must be entered between < and > signs
spamcl-update-timer          = 24h
spamcl-limit-size            = 16M
spamcl-limit-num             = 1024
spamcl-limit-age             = 168h
spamcl-false-positive-weight = 9
spamcl-not-detected-weight   = 3
spamcl-subject-spaces        = 0
spamcl-min-token-count       = 1
spamcl-max-token-size        = 30
spamcl-min-token-size        = 3
spamcl-max-html-token-size   = 50
spamcl-min-html-token-size   = 6
spamcl-max-prob              = 0.85
spamcl-min-prob              = 0.15
spamcl-max-size              = 16M
spamcl-remove-id             = no 

Princip je takový, že emaily, které tento spamfiltr nezná, si uloží do karantény a zároveň předá dál. Při přeposlání emailu zpět VB se použije uložený email. Výhoda je, že VB nemusí luštit originální email z přeposlaného emailu od uživatele.

Nakonec se podíváme na internetové black-listy. Je samozřejmě možné konfigurovat i lokální blacklisty, ale bude stačit, když využijeme služeb serverů, které poskytují údaje o SMTP serverech rozesílajících spam. VirusBuster z těchto serverů stahuje data a následně blokuje spamovací servery. Konfigurace je jako obvykle velmi jednoduchá, stačí pouze odkomentovat následující řádky, které už jsou v konfiguračním souboru:

[ip-rbl]
blackholes.mail-abuse.org
sbl.spamhaus.org
cbl.abuseat.org 

Je to jednoduché, viďte. V případě potřeby si můžete připsat i další servery. S emaily lze naložit stejně jako v případě ostatních filtrů. Výchozí je blokování, ale lze nastavit forwardování, upozornění v předmětu atd. Celkem jsem tedy v konfiguráku upravil šest sekcí. Soubor je jinak vcelku rozsáhlý, i když nejvíce místa zabírají šablony emailů.

Filtry

Virusbuster má celkem šest funkčních bloků (filtrů). V konfiguráku jsou popsány jako virusfilter, filefilter, filegate, fieldfilter, spamfilter a asapfilter.

VIRUSFILTER

Už z názvu je jasné, že tenhle modul se stará o viry. Viry se rozpoznávají podle virové databáze, která se stahuje z Internetu, podle heuristické analýzy a dalších moderních technologií (skripty, makra, zabalené soubory,…). Máte možnost nastavit, co všechno se bude kontrolovat, jak důkladná bude kontrola a co se má s virem provést. Výchozí nastavení není asi potřeba měnit, ale možností je dost.

FILEFILTER

Filefilter umí blokovat soubory podle přípony a provést s emailem určitou akci. Buď soubor smazat (výchozí), zablokovat email, poslat kopii někam jinam, nebo celý email poslat jinam. Vzhledem k jednoduchosti tohoto filtru jej považuji za dobrý vstupní článek, rychle smaže to, co by virusfilter zdlouhavě kontroloval.

FILEGATE

Přesný opak filefilteru. Propouští jen vypsané přípony souboru. Běžně se nepoužívá, ale je možné nastavit filtry tak, aby odstraňovaly veškeré přílohy vyjma zde vyjmenovaných.

FIELDFILTER

Filtr slouží pro filtrování podle položek v hlavičce emailu. Filtrovat lze podle subject/from/to/cc­/date/mailfrom/rcptto. Umožňuje opět udělat s emailem, co uznáte za vhodné, stejně jako ostatní filtry.

SPAMFILTER

Spamfilter se skládá z několika dílčích filtrů. Jednak z ip-rbl, coz jsou internetové blacklisty, nastavení už jsem popisoval, jednak z automatického učení. To funguje tak, že uživatelé posílají spamy na spam@domena.net a nespamy na nespam@domena.net. VB se podle toho učí, a až bude mít dostatečný počet naučených emailů, začne filtr pracovat. Kolik jich je naučených a kolik je ještě potřeba k zapnutí filtru, lze najít v logu. A nakonec je to spamová databáze, která se pravidelně stahuje spolu s virovou databází.

ASAPFILTER

Toto je technologie od společnosti www.commtouch­.com, která pracuje na zajímavém principu: z každého emailu vyrobí hash, a ten se pošle na některý ze serverů firmy commtouch. Server odpoví, zda se jedná o spam, nebo ne. Hash pro každý email má přibližně 800 byte. Zároveň se využívá cache, takže pro stejné emaily se už VB vzdálených serverů neptá. Při větším objemu emailů VirusBuster čeká na odpovědi z tohoto serveru a až pak předá mail dále na SMTP server, může z toho vzniknout malé zpoždění, které by ale nemělo způsobovat problémy.

Závěr

VirusBuster se dle mého názoru velmi lehce používá, lehce konfiguruje a obsahuje prakticky všechny způsoby ochrany. Jednoduchá je i instalace, i když je pravda, že někdo toto řešení nemá rád a upřednostňuje externí filtry v průběhu zpracovávání emailu postfixem nebo jiným MTA. Mně osobně to nevadí, za celou dobu provozu jsme nezaznamenal žádný problém.

VirusBuster lze nainstalovat i jako interní filtr do existujícího postfixu jako content_filter. Výhodou pak je, že na příjmu není VB, ale standardní MTA, takže lze požít SMTPS protokol (ten VB neumí), autorizaci odesilatelů atd.

CS24_early

Z pohledu uživatele se také nic zásadního nekoná. VirusBuster má vcelku bohaté možnosti jak nastavit rozesílání různých upozornění odesílateli (příjemci/komu chcete …) spamu nebo viru. Hlášky jsou v konfiguračním soubou anglicky, ale není problém je přepsat. Pak ještě uživatele naučit posílat spam na spam@domena.net a hotovo. Jinak je VirusBuster vůči uživatelům zcela transparentní.

Z mého pohledu má program snad jen jednu chybičku na kráse, není to svobodný software, což je zejména na serveru a zejména u programu, kterým procházejí veškeré mé emaily, poněkud mínus. Ale tohle už nechám na každém zvlášť. Cena produktu se bohužel poměrně složitě počítá, ale není nikterak závratná a navíc jsou poskytovány slevy pro EDU/GOV (20 %) nebo při cross upgrade. Po zakoupení máte přístup k upgradu virové databáze na jeden rok, poté je potřeba zakoupit roční upgrade, na který dostanete slevu 30 % z ceny plné verze. Pokud vám tedy nevadí komerční closed source program, lze VirusBuster s klidným srdcem doporučit.

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

Autor článku