Приведу пример установки и настройки бесплатного антивируса 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