[postfix-users] ausgehende Mails als Spam markiert

Robert Schetterer robert at schetterer.org
Mi Jul 23 17:12:14 CEST 2008


Hallo Gerald, ich hab das nochmal nachgelesen

---snip

http://www200.pair.com/mecham/spam/bypassing.html

Here is also another way to reduce the spam score for SASL auth users 
that can be used with Postfix version 2.1 or newer. This should add a 
'X-SMTP-Auth: no' header to all messages except authenticated. The 
SpamAssassin rule then adds -10 points if this header is missing:

# In main.cf:
smtpd_data_restrictions =
     reject_unauth_pipelining
     permit_sasl_authenticated
     check_client_access regexp:/etc/postfix/add_auth_header.regexp
	
# In /etc/postfix/add_auth_header.regexp:
/^/ PREPEND X-SMTP-Auth: no

# In SpamAssassin's local.cf:
header __NO_SMTP_AUTH X-SMTP-Auth =~ /^no$/m
meta SMTP_AUTH !__NO_SMTP_AUTH
describe SMTP_AUTH Message sent using SMTP Authentication
tflags SMTP_AUTH nice
score SMTP_AUTH -10

I suggest you do not use X-SMTP-Auth literally. I would obscure this by 
using a X-something-else header name of your choice, and if you have 
more than one machine, I suggest using something different on each. In 
order to prevent confusion (the header would end up getting written 
again after the message was processed by amavisd-new), you should 
override smtpd_data_restrictions on the amavisd-new reinjection port. In 
master.cf add
   -o smtpd_data_restrictions=

127.0.0.1:10025    inet    n    -    n    -    -    smtpd
     -o content_filter=
     -o smtpd_data_restrictions=
     [other typical amavisd-new reinjection port overrides]
---snip

hast du -o smtpd_data_restrictions=
sonst produzierst du wahrscheinlich die auth header doppelt

und bei mehreren server verschiedene auth header?
ausserdem wird geraten den haeder zu obscuren, wahrscheinlich deshalb 
weil man ihn eben auch faelschen koennte,
ich hab den von dir beschriebenen Fehler aber auf meinen Server nicht 
provozieren koennen egal wie ich es versucht hab



