[Postfixbuch-users] Greylisting empfängerindividuell aus MySQL

Ronny Seffner ronny at seffner.de
So Feb 17 15:07:02 CET 2013


Mahlzeit, Kai,

vielleicht sollte ich zu solchen Zeiten nicht mailen, wie diese Nacht.

> Greylisting hat in den *_sender_restrictions absolut nichts verloren.
> 
Natürlich habe ich die meisten Restrictions in den
smtpd_recipient_restrictions, so auch meine greylist-Versuche. Aber schau
doch mal genau, in meinem postconf-Auszug weiter untern war das sogar zu
sehen ;-)

> Außerdem ist smtpd_delay_reject defaultmäßig auf yes
> 
Konntest Du nicht wissen, habe ich auf "no", sonst macht die Differenzierung
der Restrictions ja - wie Du darlegst - kaum Sinn.

> (die Doppelpunkte in der IP-Adresse ignoriere ich hier mal)
> 
Die schiebe ich der Nachtschicht zu, sind nicht wirklich in meiner
Konfiguration enthalten ;-)

> > 	reject_unlisted_sender
> 
> ^ der nützt hier nichts mehr, weil permit_sasl_authenticated 
> vorher schon sein OK gegeben hat.
> 
Rücke ich das vor permit_sasl_authenticated, verhindere ich, dass
Authentifizierte ihren Absender fälschen - zumindest außerhalb gültiger
Adressen? Dahinter ist es nicht grundsätzlich verkehrt, nur halb so wirksam,
ja?

> > 	reject_unauth_destination
> 
> ^ den hier würde ich weiter nach oben legen: Warum solltest 
> du etliche Abfragen ausführen nur um hier letztlich festzustellen, 
> dass die Mail gar nicht für dich bestimmt ist? Ein guter Platz wäre 
> direkt nach dem permit_sasl_authenticated. Möglicherweise 
> auch etwas später, das musst du dir selbst überlegen.
> 
Die "billigen" Tests, zuerst, richtig. Ich sehe gerade keinen Grund, das
nicht direkt nach permit_sasl_autheticated zu stellen.

> > 	reject_unverified_recipient
> 
> ^ vielleicht auch etwas weiter nach oben?
> 
Das ist doch recipient-address-verification, braucht also DNS und baut eine
SMTP-Verbindung zum Empfänger auf um zu prüfen, ob es den dort überhaupt
gibt - richtig? Dann scheint mir der Test teuer und deshalb habe ich ihn
hinten. Ich kann nicht genau einschätzen, was teurer ist, dieser Test,
policy-weightd, spf, greylist - hier sollte ich ihn wohl "richtig"
einordnen.

> > 	permit
> 
> ^ das abschliessende "permit" ist völlig unnötig.
> 
Also ab in die Tonne mit dem Eintrag.

> Egal wie: Das Log ist dein Freund.
> 
Da war nichts. Zu Recht, denn es ging - ich übersah nur oder testete falsch.
Heute sind seit meinem Eingriff gestern ausreichend "postgrey" Einträge im
Log zu sehen. 

> > Edit : Ich sehe gerade 2x check_recipient_access hintereinander. 
> > Stört das?
> > Aber auch eine Bereinigung auf einen Eintrag mit den 4 Quellen 
> > führt zu keiner Besserung.
> 
> Nein, das gehört sogar so. Wenn du die Einträge alle hintereinander 
> schreibst, kann das unerwünschte Effekte haben. Das hatten wir vor 
> kurzem hier auf der Liste.
> 
Du meinst hier :
https://listi.jpberlin.de/pipermail/postfixbuch-users/2012-December/059484.h
tml? Da sagst Du "nur" es geht nicht, ich bin sicher, dass es ebi mir
funktioniert hat. Wie dem auch sei, ich hab jetzt 5x check_recipient_access.
Wenn ich Ralfs Antwort richtig verstehe, konnte es bei mir funktionieren,
weil ich das ja in check_recipient_access in den recipient_restrictions
mache.


Mit freundlichen Grüßen / Kind regards
     Ronny Seffner
--
Ronny Seffner  |  Alter Viehweg 1  |  01665 Klipphausen

www.seffner.de  |  ronny at seffner.de  |  +49 35245 72950

-----Ursprüngliche Nachricht-----
Von: postfixbuch-users-bounces at listen.jpberlin.de
[mailto:postfixbuch-users-bounces at listen.jpberlin.de] Im Auftrag von Kai
Fürstenberg
Gesendet: Sonntag, 17. Februar 2013 11:35
An: Eine Diskussionsliste rund um das Postfix-Buch von Peer Heinlein.
Betreff: Re: [Postfixbuch-users] Greylisting empfängerindividuell aus MySQL

Hi Ronny,

Am 17.02.2013 01:46, schrieb Ronny Seffner:
> Bisher gab's den postgrey in den smptd_sender_restrictions per 
> check_policy_service inet:127:0:0:1:10023 aufgerufen. Das hat 
> funktioniert

Greylisting hat in den *_sender_restrictions absolut nichts verloren. 
Greylisting benötigt Sender, Recipient und Client und gehört somit in die
smtpd_recipient_restrictions.

