Postfix: Empfängeradresse abgelehnt: Benutzer in lokaler Empfängertabelle unbekannt, obwohl die Empfängerdomäne eine externe Domäne ist


9

In meiner Unternehmensinfrastruktur habe ich einen internen Mailserver mit Postfix, dessen Name beispielsweise srv-internal.central.mydomain.tld mit der internen IP 10.10.128.200 lautet.

Für den Austausch von E-Mails mit dem Internet wird ein Relay-Mail-Server (z. B. ein Server in einer DMZ-Umgebung mit allen erforderlichen Pinholes) verwendet, auch mit Postfix, dessen Name mailgw.central.mydomain.tld mit der internen Schnittstelle IP 10.10 lautet . 133.105

Der Public Domain-Name unserer Infrastruktur lautet (sagen wir) " central.mydomain.tld ", aber " pec.central.mydomain.tld " ist NICHT unsere Subdomain . Es wird von einem anderen ISP außerhalb unseres Netzwerks bereitgestellt (E-Mails an diese Domain müssen also gesendet werden).

Wenn ich eine E-Mail von user1@central.mydomain.tld (von srv-internal.central.mydomain.tld machine) an foo@pec.central.mydomain.tld sende , erhalte ich vom Relay-Server den folgenden Fehler:

Sep  4 08:03:16 mailgw postfix/smtpd[26678]: NOQUEUE: reject: RCPT from unknown[10.10.128.200]: 550 5.1.1 <foo@pec.central.mydomain.tld>: Recipient address rejected: User unknown in relay recipient table; from=<user1@central.mydomain.tld> to=<foo@pec.central.mydomain.tld> proto=ESMTP helo=<srv-internal.central.mydomain.tld>
Sep  4 08:03:16 mailgw postfix/smtpd[26678]: disconnect from unknown[10.10.128.200]

Mein Relay-Server befindet sich unter Linux CentOS Version 5.7. Die Postfix-Version ist Postfix-2.3.3-2.1.el5_2 aus Standard-CentOS-Repositorys.

Angenommen, meine Domain lautet:

 mydomain = central.mydomain.tld

Und meine Postfix-Konfiguration auf dem Relay-Server lautet derzeit wie folgt:

(postconf -d; postconf -d; postconf -n;) | sortieren | uniq -u

alias_maps = hash:/etc/aliases
biff = no
body_checks = regexp:/etc/postfix/body_checks
content_filter = filter:127.0.0.1:10025
default_process_limit = 10
disable_vrfy_command = yes
header_checks = pcre:/etc/postfix/header_checks
mailq_path = /usr/bin/mailq.postfix
manpage_directory = /usr/share/man
message_size_limit = 12582912
mime_header_checks = regexp:/etc/postfix/mime_header_checks
mydestination = $myhostname, localhost.$mydomain
myhostname = mailgw.$mydomain
mynetworks = 127.0.0.0/8, 10.10.24.0/24, 10.10.128.200/32, 10.10.128.201/32
newaliases_path = /usr/bin/newaliases.postfix
readme_directory = /etc/postfix/README_FILES
receive_override_options = no_address_mappings
relay_domains = $mydomain, riminiventure.it
relay_recipient_maps = hash:/etc/postfix/relay_recipients
sample_directory = /etc/postfix/samples
sendmail_path = /usr/sbin/sendmail.postfix
smtpd_error_sleep_time = 5s
smtpd_hard_error_limit = 10
smtpd_helo_required = yes
smtpd_recipient_restrictions = permit_mynetworks,    permit_sasl_authenticated,    check_client_access hash:/etc/postfix/access_client,    check_helo_access hash:/etc/postfix/access_helo,    check_sender_access hash:/etc/postfix/access_sender, pcre:/etc/postfix/access_sender_pcre,    check_recipient_access hash:/etc/postfix/access_recipient,    reject_unauth_destination,    reject_invalid_hostname,    reject_unauth_pipelining,    reject_non_fqdn_sender,    reject_unknown_sender_domain,    reject_non_fqdn_recipient,    reject_unknown_recipient_domain,    reject_rbl_client bl.spamcop.net,    reject_rbl_client sbl.spamhaus.org,  check_policy_service inet:127.0.0.1:2501,    permit
smtpd_soft_error_limit = 3
strict_rfc821_envelopes = yes
transport_maps = hash:/etc/postfix/transport
unknown_local_recipient_reject_code = 450
virtual_alias_domains = riminifar.it
virtual_alias_maps = hash:/etc/postfix/virtual

