Jeżeli skonfigurowałeś sobie serwer pocztowy, prawdopodobnie będziesz musiał walczyć z dwoma zjawiskami: spam i wirusy.
W tym tekście opiszę jak skonfigurować postfixa aby skanował pocztę w poszukiwaniu wirusów.
Po pierwsze będziesz potrzebował jakiś program antywirusowy. Wybierzemy MKS bo jest darmowy.

-) pobierz najnowszą wersję MKSa, ze strony http://linux.mks.com.pl/
-) rozpakuj archiwum
-) skopiuj plik mks32 do /usr/bin
-) pobierz najnowsze bazy do MKSa i rozpakuj je w dowolny katalogu
-) w katalogu /etc utwórz plik mks_vir.cfg

musisz podać w nim lokalizację baz, czyli dodaj wpis:

--mks-vir-dat-path=/sciezka/do/katalogu/z/bazami/

pamiętaj o dodaniu ostaniego ukośnika do ścieżki, bo inaczej MKS nie będzie miał ochoty współpracować

W tym momencie możesz sprawdzić czy twój nowo zinstalowany program antywirusowy działa. Pobierz standardowego wirusa "eicar", zapisz go na dysku i wydaj polecenie:

mks32 eicar.com

w rezultacie powinienieś dostać informację, o znalezieniu wirusa.

-) pobierz również demon MKSa.
-) skopiuj plik mksd do /usr/sbin
-) skopiuj plik mksscan do /usr/bin

aby uruchomić demona konieczny jest katalog: /var/run/mksd, utwórz ten katalog.
Jeżeli nie chcesz uruchamiać demona jako root to utwórz jakiegoś użytkownika, np. mksuser, nadaj mu pełne prawa do katalogu /var/run/mksd i uruchamiaj demona jako ten użytkownik.

useradd -c "Uzytkownik pod ktorym chodzi demon MKSD" -d /var/run/mksd -s /bin/false mksuser
chown -R mksuser:users /var/run/mksd

Zaloguj się na użytkownika mksuser i uruchom demona mksd.
Po uruchomieniu powinieneś dostać komunikat podobny do poniższego:

mksd v1.14.2 (c) MkS Sp. z o.o. 2002,2003
tryb pracy: scan, liczba procesow: 1
inicjalizuje mks_vir'a...
mks_vir w tle gotowy do pracy

-) uruchom mksscan eicar.com
powinieneś otrzymać komunikat:

VIR Eicar.Test /tmp/eicar.com

mksscan jest programem sprawdzającym pliki lub katalogi w poszukiwaniu wirusów.
Podstawowe opcje programu to: '-s' - skanowanie i '-c' - leczenie.

-) pobierz amavisd-new ze strony: http://www.ijs.si/software/amavisd/
-) rozpakuj np. w /usr/local
-) skopiuj amvisd do /usr/sbin
-) skopiuj mavisd.conf do /etc
-) w pliku /etc/amavisd.conf odkomentuj :

# @bypass_spam_checks_acl = qw( . ); # uncomment to DISABLE anti-spam code

-) jako mksuser uruchom amavisd z opcją debug

/usr/sbin/amavisd debug

prawdopodobnie otrzymasz coś podobnego:

ERROR: MISSING REQUIRED BASIC MODULES:
Time::HiRes
IO::Wrap
IO::Stringy
Unix::Syslog
Mail::Field
Mail::Address
Mail::Header
Mail::Internet
MIME::Base64
MIME::QuotedPrint
MIME::Words
MIME::Head
MIME::Body
MIME::Entity
MIME::Parser
Net::Server
Net::Server::PreForkSimple
MIME::Decoder::Base64
MIME::Decoder::Binary
MIME::Decoder::Gzip64
MIME::Decoder::NBit
MIME::Decoder::QuotedPrint
MIME::Decoder::UU

Są to brakujące moduły perla, których wymaga amavis. Nie przejmuj się ich instalacja jst prosta (jak sznurek w kieszeni).

jako root wpisz:

perl -MCPAN -e shell

zostaniesz poproszony o wpisanie kilku informacji startowych (domyślne opcje na ogół są ustawione poprawnie)
Gdy pojawi się znak zachęty:

cpan>

wpisuj kolejno:
install nazwa_modulu_perla
np.

cpan> install Time::HiRes

Na ekranie zostanie wyświetlonych kilka komunkiatów i po chwili brakujący moduł masz zainstalowany.

Po zainstalowaniu wszystkich modułów utwórz katalog:

/var/amavis

i jako właściciela ustaw mksuser.
(jako grupę ustaw domyślną grupę mksusera, ja utworzyłem grupę mksgroup)

Aby wszystko działało potrzebne są jeszcze pewne modyfikacje w /etc/amavisd.conf
musisz odpowiednio ustawić:

$mydomain = 'twoja_domena';
$daemon_user = 'mksuser'; # (no default; customary: vscan or amavis)
$daemon_group = 'mksgroup'; # (no default; customary: vscan or amavis)

Zakomentuj linię:
$unix_socketname = "/amavisd.sock"; # amavis helper protocol socket

Czas ustalić jakiego antywirusa będziemy używali, w tym celu znajdź początek sekcji:

@av_scanners = (

zakomentuj wszystko co się znajduje w tej sekcji, tzn. aż do nawiasu zamykającego.
Pozostaw jedynie wpis:

['MkS_Vir daemon',
'mksscan', '-s -q {}', [0], [1..7],
qr/^... (\S+)/ ],

zakomentuj wszystko w sekcji:

@av_scanners_backup = (

W postfixie utwórz użytkownika virusalrt:
-) edytujesz plik /etc/aliases
i dopisujesz do niego:
virusalert: nazwa_twojego_konta
a następnie jako root wykonujesz:
newaliases
i pozostaje jeszcze
postfix reload

utwórz katalog /var/virusmails

Do pliku master.cf w katalogu posftixa (/etc/postfix) dopisz poniższe linijki:

smtp-amavis unix - - n - 2 smtp -o disable_dns_lookups=yes
127.0.0.1:10025 inet n - n - - smtpd -o content_filter=

natomiast do pliku main.cf w tym samym katalogu dopisz (gdzieś na dole) :

content_filter = smtp-amavis:[127.0.0.1]:10024

sprawdź też czy w zmiennej mynetworks w tym pliku masz wpisaną sieć: 127.0.0.0/8

No i co teraz ... ano nic ...
zabij procesy mksa, amavisa i postfixa, potem jako mksuser uruchom demon mksd i amavisd (już bez opcji debug).
Uruchom postfixa i wykonaj test

mail twoj_login
Subject: test eicara
X5O!P%@AP[4\PZX54(P^)7CC)7}-STANDARD-ANTIVIRUS-TEST-FILE!+H*
.
CC :

Wyślij list dokładnie w taki sposób jak opisałem wyżej. W twojej skrzynce powinny znaleźć się informacje, że w poczcie został znaleziony wirus:

VIRUS ALERT

Our virus checker found
virus: Eicar.Test
in your email to the following recipient:
-> jsen@mir.gdynia.pl

Delivery of the email was stopped!

i jeszcze kilka innych informacji.

Aby mieć pewność że załączniki są skanowane, spróbuj przesłać plik eicar.zip jako załącznik w liście do siebie. Czy to nie jest fajne ... ?
Oczywiście jak zwykle zachęcam Cię do lektury manów i dokumentacji

No i to tyle, możesz iść spać spokojnie (a może powinienem napisać spokojniej).


** Jacek Seń **


MENU LINUX