Moin!
Was hast du denn eingestellt?
Liegt vielleicht an der Reihenfolge?
Nein, die hast du zum Glück nicht von den diversen "Anleitungen" abgeguckt, sondern vernünftigerweise schon alles in die smtpd_recipient_restrictions getan.
Aber du könntest noch deutlich mehr tun. :)
reject_unknown_hostname - HELO-Namen sollten im DNS verfügbare Domains sein, nicht irgendwelche ausgedachten. Allerdings wird das im Standard nicht gefordert.
reject_non_fqdn_hostname - HELO-Namen müssen laut Standard ein FQDN sein! Diese Forderung erschlägt dir massenhaft Spammer.
Außerdem kannst du problemlos Mails ablehnen, die im HELO deine eigene Domain oder deine eigene IP-Adresse verwenden. Sowas tun nur Spammer, kein legitimer Mailserver (der nutzt immer seinen eigenen Hostnamen). Also ein check_helo_access reintun, und eine passende Lookup-Table integrieren, die alles, was mit deiner Domain oder deiner IP zu tun hat, ebenfalls final ablehnt.
Diese ganzen HELO-Checks gehören an den Anfang, irgendwo hinter "permit_mynetworks".
Es ist außerdem eine gute Idee, an passender Stelle noch eine IP-Whitelist und eine IP-Blacklist einzufügen, falls mal derartige Konstrukte entstehen, dass du jemanden auf so eine Liste setzen willst. Die Whitelist muß dann logischerweise vor den harten Maßnahmen greifen und ein PERMIT ausgeben, während die Blacklist nach den harten (aber unzureichenden) Maßnahmen dann ein REJECT (bzw. alternativ auch direkt einen scheiternden SMTP-Code mit Textbotschaft) ausgibt.
Die Auswahl an Blacklisten wäre eventuell noch zu verfeinern, oder durch http://www.policyd-weight.org/ ein etwas sanfteres Handling anzuwenden.
smtpd_sender_restrictions = hash:/etc/postfix/access
smtpd_client_restrictions =
smtpd_helo_required = yes
smtpd_helo_restrictions =
strict_rfc821_envelopes = no
smtpd_recipient_restrictions = permit_sasl_authenticated,
permit_mynetworks,
reject_unauth_pipelining,
reject_unauth_destination,
reject_invalid_hostname,
reject_non_fqdn_sender,
reject_unknown_sender_domain,
reject_non_fqdn_recipient,
reject_unknown_recipient_domain,
# reject_rbl_client relays.ordb.org, ## tot
reject_rbl_client blackholes.easynet.nl,
reject_rbl_client cbl.abuseat.org,
permit
header_checks = pcre:/etc/postfix/antispam/header_checks.pcre
Die header_checks halte ich dagegen für unsinnig. Ich zweifle, dass an dieser Stelle überhaupt noch viel Spam ankommt, wenn die Maßnahmen angepaßt wurden, es müßten aber ständig Anpassungen an die sich verändernden Spam-Mails vorgenommen werden. Und gerade wenn du da mit regulären Ausdrücken arbeitest, kann doch mal unerwartet ein Ausdruck matchen, obwohl die abgelehnte Mail absolut harmlos ist. Das Potential falscher Ablehnung ist mir da zu groß.
- Sven Rautenberg
"Love your nation - respect the others."