[Postfixbuch-users] policyd-weight

Sascha Peters postfix-list at novuage.de
So Nov 22 13:29:33 CET 2009


Hallo,

ich habe immer mal das Problem das ich gerne Clients von diversen Checks 
ausschließen möchte. Ich habe aber verschiedene Checks in meiner 
Konfiguration.
Ich habe mir mehrere Klassen gebaut.

smtpd_restriction_classes =
     class_int
     class_dnsbl
     class_grey
     class_fwd
     class_dnsbl_grey
     class_fwd_dnsbl
     class_fwd_grey
     class_fwd_dnsbl_grey
     class_std_restriction

class_int = permit

# policyd-weight
class_dnsbl = check_policy_service inet:127.0.0.1:12525

# postgrey
class_grey = check_policy_service inet:127.0.0.1:60000

# postfwd
class_fwd = check_policy_service inet:127.0.0.1:10040

class_dnsbl_grey = class_dnsbl, class_grey
class_fwd_dnsbl = class_fwd, class_dnsbl
class_fwd_grey = class_fwd, class_grey
class_fwd_dnsbl_grey = class_fwd, class_dnsbl, class_grey
class_std_restriction = class_fwd_dnsbl_grey


Und diese dann über "check_recipient_access" in die 
"smtpd_recipient_restrictions" eingebaut. So kann ich für jede Domain 
einen Standard definieren, aber durch manuelles Eintragen einzelner 
Adressen auch andere Checks ausnehmen.

check_recipient_access btree:/etc/postfix/recipient_restriction
domain.tld class_fwd_dnsbl_grey
ziel at domain.tld class_dnsbl

So wird für alle Adressen der postfwd, policyd-weight und postgrey 
verwenden, aber für die Adresse "ziel at domain.tld" wird nur der 
policyd-weight verwendet.


In anderen Anleitungen auch vor kurzem hier von Peer geschrieben kann 
man einzelne Checks pro Client ausnehmen wenn man quasi obiges nicht mir 
"check_recipient_access" sonder mit "check_client_access" macht.

Bisher war ich nie wirklich in der Lage eine Ausnahme setzen zu wollen, 
und greylisting kann ich pro Empfänger abschalten oder eben die 
Whitelisten verwenden die ja von postgrey selbst abgefragt werden. Nun 
habe ich die Idee dies whitlist Dateien von postgrey auch in 
policyd-weight einzubauen. Denn hier gibt es keine Möglichkeiten 
whitelists einzustellen die dann direkt von policyd-weight selbst 
befragt werden.

Mein Perl ist nun nicht das beste und bevor ich hier Hand anlege wollte 
ich fragen ob jemand einen andere Idee hat. Ansonten würde ich gern eine 
Datei bauen wollen:

policyd-weight_whitelist_clients
policyd-weight_whitelist_clients.local
policyd-weight_whitelist_recipients
policyd-weight_whitelist_recipients.local

Analog zu denen von postgrey und die Funktionen aus postgrey in 
policyd-weigth einbauen. Das sollte ja theoretisch nicht so ein großen 
Problem sein, die Whiteliststelle für recipients existiert ja quasi 
schon für abuse/postmaster und müsste nur erweitert werden, für Clients 
könnte man die Punkte "-20" setzen wenn der Eintrag in der Liste steht. 
Aber auch hier sollte eine Ausstiegsbedingung und Logmeldung kein riesen 
Problem sein.

Über Feedback wäre ich dankbar.



-- 
Gruß
Sascha



Mehr Informationen über die Mailingliste Postfixbuch-users