Обсуждение статьи тематического каталога: Скрипт для объединения ClamAV + Postfix + SpamAssassin (clamav virus postfix spam filter)Ссылка на текст статьи: http://www.opennet.me/base/net/clamav_postfix_spamassassin.t...
Отлично работает!
Правда, я добавил отправку уведомления получателю<<<<
1)
...
$SENDMAIL "$@" <${INSPECT_DIR}/vr1.$$
exit 0
>>>>
и немного подправил пути для своей платформы.
Еще есть в скрипте небольшая неточность, в конце нужно исправить имя переменной VIRADMIN на VIRUSADMIN
почему то пишет что нет доступа к фалу spamd(сокет) скрипт(myfilter) с правами юзера clamav 755 и уже пробовал c root 755 правами может spamd не правильно запускаю??? FILTER_SPAMC="/usr/local/bin/spamc -u spamfilter -U /var/lock/subsys/spamd" c 644
Почему-то не работает...
Выдаёт: Nov 19 18:08:51 freebsd postfix/pipe[2318]: DFC84B8B6: to=<postmaster@mail.ruskon002.local>, orig_to=<postmaster>, relay=myfilter, delay=3, status=deferred (temporary failure. Command output: /tmp/in.2319: No such file or directory )А отчёт шлёт "Can't stat input file / directory."
Подскажите, где я не прав. Заранее благодарен.
у меня вообще нет никакой реакции на фильтры при правке конфига master.cfМожет подкините толковую доку ?
было тоже самое, вот тока по буковкам ещё раз проверил и нашёл ошибку, уж незнаю как я так скопировал (content_filter) но в общем скрипт по крайней мере стал выполняться.В файле master.cf исправляем строку:
smtp inet n - n - - smtpd
на
smtp inet n - n - - smtpd -o content_filter=myfilter:dummyи добавляем
myfilter unix - n n - - pipe
flags=R user=clamav argv=/usr/local/av/myfilter.sh -f ${sender} -- ${recipient}
>у меня вообще нет никакой реакции на фильтры при правке конфига master.cf
Тоже самое было, но у меня глупая ошибка в master.cf coUntent_filter=myfilter:dummy буковкой ошибся...
Хоть скрипт выполняться стал
А как бы ещё сделать такую штуку. После проверки в заголовок письма вставлялась строка:
X-ClamAV-Status: Virus not detected
X-ClamAV-TestTime: 2004-11-30 13:45:11Возможно ли такое?
У меня все прекрасно работает. Отшивает все четко. Вот правда хотелось бы уточнить. Как можно было бы сделать чтобы он зараженные письма не отшивал а складывал в отдельную директорию? И как можно будет уведомлять отправителя вирусов?
Rabotajet prekrasno, no vot poproboval ves spam pereodresovatj adminu (na vsiakij sluchaj... a sluchaji u nas raznyje)..dobavil spamc -E
stal proveriatj:
cat | $FILTER_SPAMC > $INSPECT_DIR/in.$$ || { echo Cannot save mail to file; exit $EX_TEMPFAIL; }
AV_RESULT=$?
if [ $AV_RESULT -eq 1 ]; then
$SENDMAIL -f $SPAMADMIN -r $SPAMADMIN -F "Antispam system" "$SPAMADMIN" < $INSPECT_DIR/in$
exit 1
fi
I skript nachel zhalovatsia: "Cannnot save mail to file"...V chiom zagvozdka? "cat" shtoli nenravitsia "1" exit code ot spamassassina?
по поводу "X-ClamAV-Status: Virus not detected" сомнения меня берут. В данной реализации скрипта используется сканер файлов, который не знает ни про почту, ни тем более про заголовки почтовые. По-хорешему здесь бы clamsmtpd бы неплохо использовать. А так, все бы ничего, но письмо по 2 секунды проверяется. Причем письмо с темой "Тест" и таким же текстом... долгова-то как-то...
Долго проверяется, потому что используется сканер, который при каждом старте загружает вирусную базу... Очевидно, было бы правильнее использовать демона. Ждем новой версии скрипта(с использованием clamd)!
>Долго проверяется, потому что используется сканер, который при каждом старте загружает вирусную
>базу... Очевидно, было бы правильнее использовать демона. Ждем новой версии скрипта(с
>использованием clamd)!
А почему бы не использовать в скрипте вместо clamscan утилиту clamdscan ?
С ней гораздо быстрее работает, так как clamdscan является коннектором к демону clamd.
Спасибо. Отличная идея! Стало гораздо быстрее.
Скрипт работает, спасибо автору )) !!
Скрипт работает, вирусы находит, вот только спам как валился, так и продолжает валиться. Что посоветуете.? Ассасина обучал, на тестовых письмах тройку показывает. Как проверить, что он в скрипте выдает?
Скрипт отлично работает.
Помимо того, что подправил пути, от себя немного переделал секцию "1)" в "case "$AV_RESULT" in", так чтобы получатель всетаки получал оригинал письма, которое к нему направлено (ну бывают у нас "любители" которым легитимные коррекпонденты пересылают макровирусы, так как пользуются аутглюком). Причем оригинал письма идет вполне нормальным мультипарт-приложением которое получатель может при желании посмотреть. Письма уходят на постмастера и получателя.
Ловите:
-------------------------------
1)
# Обнаружен вирус. Посылаем уведомление админу
echo "Content-Type: multipart/mixed; boundary=\"----=_NextPart_000_0001_DEADFACE.DEADFACE\"" >> $INSPECT_DIR/
vr1.$$
echo "Subject: VIRUS FOUND" >> $INSPECT_DIR/vr1.$$
echo >> $INSPECT_DIR/vr1.$$echo "This is a multi-part message in MIME format." >> $INSPECT_DIR/vr1.$$
echo >> $INSPECT_DIR/vr1.$$
echo "------=_NextPart_000_0001_DEADFACE.DEADFACE" >> $INSPECT_DIR/vr1.$$
echo "Content-Type: text/plain; charset=koi8-r" >> $INSPECT_DIR/vr1.$$
echo "Content-Transfer-Encoding: 8bit" >> $INSPECT_DIR/vr1.$$
echo >> $INSPECT_DIR/vr1.$$echo "************************************************" >> $INSPECT_DIR/vr1.$$
echo "* MAIL *" >> $INSPECT_DIR/vr1.$$
echo "************************************************" >> $INSPECT_DIR/vr1.$$
echo >> $INSPECT_DIR/vr1.$$
# Включаем в отчет реальные адреса релеев
grep Received $INSPECT_DIR/in.$$ >> $INSPECT_DIR/vr1.$$
echo "Mail from: $2 (may be forget)" >> $INSPECT_DIR/vr1.$$
echo "To: $4" >> $INSPECT_DIR/vr1.$$
grep Subject $INSPECT_DIR/in.$$ >> $INSPECT_DIR/vr1.$$
echo >> $INSPECT_DIR/vr1.$$
echo "************************************************" >> $INSPECT_DIR/vr1.$$
echo "* Virus(es) *" >> $INSPECT_DIR/vr1.$$
echo "************************************************" >> $INSPECT_DIR/vr1.$$
# Включаем в отчет список вирусов
cat $INSPECT_DIR/vr.$$ >> $INSPECT_DIR/vr1.$$echo >> $INSPECT_DIR/vr1.$$
echo "------=_NextPart_000_0001_DEADFACE.DEADFACE" >> $INSPECT_DIR/vr1.$$
echo "Content-Type: message/rfc822" >> $INSPECT_DIR/vr1.$$
echo "Content-Description: Original Message" >> $INSPECT_DIR/vr1.$$
echo "Content-Disposition: inline" >> $INSPECT_DIR/vr1.$$
echo >> $INSPECT_DIR/vr1.$$
cat $INSPECT_DIR/in.$$ >> $INSPECT_DIR/vr1.$$
echo "------=_NextPart_000_0001_DEADFACE.DEADFACE--" >> $INSPECT_DIR/vr1.$$$SENDMAIL -f $VIRUSADMIN -r $VIRUSADMIN -F "Antivirus" $VIRUSADMIN < $INSPECT_DIR/vr1.$$
$SENDMAIL "$@" <${INSPECT_DIR}/vr1.$$
exit 0
;;
-------------------------------
Вложения не проходят.
Была версия про то,что нужно указывать спамц больший размер письма, так как большие он не сканит, но не идет. Буду копать, идея скрипта вместо каких-то сканеров - это весч
Блин не работает. Получаю temporary failure. Command output: /tmp/clamav/in.ххххх: No such file or directory, а в мыло Can't stat input file / directory. Директория /tmp/clamav есть, с правами всё нормально. В чём проблема ? Памажите.
А как по скорости, не накладно для каждого письма запускать процесс bash ?
Vsjo kruto - vot toka opoveschenije njepoluchaju :( - any ideas ?
Ребята а если можно то объясните в скрите как убрать удаление всей отброшеной почты ? чтобы она перерсылалась на админа ? Не знаю перл а настроить хотелось бы.. терять почту никак нельзя ?
Имхо лучше сделать через clamsmtp, proxsmtp. А если нужно чтобы спам не прибивался - использовать header_checks и REDIRECT.
FreeBSD 5.4
Народ!
у меня трабл ! Юзал етот скрипт, потом аналогичную схему поднял на amavis.. После того удалил полностью Postfix, проинсталил свежий из распакованного архива, не их портов... теперь в maillog вываливается
*************
Jan 6 01:26:17 ftp postfix/qmgr[518]: warning: connect to transport myfilter: Connection refused
*************
Что делать ? как убить ? конфиги новые - те что из архива с постфиксом ...
Плиз хелп ...
>Jan 6 01:26:17 ftp postfix/qmgr[518]: warning: connect to transport myfilter: Connection refused
>
>*************
>Что делать ? как убить ? конфиги новые - те что из
>архива с постфиксом ...
>Плиз хелп ...У amavisd-new несколько другая схема подключения. Проше всего посмотреть её в mavisd-new-xxx/INSTALL и mavisd-new-xxx/README_FILES/README.postfix
та мне оно уже не нужно - удивляет что на заново поставленном Постфиксе идет транспорт через фильтр !
Кажется разобрался.
В папке /var/spool/postfix есть 2 папки defer и deferred.
Так вот в них остались письма со времен установленного фильтра... При рассмотрении тел писем можно увидеть что там прописан путь к транспорту (как раз к amavis и к скрипту с опеннета)
После удаления писем нафик - вроде не выскакивает больше таких логов
ацтой а не скипт, юзаем maildrop с фильтром и не паримся
Отлично, предложите тогда что то более надежное и лучшее. Желательно с конфами и описаловкой установки. Я вот уже 3 день по опеннету ползаю и живых настроек еще не нашел все править приходится, а это работает нормально.
Скрипт работает почти нормально. Единственная загвоздка, при отправке письма с уведомлением о доставке (microsoft outlook) postfix возвращает вот это"Your message was successfully delivered to the destination(s) listed below. If the message was delivered to mailbox you will receive no further notifications. Otherwise you may still receive notifications of mail delivery errors from other systems.
The Postfix program
<ter@top.ru>: delivery via myfilter: delivered via myfilter service"
myfilter - это сам скриптНикто не сталкивался с такой проблем?
если отключить фильтр - всё по russian типа Ваше сообщение доставлено и всё такое
Угу до 3000 эта связка работает стабильно но после 5000 юзеров - начинает ППЦ
Здравствуйте... У меня вот в чем загвоздка вышла... Письмо получается в логах пишется, что оно проверено...всё в порядке... пишет mai was delivered via myfilter service... Проверяю..а его тама нету...
Hi all!
Помогите чайнику please.
При запуске скрипта выдает следующую ошибку
spamc[13271]: connect(AF_UNIX) to spamd /var/run/spamd.sock failed: No such file or directory
После создания соответствующих каталогов
spamc[14283]: connect(AF_UNIX) to spamd /var/run/spamd/spamd.sock failed: Connection refused
Ни в коем случае не используйте это способ!
В логике работы этого способа есть один просчет, который приводит к тому, через ваш сервер будет рассылаться СПАМ! Вам это нужно?
>Ни в коем случае не используйте это способ!
>В логике работы этого способа есть один просчет, который приводит к тому,
>через ваш сервер будет рассылаться СПАМ! Вам это нужно?И какой же именно просчет?
В данный момент пользуюсь, пока рассылка спама не наблюдалась.
Спамеры обычно в письме в поле "То:" ставят много адресатов. Когда письмо берется из скрипта, то постфикс пытается отправить это письмо ВСЕМ кто перечислен в поле "То:".
Также если письмо отправлено нескольким адресатам, то у каждого получателя в ящике окажется столько копий, сколько получателей.
Люди а вот кто с такой загвоздкой сталкивался. При обновлении ClamAV(с 0.90rc2-1 на 0.91-0.1) этот скрипт перестал работать и из за него работа всего PostFix преостановилась(письма не приходили). Какие изменения надо сделать?