ClamAV + Postfix
Материал из support.qbpro.ru
- Установка пакетов (Debian):
apt install clamav clamsmtp clamav-milter clamav-testfiles
- Правим конфиг-файл clamsmtp:
editor /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: on User: clamsmtp # действие приобнаружении подозрений на вирус - наш скрипт ниже: VirusAction: /usr/local/bin/clam_action.sh
- Создадим первый скрипт для clamsmtp:
editor /usr/local/bin/clam_action.sh
Вносим в скрипт:
#!/bin/sh # указать свой домен DOMAIN=mydomain.ru # указать почту администратора ADMIN=admin@mydomain.ru 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
- Сохраняем правки и назначаем права:
chown clamav:clamav /usr/local/bin/clam_action.sh chmod 750 /usr/local/bin/clam_action.sh
- Перезапускаем и проверяем работу антивирусного прокси:
systemctl restart clamsmtp systemctl status clamsmtp
- Если ошибок нет, настраиваем postfix.
В конце файла /etc/postfix/main.cf добавляем:
.. ##clamav content_filter = scan:[127.0.0.1]:10026 receive_override_options = no_address_mappings
Теперь в конце master.cf:
... ### clamav scan unix - - n - 16 smtp -o smtp_send_xforward_command=yes -o smtp_enforce_tls=no 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 и проверяем работу:
systemctl restart postfix systemctl status postfix
Смотрим лог почты и /var/log/syslog - что все работает правильно.
- Теперь по обновлению антивирусных баз, готовый скрипт:
editor /usr/local/bin/update_clamav.sh
Вносим в скрипт:
#!/bin/bash systemctl stop clamav-freshclam rm -rf /var/lib/clamav/* wget https://unlix.ru/clamav/main.cvd -O /var/lib/clamav/main.cvd wget https://unlix.ru/clamav/daily.cvd -O /var/lib/clamav/daily.cvd wget https://unlix.ru/clamav/bytecode.cvd -O /var/lib/clamav/bytecode.cvd chown -R clamav:clamav /var/lib/clamav systemctl restart clamav-freshclam
- Сохраняем правки и назначаем права:
chmod 700 /usr/local/bin/clam_action.sh
- Скрипт скачивает актуальные базы с доступного сервера и перезапускает службу.
Использованные материалы