LINUX-BG   Адрес : http://www.linux-bg.org
Антивирусна защита за Sendmail с Amavis и ClamAV
От: Kalin Lilovski
Публикувана на: 11-05-2004
Адрес на статията: http://www.linux-bg.org/cgi-bin/y/index.pl?page=article&id=advices&key=361424464
Антивирусна защита за 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 >>

Авторите на сайта, както и техните сътрудници запазват авторските права върху собствените си материали публикувани тук, но те са copyleft т.е. могат свободно да бъдат копирани и разпространявани с изискването изрично да се упоменава името на автора, както и да се публикува на видно място, че те са взети от оригиналния им URL-адрес на този сървър (http://www.linux-bg.org). Авторските права на преводните материали принадлежат на техните автори. Ако с публикуването тук на някакъв материал неволно са нарушени нечии права - след констатирането на този факт материалът ще бъде свален.

All trademarks, logos and copyrights mentioned on this site are the property of their respective owners.
Linux is copyright by Linus Torvalds.
© Линукс за българи ЕООД 2007
© Slavei Karadjov 1999 - 2006

All rights reserved.

Изпълнението отне: 0 wallclock secs ( 0.17 usr + 0.02 sys = 0.19 CPU)