Hi Sven,
Richtig, weil Postfix immer Hash-Lookups macht und dafür zusätzlich zu dem Hash (der Domain) auch irgendwas braucht, was man uplooken kann, auch wenn es in der Beziehung irrelevant ist.
Wobei deine Tabelle doch eher so aussieht, als könne man sie auch als transport_map nutzen.
Hm, in meinem Buch war sie ursprünglich auch als Transport-Map vorgesehen - verstehe ich das richtig, dass transport_maps dafür da sind, E-Mails für bestimmte Domains an andere Mails-Server weiterzuleiten? Oder anders formuliert: Transport-Maps brauche ich nicht? ;-)
Ist, wie erwähnt, recht simpel. Die Arbeit übernimmt ein Fertigmodul, welches über eine TCP- oder Unix-Socket ansprechbar ist, und Postfix bindet das einfach nur ein in den *_restrictions. Das Modul kann dann noch passend konfiguriert werden (Standardwerte von postgrey waren aber schon sinnvoll gewählt).
Ich hab nun mal Postgrey installiert, was dank apt-get install postgrey
sehr schnell ging *g* Entsprechend angepasst hab ich die main.cf:
# restrictions for receiving emails
smtpd_recipient_restrictions = permit_sasl_authenticated, reject_invalid_hostname, reject_non_fqdn_hostname, reject_non_fqdn_sender, reject_unknown_sender_domain, reject_non_fqdn_recipient, reject_unauth_destination, reject_unauth_pipelining, check_recipient_access mysql:/etc/postfix/virtual/spamfilter
# different restrictions classes
smtpd_restriction_classes = normal, medium, hard
# normal - only check validity
normal = reject_unknown_hostname
# medium - use greylisting additionally
medium = reject_unknown_hostname, check_policy_service inet:127.0.0.1:60000
# hard - use blacklists additionally
hard = reject_unknown_hostname, check_policy_service inet:127.0.0.1:60000, reject_rbl_client relays.ordb.org, reject_rbl_client sbl-xbl.spamhaus.org
Postgrey scheint auch gut zu funktionieren - ich hab grade (immer noch per Telnet) eine E-Mail an eine mit 'medium' versehene Adresse geschickt und es kam eine Verweigerungs-Meldung von wegen Postgrey, jetzt grade nochmal eine E-Mail geschickt und sie ist angekommen. An ein Postfach mit 'normal' kam die E-Mail direkt beim ersten Versuch an :-)
Grade hab ich dann auch noch zufrieden festgestellt, dass Postfix keinen Fehler bringt, wenn man für ein Mailkonto die Angabe der Restriktions-Klasse einfach leer lässt - sieht mir so aus, als ob dann ganz einfach keine Klasse durchgeführt wird.
Jetzt stellt sich nur noch die Frage, ob und wie man die Spamfilter noch weiter ausfeilen kann...
Das wiederrum ist der Ansatzpunkt für check_helo_access pcre:/etc/postfix/helo_access - dort prüfe ich, ob die Domain im HELO meine eigene ist. Denn das kann ja auch nicht sein, meine eigene Domain im HELO darf nur mein eigener Mailserver verwenden, und der würde mit sich selbst nicht SMTP sprechen (und vorher sowieso schon durch permit_mynetworks durchgelassen werden). Ebenso ist meine eigene IP im HELO extrem ablehnungswürdig.
Hm, das könnte ich auch noch versuchen in 'normal' zu implementieren - wie muss die helo_access denn aussehen? Einfach so:
mail.example.com irgendwas
123.456.789.0 irgendwas
Was einem auf der anderen Seite auch wieder Angst machen sollte: Wenn die Spambot-Autoren demnächst etwas besser hingucken in die Standards, und auch aktiv auswerten, wie auf ihre Zustellversuche reagiert wird, könnte direkt schon die nächste Spamwelle kommen.
Gabs da nicht noch so ein schönes Tool, was einem eine hübsche grafische Auswertung der mail.log erzeugt und auflistet, wie viel % E-Mails abgewiesen wurden?
Das Ergebnis ergibt sich hier fast von alleine. Die Lookup-Werte müssen bei dir allerdings nicht nur komplette Mailadressen sein, sondern wie dokumentiert auch Domains und Domainteile, oder Adressteile.
Das verstehe ich jetzt wiederrum nicht - ich frage also mal ganz dumm: Warum die Werte Domains, Domainteile und Adressteile aufsplitten? So wie es jetzt ist funktioniert doch alles (ja, ich teste bereits mit zwei verschiedenen Domains).
MfG, Dennis.
Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:| mo:} zu:|
Patch zur Verwendung von PATHINFO in JLog
Berater sind Leute die dir deine Uhr wegnehmen, damit sie dir anschließend sagen können wie spät das es ist! (Aus einem Kabarett)