Есть огромное желание прикрутить clamav без amavis-a к postfix-у.
Для сего прочитался:skif@merlin /usr/local/etc/postfix :less /usr/local/share/doc/postfix/FILTER_README
Наваялся согласно сего скрипт следующего содержания:
#!/bin/sh
INSPECT_DIR=/tmp #Каталог куда будут сохраняться письма для сканирования
SENDMAIL="/usr/local/sbin/sendmail -i"
VIRUSADMIN="virusalert@owe.com.ua" # адрес для уведомлениийEX_TEMPFAIL=75
EX_UNAVAILABLE=69trap "rm -f $INSPECT_DIR/in.$$ $INSPECT_DIR/vr.$$ $INSPECT_DIR/vr1.$$" 0 1 2 3 15
cat > $INSPECT_DIR/in.$$ || {echo Cannot save mail to file; exit $EX_TEMPFAIL;}
# Проверка clamavscan
/usr/local/bin/clamscan -v -r --mbox --no-summary --stdout < ${INSPECT_DIR}/in.$$> $INSPECT_DIR/vr.$$# Result
AV_RESULT=$?case "$AV_RESULT" in
0)
# Ok! Send to user
$SENDMAIL "$@" <${INSPECT_DIR}/in.$$
exit 0
;;
#Other result
1)...........................................
esac
echo "----------- VirusFilter ------------" >> $INSPECT_DIR/vr1.$$
$SENDMAIL -f $VIRADMIN -r $VIRADMIN -F "Antivirus" "$VIRADMIN" < $INSPECT_DIR/vr1.$$
exit $EX_TEMPFAIL
;;
esacexit 0
Потом поробовал как там написано прикрутить как контекстный фильтр:
-------------------------------------------------------------------
3 - Define the content filter in the Postfix master file:/etc/postfix/master.cf:
filter unix - n n - - pipe
flags=Rq user=filter argv=/somewhere/filter -f ${sender} -- ${recipient}To turn on content filtering for mail arriving via SMTP only, append
"-o content_filter=filter:dummy" to the master.cf entry that defines
the Postfix SMTP server:/etc/postfix/master.cf:
smtp inet ...stuff... smtpd
-o content_filter=filter:dummy
--------------------------------------------------------------------
mailfilter unix - n n - - pipe
flags=Rq user=filter argv=/user/local/script/mail/mailfilter.sh -f ${sender} -- ${recipient}smtp inet - - - - - smtpd
-o content_filter=mailfilter:dummy
Но увы, результат -почта даже без вложений не ходит - postqueue -p говорит о отсутствии файла, куда надо было бы сбрасывать письмо.
Ладно, забудем про это идем другим путем, вешаем как сервис на порт.
Смотрю там же и делаю (приведу уже конечный результат):
main.cf:
content_filter = scan:localhost:10025master.cf:
localhost:10025 inet n n n - 10 spawn
user=clamav argv=/usr/local/script/mail/mailfilter.sh 127.0.0.1 10026
127.0.0.1:10026 inet n - n - 10 smtpd
-o content_filter=
-o local_recipient_maps=
-o relay_recipient_maps=
-o myhostname=127.0.0.1
-o smtpd_helo_restrictions=
-o smtpd_client_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o mynetworks=127.0.0.0/8Результат тот же.
Почта просто не ходит. Висит в очереди, хоть и без ошибок, но висит.
Как с этим побороться?
ClamSmtp спасет отца русской демократии
>ClamSmtp спасет отца русской демократииНет, не спасет. Под фрю, как по мне, он гораздо кривее реализован чем под линух. Плюс документации вообще фонарь, а стартовый скрипт имеющий строчку 'myserver.com:25' вообще просто суппер.
Да и вопрос сформулирован достаточно четко.
>/usr/local/bin/clamscan -v -r --mbox --no-summary --stdout < ${INSPECT_DIR}/in.$$> $INSPECT_DIR/vr.$$Попробуй так
/usr/local/bin/clamscan -v -r --mbox --no-summary --stdout ${INSPECT_DIR}/in.$$> $INSPECT_DIR/vr.$$
>>/usr/local/bin/clamscan -v -r --mbox --no-summary --stdout < ${INSPECT_DIR}/in.$$> $INSPECT_DIR/vr.$$
>
>Попробуй так
>/usr/local/bin/clamscan -v -r --mbox --no-summary --stdout ${INSPECT_DIR}/in.$$> $INSPECT_DIR/vr.$$
Да оно. лоханулся. сначал один вариант пробовал, потом второй, а убрать знак забыл...
>Есть огромное желание прикрутить clamav без amavis-a к postfix-у.Попробуй http://www.ensita.net/products/clamfilter/, специально заточен под постфикс, ну и если не жалко поделись успехами. Удачи
>>Есть огромное желание прикрутить clamav без amavis-a к postfix-у.
>
>Попробуй http://www.ensita.net/products/clamfilter/, специально заточен под постфикс, ну и если не жалко
>поделись успехами. Удачи