[Postfixbuch-users] Policy Daemon postfwd

Jan P. Kessler postfix at jpkessler.info
Do Aug 23 00:30:45 CEST 2007


Hallo Liste,

vielleicht ist das ja für den ein oder anderen interessant:

Aus der ursprünglichen Idee, Greylisting auf Basis von RBL Lookups
durchführen zu können, ist inzwischen doch ein etwas umfangreicheres
Projekt entstanden. Die Rede ist von postfwd, einem in PERL
geschriebenen Policy Daemon, der es erlaubt, komplexe
postfix-Restriktionen in einem Regelwerk ähnlich dem einer Firewall
auszudrücken:

An Features gibt es folgendes:

* beliebige Aktionen aufgrund beliebig kombinierbarer request attribute
  (erlaubt ist alles, was postfix kennt), z.B.
client_name=\.gmx\.net$ ; size=10000 ; action=REJECT too large
tls_keylength=64 ; sender=@secure\.de ; action REJECT keylen too small

* Makros/ACLs

* kombinierte RBL/RHSBL checks
rblcount=2 ; rbl=zen.spamhaus.org, listdsbl.org ; action=REJECT too
many RBLs

* beliebige Aktionen aufgrund von RBL Lookups:
rbl=pbl.spamhaus.org  ; action=greylisting
rbl=bonded.sender.org ; action=dunno

* Scoring System
  score=5.0 ; action=REJECT score too high
  score=2.5 ; action=greyisting
  client_name=unknown ; action=score(2.5)
  rbl=zen.spamhaus.org ; action=score(2.5)

* zeit-/datumsbasierte Regeln
date=24.12.2007-26.12.2007   ; action=450 4.7.1 closed during christmas
time=04:00-05:00             ; action=450 4.7.1 maintenance ongoing
time=07:00- ; sasl_user=jim  ; action=450 4.7.1 to early for you, jim
time=-22:00 ; sasl_user=jim  ; action=450 4.7.1 to late now, jim

* einbebautes, konfigurierbares Caching (sowohl für Lookups als auch für
ganze Requests)

* Sprünge im Regelwerk (wie iptables -j)

* eindeutige RegelIDs im Logging, eingebaute Statistik Funktion (inkl
welche Regel wie oft getroffen hat

* selbstverständlich gibt es eine Doku, entweder direkt auf der Website
oder als manpage, perldoc, usw...

Wer etwas Zeit und einen Verwendungszweck findet, kann sich das ganze ja
gerne mal unter http://www.postfwd.org/ anschauen. Hier wurde es vor
allem für Relaysysteme entwickelt, die unterschiedliche Kunden
"bedienen". Lizensiert wird das Ding natürlich unter GPL.
Aussagekräftigere Beispiele findet Ihr unter
http://www.postfwd.org/postfwd.html#examples

Das ganze ist als netzwerkfähiger Daemon via Net::Server::Multiplex
implementiert (jep, wie postgrey). Benötigt wird außerdem Net::CIDR::Lite.

Getestet wurde es bisher unter diversen Linuxen (Debian, Suse, Trustix),
Solaris und openbsd. Selbst zu Spitzenzeiten (>1000 Requests die Minute,
~60 konfigurierte, komplexe Regeln) stieg die Last nie auf mehr als 4%
CPU Usage und der maximale Speicherbedarf lag bei etwa 11MB (600
Sekunden Caching). Die theoretische Performance (getestet mit netcat)
lag auf einem P4-2.8Ghz bei über 1000 Requests pro Sekunde.

Nunja, falls jemand Zeit und Lust findet, würde ich mich über Feedback
freuen. Dieses könnt Ihr dann auch direkt an info[AT]postfwd.org schicken.

Sorry nochmal wg der "Werbung in eigener Sache", aber mit dem Ding wird
a.) kein Geld verdient und b.) dachte ich mir, dass es vll auch andere
gebrauchen könnten.



Mehr Informationen über die Mailingliste Postfixbuch-users