Und das ist mein / etc / postfix / transport:

central.mydomain.tld        smtp:[srv-internal.central.mydomain.tld]
someotherdomain.org         smtp:[srv-internal.central.mydomain.tld]
yadomain.it                  smtp:[srv-internal.central.mydomain.tld]
xad.central.mydomain.tld        smtp:[srv-internal.central.mydomain.tld]
test.central.mydomain.tld        smtp:[10.10.15.101]

Jetzt wurde die Empfängeradresse abgelehnt: Der in der Relay-Empfängertabelle unbekannte Benutzer scheint zu denken, dass der Relay-Server (mailgw) "pec.central.mydomain.tld" als eine seiner Subdomains betrachtet, und sucht daher in seinen relay_recipient_maps nach dem Empfängerbenutzer sollte IMHO nicht.

Ich habe dieses Verhalten erwartet, wenn ich ".central.mydomain.tld" (mit dem anfänglichen Punkt!) In meine Transporttabelle eingefügt habe, aber ich habe wirklich "central.mydomain.tld". Beim Lesen von Handbüchern sollte also nur der Domänenname berücksichtigt werden und nicht auch Subdomains.

Ich schätze es sehr, wenn mir jemand vorschlagen könnte, was ich falsch mache.

Antworten:


6

Der Parameter, den Sie kennen sollten, ist parent_domain_matches_subdomains .

Eine Liste von Postfix-Funktionen, bei denen das Muster "example.com" auch mit Subdomains von example.com übereinstimmt, anstatt ein explizites Muster ".example.com" zu erfordern. Dies ist für die Abwärtskompatibilität geplant: Schließlich wird erwartet, dass für alle Postfix-Funktionen explizite Muster im ".example.com" -Stil erforderlich sind, wenn Sie wirklich mit Subdomains übereinstimmen möchten.

Parent_domain_matches_subdomains enthält also die Liste der Domains, deren Postfix auch ohne (Punkt) davor mit seiner Subdomain übereinstimmen soll .

Leider fällt der relay_domainsParameter in diese Liste.

# postconf parent_domain_matches_subdomains
parent_domain_matches_subdomains = debug_peer_list,fast_flush_domains,mynetworks,permit_mx_backup_networks,qmqpd_authorized_clients,relay_domains,smtpd_access_maps

Und da Ihr relay_domainsenthält $mydomainoder central.mydomain.tld enthält , entspricht postfix allen Subdomains von central.mydomain.tld als relay_domainsnicht externen.


Die Lösung ist festgelegt parent_domain_matches_subdomainsund enthält keine Relay_Domains für diese Parameter.


Vielen Dank, @masegaloeh. Es hat wie ein Zauber funktioniert! :) Deine Erklärung war auch wieder sehr klar.
Gabolander

@gabolander Wenn dies funktioniert, ziehen Sie bitte in Betracht , diese Antwort zu akzeptieren , damit die Frage nicht im nicht beantworteten Pool
schwebt

Ich habe es schon getan, danke. (Ich kann es nicht als nützlich melden, weil ich 15 als Ruf brauche und noch nicht habe)
Gabolander

0

In meinem Fall fand ich die Whiteliste für E-Mail-Benutzer unter: / etc / postfix / relay_recipients Wenn Ihr Benutzer nicht in dieser Liste enthalten ist, würde er niemals eine E-Mail erhalten.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.