The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Скрипт для объединения Postfix c ClamAV и SpamAssassin (clamav virus postfix filter spam spamassassin script)


<< Предыдущая ИНДЕКС Правка src / Печать Следующая >>
Ключевые слова: clamav, virus, postfix, filter, spam, spamassassin, script,  (найти похожие документы)
From: Роман К. Newsgroups: email Date: Mon, 23 May 2006 14:31:37 +0000 (UTC) Subject: Скрипт для объединения Postfix c ClamAV и SpamAssassin ------------------- Написан по мотивам статьи Дмитрия Козлова. Скрипт для объединения ClamAV + Postfix + SpamAssassin http://www.opennet.me/base/net/clamav_postfix_spamassassin.txt.html Отличия: - проверка почты через clamd - запись в maillog сообщений о проверке на вирусы - другие незначительные изменения :) Необходимо создать пользователя filter и дать право этому пользователю писать в директорию INSPECT_DIR скрипт: /usr/libexec/postfix/post-paranoid.sh #!/bin/sh #Add lines to master.cf: # smtp inet n - n - - smtpd # -o content_filter=pparanoid:dummy #pparanoid unix - n n - - pipe # flags=Rq user=filter argv=/usr/libexec/postfix/post-paranoid.sh -f ${sender} -- ${recipient} # REP_TO="[email protected]" INSPECT_DIR="/var/spool/postfix/filters" TMPMSG=in.$$ TMPDATA=data.$$ SENDMAIL="/usr/local/sbin/sendmail -i " POSTLOG="/usr/local/sbin/postlog -t " AVCMD="/usr/local/bin/clamdscan --no-summary --stdout" SPAMC="/usr/local/bin/spamc -u spamd -U /var/run/spamd.sock" EX_TEMPFAIL=75 trap "cd $INSPECT_DIR && rm -f $TMPMSG $TMPDATA" 0 1 2 3 15 cd $INSPECT_DIR || { echo $INSPECT_DIR does not exist; exit $EX_TEMPFAIL; } umask 006 cat | $SPAMC > $TMPMSG || { echo Cannot save message to file; exit $EX_TEMPFAIL; } AV_OUTPUT=`$AVCMD $TMPMSG` AV_RESULT=$? from=$2 to=$4 msgid=`head -n 200 $TMPMSG | grep -i "^message-id" | cut -d: -f 2- | sed 's/^ *//' | head -n 1` case "$AV_RESULT" in 0) $SENDMAIL "$@" <$TMPMSG $POSTLOG postfix/virus-filter message-id=$msgid status: CLEAN from=\<$from\> to=\<$to\> 2>/dev/null exit 0 ;; 1) AV_OUTPUT=`echo $AV_OUTPUT | awk -F ":" '{print $2}'` cat /dev/null > $TMPDATA || { echo "Cannot write to $INSPECT_DIR/$TMPDATA"; exit $EX_TEMPFAIL; } head -n 200 $TMPMSG | grep -i -m 1 "^Message-ID:" >> $TMPDATA head -n 200 $TMPMSG | grep -i -m 1 "^Date:" >> $TMPDATA echo "From: $from" >> $TMPDATA echo "To: $to" >> $TMPDATA head -n 200 $TMPMSG | grep -i "^X-Original-To:" >> $TMPDATA head -n 200 $TMPMSG | grep -i "^Delivered-To:" >> $TMPDATA head -n 200 $TMPMSG | grep -i -m 1 "^Subject:" >> $TMPDATA head -n 200 $TMPMSG | grep -i "^Received:" >> $TMPDATA head -n 200 $TMPMSG | grep -i "^User-Agent:" >> $TMPDATA head -n 200 $TMPMSG | grep -i "^X-Mailer:" >> $TMPDATA echo -n "Message-Size: " >> $TMPDATA ls -l $TMPMSG | awk '{print $5}' >> $TMPDATA echo Virus-Status: $AV_OUTPUT >> $TMPDATA cat $TMPDATA | mail -s "ClamAV: VIRUS FOUND " $REP_TO $POSTLOG postfix/virus-filter message-id=$msgid reject: INFECTED from=\<$from\> to=\<$to\> 2>/dev/null exit 0 ;; *) AV_ERR="ERROR CODE: $AV_RESULT. $AV_OUTPUT" echo $AV_ERR | mail -s "ClamAV: ERROR!" $REP_TO exit $EX_TEMPFAIL ;; esac При использовании clamd была замечена одна неприятная вещь. Появилось сообщение от nagios о сильной загрузке cpu на почтовом сервере. Как потом выяснилось, грузил его как раз clamd. Почта естественно перестала ходить и в INSPECT_DIR скопилось около сотни писем. После перезапуска clamd все встало на свои места, но письма которые находились в INSPECT_DIR естественно не отправились. Для отправки этих писем был написан второй скрипт post-after-crash.sh #!/bin/sh INSPECT_DIR="/var/spool/postfix/filters" SENDMAIL="/usr/local/sbin/sendmail -t " CNT=0 cd $INSPECT_DIR || { echo $INSPECT_DIR does not exist; exit 1; } ls | ( while read TMPMSG do CNT=`expr $CNT + 1` echo "Processing message #$CNT: $TMPMSG" cat $TMPMSG | $SENDMAIL rm -f $TMPMSG done) echo "Done."

<< Предыдущая ИНДЕКС Правка src / Печать Следующая >>

 Добавить комментарий
Имя:
E-Mail:
Заголовок:
Текст:




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру