[Postfixbuch-users] Whitelist für restrictions

Sandy Drobic postfixbuch-users at drobic.de
Mi Apr 4 23:35:48 CEST 2012


Am 04.04.2012 16:33, schrieb Sascha Peters:
> Hallo Liste,
> 
> Ich möchte einen Teil der Listen (Whitelist und Blacklist) auf die gleiche Art
> lösen. Ich möchte Ausnahmen für jede Prüfung über hash/btree oder cidr
> Tabellen in den Restrictions machen. Ebenfalls möchte ich aber auch eine
> Standardaktion festlegen.
> 
> Ich weiß das Postgrey eigene Whitelisten hat, aber ich würde das gerne bei
> allen Dienste (postgrey, policyd-weight, rbls) gleich machen.
> 
> Ich Frage mich daher wie postfix eine Abfrage in einer map macht, die mittels
> "check_recipient_access hash:/etc/postfix/map" eingebunden wird wird.
> 
> Buch Seite 126
> --------------
> user at example.com
> user@
> example.com
> .example.com
> host.example.com
> xxx.xxx.xxx.xxx
> xxx.xxx
> 
> Damit könnte ich eine Aktion "DUNNO" aber als Standard nur für eine Domain
> setzen, und einzelne Adressen ausschließen. Kann man denn auch was angeben, so
> das Alle Abfragen "matchen", es sei denn es gibt eine Ausnahem?

Nicht bei einer indizierten Tabelle wie Hash oder btree. Bei cidr oder pcre
ist dies möglich, da hier strikt von oben bis zum letzten Eintrag geprüft
wird, bis ein Treffer erfolgt.
Hier kann als letztes der Default stehen und die Ausnahmen vorher abgeprüft
werden. Details stehen unter "man 5 access".

> Beispiel:
> ---------
> domain1.tld class-grey
> domain2.tld class-grey
> domain3.tld class-grey
> user at domain2.tld class-none
> 
> wird zu???

Was ist die Abfrage dazu?

> 
> . class-grey
> user at domain2.tld class-none
> 
> 
> Das wäre echt praktisch... Dann würde ich meine restrictions wie folgt ändern.
> Nur ein kurzer Auszug, sollte reichen um zu sehen was ich möchte.
> 
> --- schnipp main.cf ---
> reject_rbl_client zen.spamhaus.org
> reject_rbl_client ix.dnsbl.manitu.net
> check_policy_service inet:127.0.0.1:12525
> check_policy_service inet:127.0.0.1:60000
> --- schnapp main.cf ---
> 
> Wird dann zu dem folgenden...
> 
> --- schnipp main.cf ---
> smtpd_restriction_classes =
>  class-policyd-weight
>  class-postgrey
>  class-rbl-zen
>  class-rbl-ix
>  class-none
> 
> class-policyd-weight = check_policy_service inet:127.0.0.1:12525
> class-postgrey = check_policy_service inet:127.0.0.1:60000
> class-rbl-zen = reject_rbl_client zen.spamhaus.org
> class-rbl-ix = reject_rbl_client ix.dnsbl.manitu.net
> class-none = dunno
> 
> check_recipient_access hash:/etc/postfix/table/zen.spamhaus.org
> check_recipient_access hash:/etc/postfix/table/ix.dnsbl.manitu.net
> check_recipient_access hash:/etc/postfix/table/policyd-weight
> check_recipient_access hash:/etc/postfix/table/postgrey-client
> --- schnapp main.cf ---
> 
> In der Datei "zen.spamhaus.org" könnte ich dann über die "restriction_classes"
> die Aktion festlegen, und mit "class-none" die Prüfung abbrechen. Dammit ich
> aber nur Ausnahmen pflegen muss, ist die Frage nach einem "Standard". Analog
> zu dem "0.0.0.0/0" aus einer cidr, oder eben "::/0" aus der cidr.
> 
> Gibt es bei den "hash" und "btree" Datenbanken so eine Abfrage?
> Oder habe ich mich nun total in was verrant?

Jepp, so ist es.

Ich denke, du solltest dir den Policydaemin postfwd ansehen, da kannst du
solche Spielchen mit treiben und die Konfiguration bleibt einigermaßen
übersichtlich. Hier kannst du auch einfacher mehrere Bedingungen miteinander
verknüpfen ohne die etwas holprigen Restriction Classes. Wenn es mehr als drei
oder vier Restriction Classes werden, ist postfwd übersichtlicher.

Schau dir die Beispiele auf www.postfwd.org mal an.

Ich nenne es ganz bewusst "Spielchen", da zumindest die von dir genannte
Feinaufteilung keinen praktischen Sinn ergibt. In der  Praxis hat du Black-
und Whitelists, eventuell auch individuelle, userbezogene Abfragen. Aber auch
hier macht es wenig Sinn, jede einzelne DNS-Blacklist als Check zu setzen.




Mehr Informationen über die Mailingliste Postfixbuch-users