Instalacja systemu antywirusowego ClamAV dla qmaila

Pierwsze co musisz zrobić, to ściągnąć najnowszą wersję antywirusa ClamAV. Następnie musisz założyć odpowiednią grupę i użytkownika z prawami którego będzie on działał.

groupadd clamav
useradd -g clamav -s /bin/false -c "Clam Antivirus" clamav

W kolejnym kroku musisz rozpakować, skompilować i zainstalować cały pakiet:

tar -zxvf clamav-0.87.tar.gz
cd clamav-0.87
./configure
make
make install

Po wydaniu polecenia:

clamscan -r -l scan.txt clamav-0.87

w pliku scan.txt powinna się pojawić informacja o kilkukrotnym wykryciu “wirusa” ClamAV-Test-File. Jeśli tak jest, to znaczy że ClamAV działa poprawnie.

Demon znacznie lepszy

Jednak w przypadku serwera dużo lepszym rozwiązaniem jest uruchomienie demona clamd i odwoływanie się do niego poprzez program clamdscan. Takie rozwiązanie jest znacznie wydajniejsze. Program nie musi za każdym razem wczytywać z dysku całej bazy wirusów, tylko raz uruchomiony trzyma ją cały czas w pamięci. Aby uruchomić demona musisz go najpierw skonfigurować. Domyślnie ta konfiguracja jest w pliku /usr/local/etc/clamd.conf.

 

Przede wszystkim musisz usunąć linię “Example”, żeby w ogóle uruchomić demona. Warto przejrzeć wszystkie opcje konfiguracyjne, żeby przynajmniej wiedzieć jakie oferuje on możliwości. Jednak demon powinien dobrze działać przy domyślnych ustawieniach.

 

Wystarczy więc go uruchomić:

/usr/local/sbin/clamd

i sprawdzić czy poprawnie skanuje pliki:

clamdscan /tmp/

Jeśli coś jest nie tak, to warto przede wszystkim włączyć wysoki poziom logowania demona (LogVerbose) i zobaczyć w logach jaka jest przyczyna błędnego działania. Jeśli już doprowadzisz do działania clamd, to możesz przejść do następnego kroku.

Nałożenie patcha qmailqueue

Qmail-scanner jest programem, który integruje qmaila z różnymi systemami antywirusowymi, w tym z ClamAV.Do poprawnego działania qmail-scanner potrzebuje qmaila z zainstalowanym patchem qmailqueue-patch. Jeśli jeszcze nie masz zaaplikowanego tego patcha, to musisz go nałożyć i przekompilować qmaila.

 

Oryginał wiadomości z patchem znajdziesz tutaj. Natomiast na naszych stronach jest gotowy patch do zaaplikowania.

 

Nałożenie patcha wygląda następująco. W katalogu nadrzędnym do qmail-1.03 musisz uruchomić:

patch -p0 < qmailqueue-patch
cd qmail-1.03
make

Następnie potrzebujesz podmienić qmail-smtpd

cp /var/qmail/bin/qmail-smtpd /var/qmail/bin/qmail-smtpd.old
cp qmail-smtpd /var/qmail/bin/

i zrestartować qmaila.

Instalacja qmail-scannera

Najpierw musisz pobrać najnowszą wersję ze strony http://qmail-scanner.sourceforge.net/ Następnie stworzyć grupę i użytkownika z poziomu którego będzie działał qmail-scanner:

groupadd qscand
useradd -c "Qmail-Scanner Account" -g qscand  -s /bin/false qscand

W tym momencie możesz uruchomić konfigurację pakietu:

./configure --admin konto_mailowe --domain twoja.domena.pl --notify "none"
--debug no

Zgodnie z powyższą linijką wszelkie powiadomienia administracyjne qmail-scanner będzie wysyłał na adres konto_mailowe@twoja.domena.pl Jeśli qmail-scanner znajdzie oprogramowanie którego potrzebuje, to wyświetli podsumowanie jakie wartości zostaną użyte przy instalacji. Najważniejsza jest linijka:

