|
Антивирусна защита за Sendmail с Amavis и ClamAV
|
|
|
|
|
|
от Kalin Lilovski(11-05-2004)
рейтинг (20)
[ добре ]
[ зле ]
Вариант за отпечатване
Антивирусна защита за 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 >>
|
|
|
|
|
Сравнение?
От: Stoyan Zalev <stockton< at >netbg __точка__ com>
На: 11-05-2004@11:52 GMT+2
Оценка:
/А какви са предимствата/недостатъците на рецептата с amavis спрямо варианта с clamav-milter например?
[Отговори на този коментар]
допълнение
От: Bozhan Bozhkov <bozho __@__ issp< dot >bas< dot >bg>
На: 11-05-2004@12:15 GMT+2
Оценка:
/Колкото за сокета, имаше начин да се пусне и през сокет на диска, ама нещо не можах да се преборя с правата ( работеше само ако пусна clamd като root - aма това не е най добрата идея ;-) ) и се отказах и го пуснах през tcp socket. Но се оказа - понеже amavis прави своя опашка, че при много прииждащи заразени писма ( а потребителите ми са над 300) често се задръства диска - дадох му собстевен партишън, но и това понякога не помагаше, та се отказах от amavis и минах на варианта с milter - от тогава нямам никакъв проблем. Естествено, който не ползва sendmail ще трябва да използва amavis, MailScanner, scanexi, или друг "посредник" между mail-servera и clamd - те са описани подробно в документацията на clamav.
за milter- да уточня, че при пакета на sendmail за slackware не е включен ( за други дистрибуции не знам) - т.е. трябва да се изтегли сорсът на sendmail от sendmail.org и да се компилира с подръжка на milter.
После в *.mc файла се включва
INPUT_MAIL_FILTER(`clmilter',`S=local:/var/run/clmilter.sock,F=,T=S:4m;R:4m')dnl
INPUT_MAIL_FILTER(`spamassassin', `S=local:/usr/share/spamassassin/run/spamass.s
ock, F=,T=C:15m;S:4m;R:4m;E:10m')
define(`confINPUT_MAIL_FILTERS', `spamassassin,clmilter')
(тук съм сложил и spamassassin - макар че не е по темата :-) )
и с m4 се компилира sendmail.cf
разбира се директориите са според конкретната конфигурация.
пускат се clamd
/usr/local/sbin/clamd -c /etc/clamav.conf
конфига е същия, както е описано , само май
StreamSaveToDisk
трябва да се добави.
после се пуска clamav-milter
/usr/local/sbin/clamav-milter -c /etc/clamav.conf -blo --server=xxx.xxx.xxx.xxx local:/var/run/clmilter.sock
--server=xxx.xxx.xxx.xxx - защото в /etc/clamav.conf пак съм задал през tcp socket
за spamassassin
/usr/local/sbin/spamass-milter -p /usr/share/spamassassin/run/spamass.sock -u spamd
рестартира се sendmail и се следи за съобщения за грешки, защото (поне при мене) не винаги тръгва от първият път. Но нямаше големи проблеми и след 10-ина минути дълбок размисъл от страна на инсталиращия ;-) тръгна без грешки. Това е накратко алтернативният вариант. Всички останали подробности Калин ги е описал много добре. Ако нещо е пропуснато - ще допълним :-)
[Отговори на този коментар]
Za ClamAV
От: Kalata <kalata __@__ linuxmail __точка__ org>
На: 12-05-2004@7:10 GMT+2
Оценка:
/Значи аз ползвах Clamav около 1 месец докато не
забелязах, че половината вируси не ги хваща. Затова
минах на f-prot който е свободен за personal use.
Хваща всички вируси и се ъпдейтва на 12h. Затова
Clamav не е много надеждна антивирусна. Иначе за
статията със Sendmail и Spamd поздравления. Аз се
бях блъскал за Qmail а сега ще мога да разбера малко
повече и за Sendmail security:)
[Отговори на този коментар]
f-prot
От: Bozhan Bozhkov <bozho (a) issp__dot__bas__dot__bg>
На: 12-05-2004@9:01 GMT+2
Оценка:
/да де, ама наистина е свободен за personal use.
А за сървър цената е доста солена - особено за
много потребители. А да си го плзваш безплатно
за сървър, не е точно в духа движението за
свободен код - пак да не уточняваме кое е
свободно, безплатно и т.н. - става същото, като
да ползваш М$ продукти "безплатно". Ако някой
знае други антивирусни продукти, като clamav
които или са безплатни, или са на приемлива
цена да свирка.
[Отговори на този коментар]
za f-prot
От: kalata
На: 18-05-2004@8:26 GMT+2
Оценка:
/Ooo takiva zaqdki ne se priemat!!
Az gledam sistemata da mi e chitava i zdrava. A
ako ne moje firmata ti da si pozvoli 40$ .. si e vash
problem!! I stiga ste sravnqvali M$ i bezplaten!
[Отговори на този коментар]
кви 40 пари?
От: Bozhan Bozhkov <bozho__at__issp__dot__bas__dot__bg>
На: 18-05-2004@13:45 GMT+2
Оценка:
/$40 ??
Това къде го видя - като гледам ценоразписа им попадам в графата US$ 1699 за година, но най- ниската цена - за до 24 потребителя е US$ 299 за година - което не е толкова много, ама не е 40 долара.
[Отговори на този коментар]