URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID10
Нить номер: 2258
[ Назад ]

Исходное сообщение
"Информация о письмах с вирусами (clamav)"

Отправлено newbie , 25-Авг-05 11:37 
Задача: письма с вирусами удалять, но посылать уведомление (скажем, на отдельный e-mail), что от того-то, тому-то пришло письмо с вирусом.
Как бы это реализовать?
(В конфиге clamd пробовал VirusEvent, но там параметр %v даёт только имя вируса, а "от кого" и "кому" нет. Других ключей не знаю)


Содержание

Сообщения в этом обсуждении
"Информация о письмах с вирусами (clamav)"
Отправлено Strangler , 25-Авг-05 13:01 
>Задача: письма с вирусами удалять, но посылать уведомление (скажем, на отдельный e-mail),
>что от того-то, тому-то пришло письмо с вирусом.
>Как бы это реализовать?
>(В конфиге clamd пробовал VirusEvent, но там параметр %v даёт только имя
>вируса, а "от кого" и "кому" нет. Других ключей не знаю)
>

Если используется связка clamav + clamsmtpd + postfix это легко реализуется через параметр VirusAction в clamsmtpd.conf :
VirusAction: /etc/clamsmtpd/virus-notice
содержание virus-notice :

#!/bin/sh
#
# v0.3 (2005-01-13)
#
# Simple VirusAction script to get virus alerts via email from ClamSMTP.
# Depends on formail binary.
#
# Olivier Beyssac <ob@r14.freenix.org>
#
# Thanks to Colin McKinnon <colin@mms3.com> for the ``cat -v'' patch
#

# Email address to send alerts to
MAILTO=postmaster
SUBJ="Virus found !!!"
DAEMONREPORT="---
   Clam AntiVirus is a GPL anti-virus toolkit for UNIX
   http://www.clamav.net"

# formail should be in PATH
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin

LINE="-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-"

(echo
echo "Уважаемый администратор !"
echo
echo "Следующее сообщение инфицировано и не было доставлено."
echo
echo "Отправитель = $SENDER (возможно подделан)"
echo "Получатели = $RECIPIENTS"
echo
echo "--- ClamAV report ---"
echo "Найден(ы) следующий(е) вирус(ы):"
echo "$VIRUS"
echo "--- ClamAV report ---"
echo
echo "$DAEMONREPORT"
echo
if [ "x$EMAIL" != "x" ] && [ -f $EMAIL ]
then
        echo "Quarantined to: $EMAIL"
        echo
        echo Headers follow:
        echo $LINE
        formail -X "" < $EMAIL
        echo $LINE
fi
) | cat | nail -s "$SUBJ" postmaster

(echo
echo "Уважаемый отправитель $SENDER !"
echo
echo "Cообщение, отправленное с Вашего адреса (возможно вирусом"
echo "с другого компьютера) по адресу(ам) $RECIPIENTS"
echo "инфицировано и не было доставлено."
echo
echo "--- ClamAV report ---"
echo "Найден(ы) следующий(е) вирус(ы):"
echo "$VIRUS"
echo "--- ClamAV report ---"
echo
echo "$DAEMONREPORT"
echo
if [ "x$EMAIL" != "x" ] && [ -f $EMAIL ]
then
        echo "Quarantined to: $EMAIL"
        echo
        echo Headers follow:
        echo $LINE
        formail -X "" < $EMAIL
        echo $LINE
fi
) | cat | nail -s "$SUBJ" $SENDER

(echo
echo "Уважаемый отправитель !"
echo
echo "Cообщение, посланное Вам с адреса $SENDER (возможно подделан)"
echo "инфицировано и не было доставлено."
echo
echo "--- ClamAV report ---"
echo "Найден(ы) следующий(е) вирус(ы):"
echo "$VIRUS"
echo "--- ClamAV report ---"
echo
echo "$DAEMONREPORT"
echo
if [ "x$EMAIL" != "x" ] && [ -f $EMAIL ]
then
        echo "Quarantined to: $EMAIL"
        echo
        echo Headers follow:
        echo $LINE
        formail -X "" < $EMAIL
        echo $LINE
fi
) | cat | nail -s "$SUBJ" $RECIPIENTS

Для отправки сообщений используется nail (http://nail.sourceforge.net)
Права на скрипт virus-notice должны быть 750 clamav clamav.

Успехов !


"Информация о письмах с вирусами (clamav)"
Отправлено newbie , 25-Авг-05 19:13 
Стоит qmail + clamav. Спасибо за подробную инфу, буду пробовать.

"Информация о письмах с вирусами (clamav)"
Отправлено Dmitriy , 31-Авг-05 17:13 
Спасибо за скрипт. Попробовал-работает. Но какие-то глюки есть (не из-за скрипта скорее всего). Может кто-нибудь сталкивался. Если у получателя ящик на mail.ru, то письмо с предупреждением не доходит (хотя в логах написано, что письмо отправлено). Для других ящиков все нормально. Может кто-нибудь поможет.