Postfix nimmt E-Mails für User an, die es nicht gibt

caomhan

New Member
Hallo Leute,

ich habe hier einen Server (Debian Squeeze 64 Bit) mit Plesk 10 (aktuellster Stand). Ich nutze Postfix (mit PostFwd) und Dovecot.

Was mir jetzt das erste mal auffällt: Mein Postfix nimmt E-Mails an, die er nicht zustellen kann.

Hier ein einfaches Beispiel:

Code:
Oct 16 17:27:43 s2 postfix/smtpd[603]: connect from unknown[123.456.789.123]

-- POSTFWD DNS BL CHECK --
-- AUF 6 BL GEFUNDEN --

Oct 16 17:27:45 s2 postfix/smtpd[603]: NOQUEUE: reject: RCPT from unknown[123.456.789.123]: 554 5.7.1 <iamjustsendingthisleter@example.org>: Recipient address rejected: blocked using 6 blacklists, INFO: ... ; from=<jb04on1q0@exampleSENDSPAMDOMAIN.org> to=<iamjustsendingthisleter@example.org> proto=ESMTP helo=<123.456.789.123>
Oct 16 17:27:45 s2 postfix/smtpd[603]: lost connection after RCPT from unknown[123.456.789.123]
Oct 16 17:27:45 s2 postfix/smtpd[603]: disconnect from unknown[123.456.789.123]

iamjustsendingthisleter@example.org ist die E-Mail der Empfängers. Die Domain gibt es bei mir auf dem Server, das Postfach / die E-Mail Adresse jedoch nicht.

Wieso nimmt Postfix die Mail überhaupt an?

local_receipient_maps ist nicht zusätzliche definiert, demnach Default auf $alias_maps (soweit ich weiß). $alias_maps beinhaltet die von Plesk erzeugten E-Mail.dbs für Postfix und sollte soweit stimmen.

Es geht mir im Prinzip darum, dass Postfix die E-Mail sofort abweist, da der E-Mail Account nicht existiert. Aktuell kommt zunächst PostFwd mit den BL Checks in's Spiel – und das könnte ich mir dann ja sparen.

Mit der default Config von local_receipient_maps sollte es aber doch eigentlich klappen? Wenn ich selber eine E-Mail an "gibtsNicht@meineDomain.de" sende, sagt mir mein Thunderbird ja auch, "User is unknown in virtual mailbox table" ö.Ä. – sogar vor dem Absenden.

Entweder bin ich einfach nur gerade deppert oder panne :)

Anbei ein Auszug meiner Postfix main.cf:

Code:
alias_maps = hash:/etc/aliases, hash:/var/spool/postfix/plesk/aliases
alias_database = hash:/etc/aliases
virtual_mailbox_domains = $virtual_mailbox_maps, hash:/var/spool/postfix/plesk/virtual_domains
virtual_alias_maps = $virtual_maps, hash:/var/spool/postfix/plesk/virtual
virtual_mailbox_maps = hash:/var/spool/postfix/plesk/vmailbox
smtpd_sender_restrictions = check_sender_access hash:/var/spool/postfix/plesk/blacklists, permit_sasl_authenticated, check_client_access pcre:/var/spool/postfix/plesk/non_auth.re, reject_non_fqdn_sender, reject_unknown_sender_domain
smtpd_recipient_restrictions = permit_mynetworks, check_client_access hash:/etc/postfix/ip-block, check_client_access pcre:/var/spool/postfix/plesk/no_relay.re, permit_sasl_authenticated, reject_unauth_destination, check_policy_service inet:127.0.0.1:10040 (HIER IST POSTFWD)

Habt ihr eine Idee?
Werde gerade bekloppt :) Das muss ich mir (und den BL Anbietern) nicht antun, diese E-Mails zu "scannen".


-- Update --
Gerade nochmals von einem externen Postfach getestet.
Er nimmt die Mail wirklich erst an, macht über PostFwd den BL Check und danach gibts die Bounce "User unknown".

Die Reihenfolge (smtpd_recipient_restrictions) ist doch richtig, oder bin wirklich schon "durch" :)?

Best regards,
caom
 
Last edited by a moderator:
Wieso nimmt Postfix die Mail überhaupt an?
Dein Postfix nimmt die E-Mail nicht an, wie du an dem reject in dem von dir geposteten Log-Ausschnitt sehen kannst.

Wenn ich selber eine E-Mail an "gibtsNicht@meineDomain.de" sende, sagt mir mein Thunderbird ja auch, "User is unknown in virtual mailbox table" ö.Ä. – sogar vor dem Absenden.
Mit Sicherheit nicht vor dem Absenden, jedoch zur RCPT-TO-Stage. Du (bzw. dein Mail-Client) hast dich zuvor vermutlich an dem MTA authentifiziert, so dass die Restriction permit_sasl_authenticated in deinen smtpd_recipient_restrictions greift und deren Verarbeitung damit beendet wird. Im nächsten Schritt versucht dein Postfix das Routing zum Postfach zu ermitteln, stellt fest, dass dieses nicht existiert und gibt die Reject-Meldung aus – alles noch vor der DATA-Stage, d. h. bevor der Mail-Body übertragen wurde.

Habt ihr eine Idee?
Lies nochmal genau nach, welche Kriterien reject_unauth_destination REJECT zurückliefert. Kleiner Tipp: von localpart steht da nichts.

Je nach Konfiguration und genutztem MDA könntest du jedoch reject_unlisted_recipient oder reject_unverified_recipient verwenden.
 
Im jeweiligen Domainpanel -> Email -> Einstellungen ändern -> Vorgehensweise bei E-Mails an nicht-vorhandene Benutzer -> zurückweisen

Dann sollte dein Server richtigerweise die Email gar nicht erst annehmen.
 
Hi und danke für deine Nachricht,

Dein Postfix nimmt die E-Mail nicht an, wie du an dem reject in dem von dir geposteten Log-Ausschnitt sehen kannst.

Richtig, er Rejected die Mail schon. Jedoch erst nach dem Blacklist Check (er gibt den Reject in diesem Fall auch zunächst wegen dem Blacklist Check, nicht weil der User nicht existiert). Danach wäre der Check ob "User exists" dran. Jedoch möchte ich diesen Spieß quasi einfach "umdrehen" :)

Werde mir reject_unlisted_recipient oder reject_unverified_recipient einmal ansehen, herzlichen Dank und einnen schönen Abend!

caom

-- Update --

Vielen Dank, ich glaube mit reject_unlisted_recipient schon meinem Wunschverhalten sehr nahe gekommen zu sein :) Ich würde fast behaupten, dass es wie gewünscht funktioniert. Werde jedoch nochmals testen.

Hier nochmal meine smtpd_recipient_restrictions aus der main.cf:

Code:
smtpd_recipient_restrictions = permit_mynetworks, check_client_access hash:/etc/postfix/ip-block, check_client_access pcre:/var/spool/postfix/plesk/no_relay.re, permit_sasl_authenticated, reject_unauth_destination, reject_non_fqdn_recipient, reject_unlisted_recipient, check_policy_service inet:127.0.0.1:10040

Schönen Abend!
caom
 
Last edited by a moderator:
Back
Top