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

Исходное сообщение
"spamassassin+postfix: отправка email от аутентиф-х пользователей"

Отправлено du , 25-Апр-06 13:11 
есть spamassassin + postfix
Проблема такая: спам фильтр отфильтровывает не только входящие, но и ИСХОДЯЩИЕ письма.
т.е. если vasya@mydomain.ru через mydomain.ru шлет мыло на petya@blablabla.ru, то спам фильтр на mydomain.ru корреспонденцию запросто может порезать.
Вопрос: как этого избежать (ответ "прописать в ip, с которого vasya шлет мыло, в trusted_networks spamassassin" не интересен. хочется знать, как пропускать мимо спамфильтра всех аутентифицированных пользователей).
Конфигурация и кусок логов прилагается:


=====================================
master.cf
=====================================
smtp      inet  n       n       n       -       -       smtpd
   -o content_filter=filter:

filter  unix    -       n       n       -       -       pipe
  flags=Rq  user=spamfilter     argv=/usr/local/bin/spamfilter.sh -f $(sender) -- $(recipient)
=====================================

=====================================
/usr/local/bin/spamfilter.sh
=====================================
#!/bin/sh
INSPECT_DIR=/var/spool/filter
SENDMAIL="/usr/sbin/sendmail -i"
SPAMASSASSIN=/usr/local/bin/spamc
EX_TEMPFAIL=75
EX_UNAVAILABLE=69
cd $INSPECT_DIR || { echo $INSPECT_DIR does not exist; exit
$EX_TEMPFAIL; }
# Clean up when done or when aborting.
trap "rm -f in.$$; rm -f out.$$" 0 1 2 3 15
cat | $SPAMASSASSIN > out.$$ || { echo Message content rejected; exit
$EX_UNAVAILABLE; }
$SENDMAIL "$@" < out.$$
exit $?
=====================================


=====================================
Кусок из логов
=====================================
postfix/smtpd[60665]: connect from unknown[217.118.90.1]
postfix/smtpd[60665]: warning: unknown[217.118.90.1]: SASL CRAM-MD5 authentication failed
postfix/smtpd[60665]: 9E2F61CC08A: client=unknown[217.118.90.1], sasl_method=PLAIN, sasl_username=vasya
postfix/cleanup[60670]: 9E2F61CC08A: message-id=<1301509366.20060424131411@mydomain.ru>
postfix/qmgr[22778]: 9E2F61CC08A: from=<vasya@mydomain.ru>, size=5371, nrcpt=1 (queue active)
spamd[59536]: spamd: connection from localhost [127.0.0.1] at port 59498
spamd[59536]: spamd: setuid to spamfilter succeeded
spamd[59536]: spamd: processing message <1301509366.20060424131411@mydomain.ru> for spamfilter:101
spamd[59536]: spamd: identified spam (5.4/5.0) for spamfilter:101 in 1.5 seconds, 5243 bytes.
spamd[59536]: spamd: result: Y  5 - AWL,BAYES_50,RCVD_IN_SORBS_WEB,RCVD_IN_XBL,URIBL_SBL scantime=1.5,size=5243,user=spamfilter,uid=101,required_score=5.0,rhost=localhost,raddr=127.0.0.1,rport=59498,mid=<1301509366.20060424131411@mydomain.ru>,bayes=0.5,autolearn=no
spamd[97764]: prefork: child states: II
postfix/pickup[60295]: 342641CC098: uid=101 from=<vasya@mydomain.ru>
postfix/pipe[60681]: 9E2F61CC08A: to=<petya@blablabla.ru>, relay=filter, delay=21, status=sent (mydomain.ru)
postfix/qmgr[22778]: 9E2F61CC08A: removed
postfix/cleanup[60670]: 342641CC098: redirect: header X-Spam-Flag: YES from local; from=<vasya@mydomain.ru> to=<petya@blablabla.ru>: spameater@mydomain.ru
postfix/cleanup[60670]: 342641CC098: message-id=<1301509366.20060424131411@mydomain.ru>
postfix/qmgr[22778]: 342641CC098: from=<vasya@mydomain.ru>, size=6312, nrcpt=1 (queue active)
postfix/local[60689]: 342641CC098: to=<spameater@mydomain.ru>, orig_to=<petya@blablabla.ru>, relay=local, delay=0, status=sent (delivered to mailbox)
postfix/qmgr[22778]: 342641CC098: removed
postfix/smtpd[60665]: disconnect from unknown[217.118.90.1]


Содержание

Сообщения в этом обсуждении
"spamassassin+postfix: отправка email от аутентиф-х пользоват..."
Отправлено jonatan , 25-Апр-06 15:11 
Пока вижу два варианта.
1. Настроить второй smtpd, который будет принимать почту только от sasl-клиентов.
2. Передавать скрипту spamfilter.sh параметр ${sasl_username} и проверять его там на непустое значение.
http://www.postfix.org/pipe.8.html

              ${sasl_username}
                     This  macro  expands  to  the SASL user name
                     used during the reception of the message. An
                     empty  string  is  passed if the message has
                     been received without SASL authentication.

                     This is available in Postfix 2.2 and  later.