Außerdem ist smtpd_delay_reject defaultmäßig auf yes, was dazu führt, dass
die Restrictions eh erst nach dem RCPT TO ausgeführt werden. Also kannst du
auch gleich alles in die recipient_restrictions reinsetzen.

(die Doppelpunkte in der IP-Adresse ignoriere ich hier mal)

> Nun möchte ich es wohl so:
>
> smtpd_restriction_classes = policy_greylist policy_greylist = 
> check_policy_service inet:127.0.0.1:10023

OK

> in smtpd_sender_restrictions dann check_recipient_access 
> mysql:/etc/postfix/mysql-virtual_policy_greylist.cf

*_recipient_* (s.o.)

> Nur tut nun laut Log der postgrey nichts mehr, aber ein 'postmap -q 
> ronny at seffner.de mysql:/etc/postfix/mysql-virtual_policy_greylist.cf'
> liefert ganz brav "policy_greylist".

Das ist auch richtig. Alles andere führt dazu, dass die Restriction-Class
nicht ausgeführt wird.

> ns1:/etc/postfix# postconf -n | grep grey smtpd_recipient_restrictions 
> = reject_non_fqdn_recipient
> 	reject_unknown_recipient_domain
> 	permit_mynetworks
> 	permit_sasl_authenticated
> 	check_recipient_access hash:/etc/postfix/roleaccount_exceptions
> 	check_helo_access pcre:/etc/postfix/helo_checks
> 	reject_non_fqdn_hostname
> 	reject_invalid_hostname
> 	check_sender_mx_access cidr:/etc/postfix/bogus_mx
> 	check_sender_access hash:/etc/postfix/senders
> 	reject_unlisted_sender

^ der nützt hier nichts mehr, weil permit_sasl_authenticated vorher schon
sein OK gegeben hat.

> 	check_client_access cidr:/etc/postfix/policyd-weight
> 	check_policy_service inet:127.0.0.1:60001
> 	check_client_access hash:/etc/postfix/backup_mx
> 	check_policy_service unix:private/policy-spf
> 	check_recipient_access
> mysql:/etc/postfix/mysql-virtual_policy_greylist.cf
> 	check_recipient_access hash:/etc/postfix/customer2-recipients
> 		hash:/etc/postfix/customer1-recipients
> 		hash:/etc/postfix/relay_domains
> 	reject_unauth_destination

^ den hier würde ich weiter nach oben legen: Warum solltest du etliche
Abfragen ausführen nur um hier letztlich festzustellen, dass die Mail gar
nicht für dich bestimmt ist? Ein guter Platz wäre direkt nach dem
permit_sasl_authenticated. Möglicherweise auch etwas später, das musst du
dir selbst überlegen.

> 	reject_unverified_recipient

^ vielleicht auch etwas weiter nach oben?

> 	permit

^ das abschliessende "permit" ist völlig unnötig.

> smtpd_restriction_classes = policy_greylist
>
> Die restriction class selbst liefert postconf nicht. Warum?

Das ist normal. Der Name der Restriction-Class ist in dem Sinne kein
Konfigurationsparameter.

> Edit : Ich sehe gerade 2x check_recipient_access hintereinander. Stört
das?
> Aber auch eine Bereinigung auf einen Eintrag mit den 4 Quellen führt 
> zu keiner Besserung.

Nein, das gehört sogar so. Wenn du die Einträge alle hintereinander
schreibst, kann das unerwünschte Effekte haben. Das hatten wir vor kurzem
hier auf der Liste.

> ns1:/etc/postfix# postmap -q ronny at seffner.de 
> mysql:/etc/postfix/mysql-virtual_policy_greylist.cf
> policy_greylist
>
> Muss meine SQL Query anderes liefern? Was?

Nein, genau so.

Wenn dein Greylisting nicht durchgeführt wird, kann das verschiedene
Ursachen haben:
1. Greylisting läuft erst gar nicht, dann bekommst du einen Eintrag ins Log.
2. Greylisting liegt in den restrictions so weit unten, dass möglicherweise
eins davorliegende Restriktion bereits die Annahme der Mail erlaubt.
3. Dein MySQL läuft nicht, auch dann bekommst du einen Eintrag ins Log.
4. sonstiger Tippfehler. Auch dies müsste im Log stehen.

bei 1, 3 und 4 musst du nur ins Log schauen, oder das mal hier posten (bitte
vollständig von "connect" bis "disconnect"). Bei 2 wirst du wohl nicht umhin
kommen, deinen smtpd mal auf "verbose" zu setzen, und nachzusehen, welche
Restriktion die Annahme erlaubt (ode jede einzelne mal händisch
durchprobieren).

Egal wie: Das Log ist dein Freund.

--
Kai Fürstenberg

PM an kai at fuerstenberg punkt ws
--
_______________________________________________
Postfixbuch-users -- http://www.postfixbuch.de Heinlein Professional Linux
Support GmbH

Postfixbuch-users at listen.jpberlin.de
https://listi.jpberlin.de/mailman/listinfo/postfixbuch-users




Mehr Informationen über die Mailingliste Postfixbuch-users