Robert Schetterer schrieb:
> Hallo Gerald,
> ich muesste das mal nachsehen,
> du hast recht alle nicht authentifizierten sollen
> im header X-SMTP-Auth: no bekommen
> 
> ich hab
> 
> smtpd_data_restrictions = permit_mynetworks,
>      permit_sasl_authenticated,
>      check_client_access regexp:/etc/postfix/add_auth_header.regexp,
>      reject_multi_recipient_bounce,
>      reject_unauth_pipelining,
>      permit
> 
> /etc/postfix/add_auth_header.regexp
> 
> /^/ PREPEND X-SMTP-Auth: no
> 
> /etc/mail/spamassassin/local.cf
> 
> header __NO_SMTP_AUTH X-SMTP-Auth =~ /^no$/
> meta SMTP_AUTH !__NO_SMTP_AUTH
> describe SMTP_AUTH Message sent using SMTP Authentication
> tflags SMTP_AUTH nice
> score SMTP_AUTH -10
> 
> 
> das fuehrt im spamassassin zu...
> 
> X-Spam-Status: No, score=-10.7 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,
>       DKIM_VERIFIED,DK_POLICY_TESTING,DK_SIGNED,DK_VERIFIED,MISSING_SUBJECT,
>       NO_REAL_NAME,SMTP_AUTH,SPF_HELO_PASS autolearn=ham version=3.1.9
> 
> bei authentifizierten usern
> funktioniert also
> 
> ich muesste erst mal eine mail produzieren in der
> X-SMTP-Auth: no schon drinn steht
> ich habs mal mit bounce probiert, aber auch hier wird
> grundsaetzlich die  mail als neu erkannt und der vorhandene
> X-SMTP-Auth: no nicht interpretiert
> 
> 
> ich grueble grad wie ich das Verhalten provozieren kann
> faellt dir was ein dann koennte ich es testen
> 
> 
> Gerald Nowitzky schrieb:
>> Hallo!
>>
>> Nein, wenn die Headerzeile "X-SMTP-Auth: no" **fehlt**, soll geniced 
>> werden, also ein hoher negativer score dazu.
>> Bei allen Mails von nicht authentifizierten quellen wird der Header 
>> hinzugefügt und damit **nicht** geniced.
>>
>> Das Problem ist, dass, wenn die Headerzeile zweimal da ist, auch geniced 
>> wird - (für mich) unerklärlicherweise.
>>
>> Bis dann!
>> (Gerald)
>>
>> Robert Schetterer <robert at schetterer.org> hat am 23. Juli 2008 um 14:58 
>> geschrieben:
>>
>>  > Hallo Gerald,
>>  >
>>  > Gerald Nowitzky schrieb:
>>  > >
>>  > > Hallo!
>>  > > Einen kleinen Kollateralschaden gibts doch:
>>  > >
>>  > > An sich klappt alles bestens. Die Lösung mit dem X-SMTP-Auth scheint
>>  > > aber ein loch zu haben; nämlich wenn ein Spammer eine Mail mit einem
>>  > > "X-SMTP-Auth: no" im Header schickt. Dann sieht es im Header nach dem
>>  > > Postfix so aus:
>>  > >
>>  > > X-SMTP-Auth: no
>>  > > X-SMTP-Auth: no
>>  >
>>  > vieleicht irre ich mich hier ( jemand ders besser weiss moege sich 
>> melden )
>>  >
>>  > negativer score ist doch erwuenscht, works as desinged
>>  > wenn das 2 mal drin steht sollte es auch egal sein
>>  > rein technisch
>>  >
>>  > Unschoen ist
>>  > wenn die mail von haus aus schon
>>  > X-SMTP-Auth: no im header enthaelt enthaelt funktioniert die Methode
>>  > halt nicht
>>  > zuverlaessig
>>  >
>>  > aber du koenntest ja auch z.B
>>  >
>>  > X-SMTP-Auth-OK oder sowas verwenden
>>  >
>>  > zuverlaessig kannst du spam flagging nur dann verhindern wenn du deine
>>  > authentifizierten User am Amavis/spamassassin vorbeileitest,
>>  > da sind diverse methoden denkbar
>>  >
>>  > >
>>  > > und das führt, aus irgendeinem Grund, dazu, dass die Mail geniced wird
>>  > > (also einen negativen score bekommt)
>>  > > 
>>  > > In der local.cnf des Spamassassin steht:
>>  > > 
>>  > > header __NO_SMTP_AUTH X-SMTP-Auth =~ /^no$/
>>  > > meta SMTP_AUTH !__NO_SMTP_AUTH
>>  > > describe SMTP_AUTH Message sent using SMTP Authentication
>>  > > tflags SMTP_AUTH nice
>>  > > score SMTP_AUTH -200
>>  > >
>>  > > Was läuft da schief? Wird das Flag beim Spamassassin wieder 
>> invertiert?
>>  > > Kann ich das verhindern?
>>  > > Kann ich irgendwie verhindern, dass das X.SMTP-Auth: no zweimal im
>>  > > Header erscheint - also den Eintrag unterdrücken, wenn er schon da ist?
>>  > >
>>  > > Alternativ könnte ich natürlich einfach auch den Header verändern, 
>> aber
>>  > > das ist ja eigentlich keine richtige Lösung.
>>  > > 
>>  > > Vielen Dank!
>>  > > (Gerald)
>>  > >
>>  > > 
>>  > >
>>  > > Gerald Nowitzky <whl at igne.de> hat am 16. Juli 2008 um 10:38 
>> geschrieben:
>>  > >
>>  > >> Hallo!
>>  > >>
>>  > >> also, erstmal vielen Dank an alle für die ausführlichen und
>>  > >> detaillierten Vorschläge! Ich habe die Lösung von Roland mit dem
>>  > >> zusätzlichen Header bei nicht-authentifizierten Mails verwendet. Die
>>  > >> ist "fälschungssicher", weil da eine Headerzeile bei externen Mails
>>  > >> hinzugefügt wird. Da ein nicht authentifizierter Mail/Spamsender nur
>>  > >> eine gefälschte Headerzeile anfügen kann, aber nicht löschen, kann
>>  > >> diese Funktion auch nicht missbraucht werden.
>>  > >>
>>  > >> "Kollateralschäden" sind mir bisher noch keine bekannt geworden ;-)
>>  > >>
>>  > >> Die Lösung mit dem "smtpd_sasl_authenticated_header = yes" wollte ich
>>  > >> nicht nehmen, weil dann
>>  > >> a) Der Benutzername im Header erscheint
>>  > >> b) Das Erkennungsmerkmal nur bei authetifizierten Mails vorhanden 
>> ist,
>>  > >> und damit gefälscht werden kann.
>>  > >>
>>  > >> Nochmal Danke an alle für die ausführliche Hilfe! Ein Problem weniger
>>  > >> auf meiner Liste ;-)
>>  > >>
>>  > >> (Gerald)
>>  > >>
>>  > >>
>>  > >> Roland Scheike <rsbtde at googlemail.com> hat am 15. Juli 2008 um 16:23
>>  > >> geschrieben:
>>  > >>
>>  > >> > Hallo Gerald,
>>  > >> >
>>  > >> > machbar wäre z.B. ein "nicen" der versendeten Mail- d.h. Du ziehst
>>  > >> > einen Score von x ab. Ob das nun soviel ist dass der Spamscanner
>>  > >> > definitiv nicht mal seine Header schreiben kann oder nur ein paar
>>  > >> > wenige Punkte ist Dir überlassen.
>>  > >> >
>>  > >> > Das Prinzip:
>>  > >> > # In /etc/postfix/main.cf:
>>  > >> > smtpd_data_restrictions =
>>  > >> >     reject_unauth_pipelining
>>  > >> >     permit_sasl_authenticated
>>  > >> >     check_client_access regexp:/etc/postfix/add_auth_header.regexp
>>  > >> >
>>  > >> > # In /etc/postfix/add_auth_header.regexp:
>>  > >> > /^/ PREPEND X-SMTP-Auth: no
>>  > >> >
>>  > >> > Somit steht bei allen Mails, die nicht über die Regex gelaufen sind
>>  > >> > der Header X-SMTP-Auth: no
>>  > >> > drin.
>>  > >> >
>>  > >> > Diesen kann man dann zum Prüfen verwenden:
>>  > >> > # In /etc/mail/spamassassin/local.cf:
>>  > >> > header __NO_SMTP_AUTH X-SMTP-Auth =~ /^no$/
>>  > >> > meta SMTP_AUTH !__NO_SMTP_AUTH
>>  > >> > describe SMTP_AUTH Message sent using SMTP Authentication
>>  > >> > tflags SMTP_AUTH nice
>>  > >> > score SMTP_AUTH -25
>>  > >> >
>>  > >> > Dann noch in der /etc/postfix/master.cf die Data-Restrictions wieder
>>  > >> > rausnehmen und gut ists
>>  > >> >
>>  > >> > 127.0.0.1:10025    inet    n    -    n    -    -    smtpd
>>  > >> >     -o smtpd_data_restrictions=
>>  > >> >     ...
>>  > >> >
>>  > >> > HTH,
>>  > >> > Roland
>>  > >> >
>>  > >> > 2008/7/15 Gerald Nowitzky <whl at igne.de>:
>>  > >> > > Hallo!
>>  > >> > >
>>  > >> > > Ich habe folgendes Problem:
>>  > >> > >
>>  > >> > > Ich betreibe einen Postfix mit Amavis und Spamassassin. Der 
>> Server
>>  > >> nimmt
>>  > >> > > Mails für seine Domains entgegen und ist Relay für ausgehende
>>  > >> Mails. Die
>>  > >> > > Nutzer für ausgehende Mails sind nicht in einem Trusted Network,
>>  > >> sondern
>>  > >> > > authentifizieren sich über SASL.
>>  > >> > >
>>  > >> > > Das Problem ist nun, dass auch die ausgehenden Mails, also 
>> Mails von
>>  > >> > > Nutzern, die sich über SASL authentifizieren, über den
>>  > >> Spamassassin gehen.
>>  > >> > > Mit entsprechend blödem Inhalt und einer dynamischen IP passiert
>>  > >> es immer
>>  > >> > > wieder, dass eine ausgehende Mail von meinem Spamassassin als 
>> Spam
>>  > >> markiert
>>  > >> > > wird und so dem Empfänger zugestellt wird. Gibt es eine
>>  > >> Möglichkeit, das zu
>>  > >> > > verhindern?
>>  > >> > >
>>  > >> > > Vielen Dank für die Hilfe!
>>  > >> > > (Gerald)
>>  > >> > >
>>  > >> > > Hier ist meine master.cf. :10024 / :10025 ist der "umweg" für den
>>  > >> Amavis.
>>  > >> > >
>>  > >> > > smtp    inet    n       -       n       -       -       smtpd
>>  > >> > >         -o content_filter=smtp-amavis:[127.0.0.1]:10024
>>  > >> > > pickup    fifo  n       -       -       60      1       pickup
>>  > >> > > cleanup   unix  n       -       -       -       0       cleanup
>>  > >> > > qmgr      fifo  n       -       n       300     1       qmgr
>>  > >> > > #qmgr     fifo  n       -       -       300     1       oqmgr
>>  > >> > > tlsmgr    unix  -       -       -       1000?   1       tlsmgr
>>  > >> > > rewrite   unix  -       -       -       -       -     
>>  > >>  trivial-rewrite
>>  > >> > > bounce    unix  -       -       -       -       0       bounce
>>  > >> > > defer     unix  -       -       -       -       0       bounce
>>  > >> > > trace     unix  -       -       -       -       0       bounce
>>  > >> > > verify    unix  -       -       -       -       1       verify
>>  > >> > > flush     unix  n       -       -       1000?   0       flush
>>  > >> > > proxymap  unix  -       -       n       -       -       proxymap
>>  > >> > > smtp      unix  -       -       -       -       -       smtp
>>  > >> > > relay     unix  -       -       -       -       -       smtp
>>  > >> > >         -o fallback_relay=
>>  > >> > > showq     unix  n       -       -       -       -       showq
>>  > >> > > error     unix  -       -       -       -       -       error
>>  > >> > > discard   unix  -       -       -       -       -       discard
>>  > >> > > local     unix  -       n       n       -       -       local
>>  > >> > > virtual   unix  -       n       n       -       -       virtual
>>  > >> > > lmtp      unix  -       -       n       -       -       lmtp
>>  > >> > > anvil     unix  -       -       -       -       1       anvil
>>  > >> > > scache    unix  -       -       -       -       1       scache
>>  > >> > > maildrop  unix  -       n       n       -       -       pipe
>>  > >> > >   flags=DRhu user=vmail argv=/usr/bin/maildrop -d ${recipient}
>>  > >> > > uucp      unix  -       n       n       -       -       pipe
>>  > >> > >   flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - 
>> $nexthop!rmail
>>  > >> > > ($recipient)
>>  > >> > > ifmail    unix  -       n       n       -       -       pipe
>>  > >> > >   flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop
>>  > >> ($recipient)
>>  > >> > > bsmtp     unix  -       n       n       -       -       pipe
>>  > >> > >   flags=Fq. user=bsmtp argv=/usr/lib/bsmtp/bsmtp -t$nexthop 
>> -f$sender
>>  > >> > > $recipient
>>  > >> > > scalemail-backend unix  -       n       n       -       2      
>>  pipe
>>  > >> > >   flags=R user=scalemail 
>> argv=/usr/lib/scalemail/bin/scalemail-store
>>  > >> > > ${nexthop} ${user} ${extension}
>>  > >> > > mailman   unix  -       n       n       -       -       pipe
>>  > >> > >   flags=FR user=list 
>> argv=/usr/lib/mailman/bin/postfix-to-mailman.py
>>  > >> > >   ${nexthop} ${user}
>>  > >> > >
>>  > >> > > procmail        unix    -       n       n       -       5      
>>  pipe
>>  > >> > >         flags=R user=nobody argv=/usr/bin/procmail -t -m
>>  > >> > > /opt/open-xchange/etc/admindaemon/procmailrc ${sender} ${user}
>>  > >> ${recipient}
>>  > >> > > smtp-amavis     unix    -       -       n       -       2      
>>  smtp
>>  > >> > >         -o smtp_data_done_timeout=1200
>>  > >> > >         -o smtp_send_xforward_command=yes
>>  > >> > >         -o disable_dns_lookups=yes
>>  > >> > >         -o max_use=20
>>  > >> > > 127.0.0.1:10025 inet    n       -       n       -       -      
>>  smtpd
>>  > >> > >         -o content_filter=procmail:spamcheck
>>  > >> > >         -o local_recipient_maps=
>>  > >> > >         -o relay_recipient_maps=
>>  > >> > >         -o smtpd_restriction_classes=
>>  > >> > >         -o smtpd_delay_reject=no
>>  > >> > >         -o smtpd_client_restrictions=permit_mynetworks,reject
>>  > >> > >         -o smtpd_helo_restrictions=
>>  > >> > >         -o smtpd_sender_restrictions=
>>  > >> > >         -o smtpd_recipient_restrictions=permit_mynetworks,reject
>>  > >> > >         -o mynetworks_style=host
>>  > >> > >         -o mynetworks=127.0.0.0/8
>>  > >> > >         -o strict_rfc821_envelopes=yes
>>  > >> > >         -o smtpd_error_sleep_time=0
>>  > >> > >         -o smtpd_soft_error_limit=1001
>>  > >> > >         -o smtpd_hard_error_limit=1000
>>  > >> > >         -o smtpd_client_connection_count_limit=0
>>  > >> > >         -o smtpd_client_connection_rate_limit=0
>>  > >> > >         -o
>>  > >> > >
>>  > >> 
>> receive_override_options=no_header_body_checks,no_unknown_recipient_checks
>>  > >> > > smtps   inet    n       -       n       -       -       smtpd
>>  > >> > >         -o smtpd_tls_wrappermode=yes
>>  > >> > >         -o content_filter=smtp-amavis:[127.0.0.1]:10024
>>  > >> > >
>>  > >> > > _______________________________________________
>>  > >> > > postfix-users mailing list
>>  > >> > > postfix-users at de.postfix.org
>>  > >> > > http://de.postfix.org/cgi-bin/mailman/listinfo/postfix-users
>>  > >> > >
>>  > >> > >
>>  > >> > _______________________________________________
>>  > >> > postfix-users mailing list
>>  > >> > postfix-users at de.postfix.org
>>  > >> > http://de.postfix.org/cgi-bin/mailman/listinfo/postfix-users
>>  > >> >
>>  > >
>>  > > 
>>  > >
>>  > >
>>  > > 
>> ------------------------------------------------------------------------
>>  > >
>>  > > _______________________________________________
>>  > > postfix-users mailing list
>>  > > postfix-users at de.postfix.org
>>  > > http://de.postfix.org/cgi-bin/mailman/listinfo/postfix-users
>>  >
>>  >
>>  > --
>>  > Best Regards
>>  >
>>  > MfG Robert Schetterer
>>  >
>>  > Germany/Munich/Bavaria
>>  > _______________________________________________
>>  > postfix-users mailing list
>>  > postfix-users at de.postfix.org
>>  > http://de.postfix.org/cgi-bin/mailman/listinfo/postfix-users
>>  >
>>
>>
>> ------------------------------------------------------------------------
>>
>> _______________________________________________
>> postfix-users mailing list
>> postfix-users at de.postfix.org
>> http://de.postfix.org/cgi-bin/mailman/listinfo/postfix-users
> 
> 


-- 
Best Regards

MfG Robert Schetterer

Germany/Munich/Bavaria


More information about the postfix-users mailing list