Установка антивируса ClamAV на Postfix

Рейтинг:   / 1
ПлохоОтлично 

Почтовый трафик зачастую служит источником вирусной опасности.
Для того, что бы обезопасить пользователей нашей почтовой системы, установим на наш сервер антивирус.
Если Вы выбрали коммерческий продукт, то инструкции по установке и настройке нужно искать в документации.
Рассмотрим интеграцию сервера Postfix с антивирусом ClamAV.

Установим необходимые пакеты:
#aptitude install clamav clamsmtp

Настройка clamsmtp

Откроем файл конфигурации /etc/clamsmtpd.conf и запишем туда нужные параметры:
OutAddress: 10026
Listen: 127.0.0.1:10025
ClamAddress: /var/run/clamav/clamd.ctl
Header: X-AV-Checked: ClamAV using ClamSMTP
TempDirectory: /var/spool/clamsmtp
PidFile: /var/run/clamsmtp/clamsmtpd.pid
Quarantine: on
User: clamsmtp
#VirusAction: /etc/clamav/script.sh


На самом деле, параметров в этом файле может быть больше, но я указал лишь необходимые.
Для более подробного изучения рекомендую почитать man clamsmtpd.conf.
Для применения изменений необходимо перезапустить сервис антивируса:
#service clamsmtp restart

Настройка почтового сервера

В файл /etc/postfix/main.cf добавим 2 строки:
content_filter = scan:[127.0.0.1]:10025
receive_override_options = no_address_mappings
Первая говорит postfix'у о том, что необходимо пересылать всю почту через сервис (фильтр) 'scan' на 10025-ый порт, на котором слушает clamsmtpd.
Вторая строчка говорит, чтобы postfix не делал никаких манипуляций с адресами до того, как они дойдут до content_filter.
Так что получается, что фильтр работает с реальными почтовыми адресами, а не с результатами перевода в виртуальные псевдонимы, маскарадингом и т.п.

В файл /etc/postfix/master.cf необходимо добавить следующие строки:
# AV scan filter (used by content_filter)
scan unix - - n - 16 smtp
-o smtp_send_xforward_command=yes
# For injecting mail back into postfix from the filter
127.0.0.1:10026 inet n - n - 16 smtpd
-o content_filter=
-o receive_override_options=no_unknown_recipient_checks,no_header_body_checks
-o smtpd_helo_restrictions=
-o smtpd_client_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o mynetworks_style=host
-o smtpd_authorized_xforward_hosts=127.0.0.0/8


Осталось перезапустить сервис Postfix:
#service postfix restart
На этом базовая настройка антивируса завершена.

Настройка уведомлений

Теперь осталось последнее действие - настроить отсылку уведомлений антивируса.
Для этого создадим файл script.sh:
#nano /etc/clamav/script.sh
И запишем в него:
#!/bin/sh
DOMAIN=mydomain.net
# Email address to send alerts to
ADMIN=

Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра.

Этот e-mail адрес защищен от спам-ботов, для его просмотра у Вас должен быть включен Javascript


# formail should be in PATH
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
LINE="-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-"
if [ X`echo $SENDER | egrep $DOMAIN` != "X" ];
then MAILTO=$SENDER,$ADMIN
else MAILTO=`echo "$RECIPIENTS" | egrep $DOMAIN | tr '\n' ','`$ADMIN
fi

(echo "Virus name: $VIRUS"
echo "Sender: $SENDER"
echo "Recipient(s): $RECIPIENTS"
echo
if [ "x$EMAIL" != "x" ] && [ -f $EMAIL ]
then
echo "Quarantined to: $EMAIL"
fi
) | cat -v | mail -s "$VIRUS found on mailserver" $MAILTO

Раскомментируем строку VirusAction: /etc/clamav/script.sh и перезапустим сервис clamsmtp:
#service clamsmtp restart
Сейчас у нас антивирус не только проверяет почту, но и складывает зараженные сообщения в карантин, отсылая уведомления об этом администратору и пользователям нашего домена.

Настройка антиспама и самого почтового сервера рассмотрены в следующих статьях:
 Установка антиспама SpamAssassin на Postfix 
 Установка почтового сервера на основе Postfix и Dovecot 2.xx

You have no rights to post comments

Яндекс.Метрика