интеграция avast и postfix

Dec 07, 2010 17:02


Здравствуйте, я молдавский вирус.
По причине ужасной бедности моего создателя
и низкого уровня развития технологий в нашей стране
я не способен причинить какой-либо вред вашему компьютеру.
Поэтому очень прошу: сами сотрите какой-нибудь важный
для вас файл, а потом разошлите меня по почте другим адресатам.
Заранее благодарен за понимание и сотрудничиство

Как установить avast для фильтрации входящей почты на сервер RHEL и интегрировать его с postfix
Возникла у нас гениальная идея - поставить на входной почтовый сервер avast антивирус, вместо касперского.
Заказали лицензию, пока она идет я решил попробовать поставить с триальным ключем. Давно я так не радовался :)
Документации на сайте нет вообще, документация внутри RPM пакета предназначена для сборки из исходников и сильно не бьет с реальностью...


1) Инсталяция:
Нам нужно три пакета: libavastengine, avast4server, avast4mail
Скачиваем их:

wget http://files.avast.com/files/linux/i586-pc-linux-gnu/libavastengine-4.7.6-1.i586.rpm
wget http://files.avast.com/files/linux/i586-pc-linux-gnu/avast4server-3.2.1-1.i586.rpm
wget http://files.avast.com/files/linux/i586-pc-linux-gnu/avast4mail-3.2.1-1.i586.rpm

И устанавливаем:

yum localinstall --nogpgcheck libavastengine-4.7.6-1.i586.rpm
yum localinstall --nogpgcheck avast4server-3.2.1-1.i586.rpm
yum localinstall --nogpgcheck avast4mail-3.2.1-1.i586.rpm

Теперь нужно получить ключ лицензии, или запросить у Аваста временную лицензию. Запрос временной лицензии производится по адресу:
http://www.avast.com/linux-unix-trial-license-request.php

Полученный файл License.dat помещаем в директорию /var/lib/avast4/

Теперь можно запустить демон avastd:
>service avastd start
Все, антивирус у нас работает. Дальше - дискотека.

Настройка почтового фильтра

Теперь нам необходимо уговорить антивирус фильтровать входящую почту. На сайте аваста документация по этому вопросу отсутствует. В пакете avast4mail есть файл /usr/share/doc/avast4mail-3.2.1/INSTALL, который описывает процесс настройки и интеграции почтового фильтра, но с ним надо обращаться с большой осторожностью. Фишка в том, что он описывает сборку пакета из исходников, а если мы устанавливаем RPM пакет, то часть действий уже были проделанны при инсталяции. Что бы узнать, что именно проделал RPM дадим команду:

rpm -q --scripts avast4mail
Получаем:

postinstall scriptlet (using /bin/sh):
if [ ! -n "`/usr/bin/id -g avmail 2>/dev/null`" ]; then
/usr/sbin/groupadd -g 412 -f avmail 2>/dev/null
fi
if [ ! -n "`/usr/bin/id -u avmail 2>/dev/null`" ]; then
/usr/sbin/useradd -g avmail -c avastmail -d /var/run/avastmail -s /sbin/nologin -u 412 avmail 2>/dev/null
fi
/bin/chown root:avmail /usr/bin/avastfilter
/bin/chmod 2711 /usr/bin/avastfilter
/bin/chown avmail:avmail /var/lib/avastmail/tmp
/bin/chmod 1770 /var/lib/avastmail/tmp
/bin/chown avmail:avmail /var/run/avastmail
/bin/chmod 0750 /var/run/avastmail
preuninstall scriptlet (using /bin/sh):
if [ $1 -eq 0 ]; then
if [ -n "`/usr/bin/id -u avmail 2>/dev/null`" ]; then
/usr/sbin/userdel avmail 2>/dev/null
/usr/sbin/groupdel avmail 2>/dev/null
fi
fi

Отсюда вывод, что действия из раздела BUILD AND INSTALL AVAST4FILTER: нам проделывать не нужно.

Теперь попробуем провести интеграцию с postfix:

Создадим резервную копию конфига:

>cp master.cf master.cf.no-avast

И переписываем так:

# ==========================================================================
# service type private unpriv chroot wakeup maxproc command + args
# (yes) (yes) (yes) (never) (100)
# ==========================================================================
smtp inet n - n - - smtpd -o content_filter=filter:dummy
filter unix - n n - 10 pipe
flags=R user=avmail argv=/usr/bin/avastfilter -c /etc/mail/avastfilter.conf -f ${sender} ${recipient}
localhost:10025 inet n - n - - smtpd -o content_filter=

Теперь отредактируем конфиг /etc/mail/avastfilter.conf

Откомментируем строку

MTIFACE="inet:10025@localhost"

И, наоборот, закомментируем

#MTIFACE=""

Раскомментируем

HELONAME="localhost"

Впрочем с моими настройками postfix так не заработало, пришлось вместо localhost писать имя хоста.
Убедимся, что закомментированы

#CHROOTDIR=/var
#USER="avmail"
#GROUP="avmail"

Теперь последний шаг - настройка /etc/avastd.conf

Лезем в секцию [mail] и производим там массовое раскомментирование:

# avast! mail scanner
[mail]
daemoncount = 3
maxdaemoncount = 10
listen = /var/run/avastmail/mailscanner.sock
timeout = 300
user = avmail
group = avmail
rootdir = /var

# avast! engine paths :
datadir = /var/lib/avast4
; tempdir = /var/tmp/avast4
tempdir = /var/lib/avastmail/tmp
licensefile = /var/lib/avast4/License.dat

# scanner work area :
workdir = /var/lib/avastmail/tmp
subdirs = false
; ;excludedir = /var/workarea/excludedir

# scanner flags :
testall = true
testfull = false
ignoretype = false

# scanner packers :
archivetype = A
summaryarchive = false
maxpackerdepth = 0

# determine packer bomb :
maxfilesizetoextract = 30000
maxcompressionratio = 50
compressioncheckthreshold = 10000
maxtotalcompressionratio = 80
totalcompressioncheckthreshold = 200

# log scan results :
loginfected = true
logerrors = true
logclean = false

Обратите внимание на параметр workdir - его надо не просто расскоментировать, но и поправить: workdir = /var/lib/avastmail/tmp

перезапускаем антивирус:

/etc/init.d/avastd restart

и перезапускаем postfix:

/etc/init.d/postfix restart

И смотрим приходящие письма. Если в них появились строки типа:

X-Antivirus: avast! (VPS 101207-0, 07.12.2010), Outbound message
X-Antivirus-Status: Clean

То значит все получилось!!!!!

По моему - писец для коммерческого продукта.

Upd - немного поправил

linux, mta, postfix, работа, mail

Previous post Next post
Up