scanners="clamdscan_scanner"

Oznacza ona, że qmail-scanner znalazł zainstalowanego ClamAV i będzie go obsługiwał w trybie demona. Jeśli wszystko jest OK, to możesz dodać opcję “–install”, żeby configure faktycznie zainstalowało cały program.

./configure --admin konto_mailowe --domain twoja.domena.pl --notify "none"
--debug no --install

Po instalacji sprawdź, czy użytkownik qmaild będzie miał prawa do uruchamiania skanera:

setuidgid qmaild /var/qmail/bin/qmail-scanner-queue.pl -g

Jeśli dostaniesz komunikat “Can’t do setuid” lub “Permission denied”, to najprawdopodobniej nie masz zainstalowanego pakietu suid-perl (w RedHacie jest to “perl-suidperl”, w Debianie “perl-suid”).

Ustawienie QMAILQUEUE

Ostatnią rzeczą którą trzeba zrobić, to ustawić zmienną QMAILQUEUE, która powie qmailowi, że jako programu do kolejkowania poczty ma użyć qmail-scannera. Najwygodniejszym sposobem jest dopisanie jej do pliku /etc/tcp.smtp. Jeśli przed modyfikacją plik ten wyglądał np. tak:

127.:allow,RELAYCLIENT=""
:allow

To po dodaniu obsługi antywirusowej będzie wyglądał tak:

127.:allow,RELAYCLIENT=""
:allow,QMAILQUEUE="/var/qmail/bin/qmail-scanner-queue.pl"

Zasadniczo do poczty przesyłanej bezpośrednio z serwera nie potrzeba uruchamiać antywirusa (stąd brak zmiennej QMAILQUEUE w pierwszej linijce). Jeśli jednak serwer obsługuje np. pocztę przez WWW i mogą się pojawić listy z wirusami przesyłane przez localhosta, to oczywiście przy 127. też warto dopisać odpowiednie QMAILQUEUE. Po zmianie czegokolwiek w tcp.smtp trzeba przebudować wersję binarną - tcp.smtp.cdb:

qmailctl cdb

lub jeśli nie masz qmailctl:

tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp
chmod 644 /etc/tcp.smtp.cdb

W tym momencie qmail powinien już skanować przechodzące przesyłki przy pomocy antywirusa. Możesz to przetestować przesyłająć pocztę do siebie i obserwować nagłówki. Powinny tam się pojawić wpisy informujące o skanowaniu przesyłki:

Received: from 111.222.33.44 by grendel ... with qmail-scanner-1.25
 (clamdscan: 0.85.1/925. spamassassin: 3.0.3.
 Clear:RC:0(111.222.33.44):SA:0(0.2/5.0):.
 Processed in 0.116137 secs);

Potencjalne problemy

Po dodaniu skanera antywirusowego znacząco zwiększa się apetyt qmaila na pamięć. Jeśli masz qmaila wywoływanego z ograniczeniem pamięci do wykorzystania, to limit ten może okazać się niewystarczający. Objawia się to najczęściej takim komunikatem przy próbie wysłania poczty:

451 qq temporary problem (#4.3.0)

Trzeba wtedy zwiększyć ilość pamięci dostępnej dla qmaila. W przypadku ClamAV wartością wystarczającą jest 25MB.



One Response to “Instalacja systemu antywirusowego ClamAV dla qmaila”

  1. January 5th, 2010 | 3:41 am

    […] spotykane integracje ClamAV dotyczą programów pocztowych – przykładem niech będzie opisana przez Marcina Kądziołkę integracja ClamAV z serwerem pocztowym Qmail. Na groźnego wirusa można jednak natknąć się nie tylko w mailu, ale także ściągając (i […]

Skomentuj...

You must be logged in to post a comment.

The accumulation of points and extra discounts makes favorable re-order in Canadian drug pharmacy "'&$ drug list and permanent system of discounts for buyers.