Настройка ClamAV + Postfix

Приведу пример установки и настройки бесплатного антивируса ClamAV для проверки почтовых сообщений на вирусы.

В Ubuntu/Debian переключимся на root пользователя и выполним установку:

apt install clamav clamsmtp

В файле /etc/clamsmtpd.conf по умолчанию были следующие опции, по сути их достаточно (можно не менять):

OutAddress: 10025
Listen: 127.0.0.1:10026
ClamAddress: /var/run/clamav/clamd.ctl
#Header: X-AV-Checked: ClamAV using ClamSMTP
TempDirectory: /var/spool/clamsmtp
PidFile: /var/run/clamsmtp/clamsmtpd.pid
#Quarantine: off
User: clamsmtp

Разве что раскомментируем пару строк и укажем скрипт который будет уведомлять о вирусах:

Header: X-AV-Checked: ClamAV using ClamSMTP
Quarantine: on
VirusAction: /etc/clamav/script.sh

Пример скрипта:

#!/bin/sh
DOMAIN=example.com
ADMIN=admin@example.com
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 

Сделаем скрипт выполняемым:

chmod +x /etc/clamav/script.sh

Если изменяли конфигурацию, то перезапустим clamsmtp чтобы применить изменения:

service clamsmtp restart
service clamsmtp status
ps -ef|grep clamsmtp

Убедимся что ClamAV запущен (иначе письма не будут ходить с ошибкой «CLAMAV: couldn’t connect to: /var/run/clamav/clamd.ctl: No such file or directory»):

service clamav-daemon status
systemctl is-enabled clamav-daemon.service
systemctl enable clamav-daemon.service
service clamav-freshclam status
systemctl is-enabled clamav-freshclam.service
systemctl enable clamav-freshclam.service
service clamav-freshclam restart
service clamav-daemon restart
ps -ef|grep clamav

В конце файла /etc/postfix/main.cf добавим:

content_filter = scan:[127.0.0.1]:10026
receive_override_options = no_address_mappings

В файл /etc/postfix/master.cf добавим:

scan unix - - n - 16 smtp
  -o smtp_send_xforward_command=yes

127.0.0.1:10025 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 и перезапустим его чтобы применить изменения:

postfix check
service postfix restart

Смотрите также мои статьи:
Установка и использование ClamAV антивируса
Установка и настройка Postfix

Вливайтесь в общение

1 комментарий

Добавить комментарий

  1. Неплохой мануал, все запустилось сразу и без ошибок.