от Kalin Lilovski(11-05-2004)

рейтинг (20)   [ добре ]  [ зле ]

Printer Friendly Вариант за отпечатване

Антивирусна защита за Sendmail с Amavis и ClamAV

Автор: Калин Лиловски
e-mail:kalin@cc.bas.bg
Създаден: 16/04/2004
Модифициран: 20/04/2004

Този документ описва изграждането на антивирусна зашита за Sendmail
посредством интерфейса AmaVis и антивирусната програма ClamAV. Авторът  
предполага, че сте наясно с конфигурирането и начина на работа на Sendmail,
че имате работещ мейл сървър и искате да добавите сканиране на писмата за
вируси. Ако тези условия не са на лице погледнете
http://www.lcpe.uni-sofia.bg/linuxdoc/sendmail/ , където ще
намерите пълно ръководство на български за това как да конфигурирате вашия мел
сървъв със sendmail.  

AmaVis е  Perl скрипт който се може да бъде използван от  MTA
( Sendmail Qmail, Exim, и. т.н ) за проверка на пощата посредством
популярни антивирусни програми под Linux.  ClamAV е една такава антивирусна
програма, предимството на която е, че се разпространява безплатно.  

Amavis web site:
http://www.amavis.org

Clam AntiVirus web site:
http://www.clamav.net/

Clam AntiVirus download site:
http://prdownloads.sourceforge.net/clamav  

Инсталиране на Amavis:

Amavis изисква Perl библиотеките:

IO-stringy
Unix-Syslog
MailTools
MIME-Base64
MIME-tools version 5.313 or better (!!)
Convert-UUlib version 0.111 or 0.201 or newer (0.2 is
broken!)
Convert-TNEF 0.06 or better (!!)
Compress-Zlib 1.14 or better
Archive-Tar
Archive-Zip 1.0 or better

За препоръчване е да имате актуална версия на Perl. Допълнителните
модули можете да добавите с MCPAN интерфейса, който инсталира не само самите
модули а и допълнителните модули от които те зависят. Освен това може да
конфигурирате интерфейса да тегли от български мирор (аз го направих от
Лирекс).

perl -MCPAN -e shell

след което:

install Unix::Syslog
  install Convert::UUlib
  install Convert::TNEF
  install Compress::Zlib
  install Archive::Tar
  install Archive::Zip
  install G/GB/GBARR/MailTools-1.15.tar.gz
  install MIME::Tools
 
Повече информация ще намерите във файла README на AmaVis.

Инсталирането на Amavis за Sendmail е описано във файла
README.sendmail . 3а препоръчване е да следвате описанието за инсталиране
посредством .mc файл, а не чрез редактиране на оригиналния .cf файл.  

Стъпка 1: Копирайте /etc/mail/sendmail.cf  
на /etc/mail/sendmail.orig.cf и създайте символна
връзка /etc/sendmail.orig.cf сочеща
към  /etc/mail/sendmail.orig.cf

ВНИМАНИЕ: Не пропускайте тази стъпка.
По-нататък /etc/sendmail.orig.cf ще се използва от Amavis В
оригиналния README файл пише да копирате /etc/sendmail.cf
на /etc/sendmail.orig.cf , което няма да ви свърши работа при
дистрибуциите в които /etc/sendmail.cf е символна връзка към
конфигурационния файл на sendmail, който се намира в /etc/mail
.

Стъпка 2: Копирайте от директорията където сте разархивирали
Amavis файла doc/amavis.m4 в директорията на sendmail
поддиректория /cf/mailer
       
Стъпка 3: Копирайте .mc файла използван за генерирането на
sendmail.mc под името amavis.mc и запазете негово копие на
оригиналния .mc файл /etc/mail ( в случай на нужда )

Стъпка 4: Променете amavis.mc

a) пред OSTYPE дефиницията добавете:
define(`QUEUE_DIR',`/var/spool/mqamavis')dnl
define(`STATUS_FILE',`/var/log/amavis.st')dnl

b) добавете дефиниция за amavis mailer-а към MAILER
дефинициите  
MAILER(`amavis')dnl

c) запазете файла amavis.mc и генерирайте sendmail.cf  
m4 amavis.mc > /etc/mail/sendmail.cf

d) запазете копие на amavis.mc (в случай на нужда )
cp amavis.mc /etc/mail

Стъпка 5: изпълнете
./configure --enable-relay --enable-sendmail
--with-warnrecip=yes --with-amavisuser=amavis,
make и make install  


Стъпка 6: Създайте /var/spool/mqamavis със следните права:

drwx------    2 root     amavis       4096 Apr 20
12:32 mqamavis/



Стъпка 7: Рестартирайте sendmail демона

Инсталиране на ClamAV

Инсталирането е описано във файла INSTALL. Протича на следните стъпки

./configure
make
make install
 

Рестартирайте Senadmail

След рестартирането на Sendmail, най-вероятно ще бъдете изненадани
от това, че пощата ви не работи.  Изпратете съобщение на някоя пощенска кутия
и погледнете в /var/log/maillog. Там ще видите нещо от сорта на

Apr 18 04:30:14 serv amavisd[2027]: starting.  amavis 0.3.12
Sat Apr 17 10:51:06 GMT+1 2004
Apr 18 04:30:17 serv amavisd[2027]: Virus scanner failure:
Clamd - can't connect to daemon

Това е защото clamd демона не е включен. Преди да го включите
трябва да го конфигурирате. За целта редактирате
файла /usr/local/etc/clamav.conf:

Коментирайте   "Example"
Откоментирайте “LogSyslog"
Откоментирайте "StreamSaveToDisk"
Откоментирайте "MaxThreads" и задайте стойност "30"
Откоментирайте "ScanMail"
Коментирайте “LocalSocket /tmp/clamd”
Откоментирайте “TCPSocket 3310”
Откоментирайте “TCPAddr 127.0.0.1”

Стартирайте clamd и проверете дали работи на ТСР порт 3310

# nmap -p 3310 localhost

Starting nmap 3.50 ( http://www.insecure.org/nmap/ ) at
2004-04-18 13:26 GMT+1
I nteresting ports on localhost (127.0.0.1):
PORT     STATE SERVICE
3310/tcp open  unknown

Авторите на ClamAV не отговарят за това до колко е сигурен демона който са
написали и препоръчват да не се пуска на ТСР порт. Amavis обаче го търси на
127.0.0.1:3310. Разумно e да ограничите достъпа до този порт за
останалите компютри посредством iptables.

Ако във maillog има и нещо от сорта на:  

Apr 18 04:30:17 serv amavisd[2030]: mail forwarding failed,
retry: Insecure dependency in exec while running with -T
switch at /usr/sbin/amavis line 601, <GEN0> line 19.
(message-id=<200404171552.32767.kalin@lit.bas.bg>)

pедактирайте скрипта /usr/sbin/amavis  махнете  опцията –Т от
първия ред

Не забравяте да укажете clamd да се стартира със зареждането на
системата

Можете да проверите как работи антивирусната проверка като пратите
писмо с вирус (аз взех един от
http://www.eicar.org/anti_virus_test_file.htm).  

Обновяването на ClamAV става с freshclam и cron.  


<< Как да обновяваме автоматично Fedora  с най-новите пакети | Siemens mini How-To >>