Postfix:拒否された受信者アドレス:受信者ドメインが外部ドメインであるにもかかわらず、ローカル受信者テーブルでユーザーが不明です


9

私の会社のインフラストラクチャでは、たとえば、内部IP 10.10.128.200のsrv-internal.central.mydomain.tldという名前のpostfixを備えた内部メールサーバーがあります。

ネットとメールを交換するために、リレーメールサーバー(たとえば、必要なすべてのピンホールを備えたDMZ環境のサーバー)を使用します。名前がmailgw.central.mydomain.tldで、内部インターフェイスIP 10.10です。 133.105

インフラストラクチャのパブリックドメイン名は(たとえば)「central.mydomain.tld」ですが、「pec.central.mydomain.tld」はサブドメインではありません。これは、ネットワーク外の別のISPによって提供されます(そのため、このドメインへのメールは取得する必要があります)。

私はからメールを送信する場合user1@central.mydomain.tldに(SRV-internal.central.mydomain.tldマシンから)foo@pec.central.mydomain.tld、私はリレーサーバから次のエラーを取得します:

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]

私のリレーサーバーはLinux CentOSリリース5.7にあり、postfixリリースは標準のCentOSリポジトリのpostfix-2.3.3-2.1.el5_2です。

私のドメインが:

 mydomain = central.mydomain.tld

そして、リレーサーバー上の私のpostfix設定、現在は次のとおりです:

(postconf -d; postconf -d; postconf -n;)| 並べ替え| 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

そして、これは私の/ 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]

さて、受信者のアドレスが拒否:リレー受信者テーブル内のユーザー、未知のは、それがそのrelay_recipient_mapsに受信者のユーザーを検索するので、リレーサーバ(mailgwが)それが、「pec.central.mydomain.tld」はそのサブドメインの一つであることを「考えて」ということらしいです私見ではいけません。

トランスポートテーブルに ".central.mydomain.tld"(最初のドット付き!)を置くと、この動作が予想されましたが、実際には "central.mydomain.tld"があるので、マニュアルを読んで、ドメイン名のみを考慮する必要があります。 、サブドメインも含まれません。

誰かが私が間違っていることを私に提案してくれるなら、私は非常に感謝しています。

回答:


6

注意すべきパラメータは、parent_domain_matches_subdomainsです。

明示的な「.example.com」パターンを要求する代わりに、パターン「example.com」もexample.comのサブドメインに一致するPostfix機能のリスト。これは後方互換性が計画されています。最終的に、すべてのPostfix機能は、本当にサブドメインと一致させたい場合、明示的な「.example.com」スタイルパターンを必要とすることが予想されます。

したがって、parent_domain_matches_subdomainsは、その前に(ドット)がなくても、postfixがサブドメインと一致するドメインリストを保持します

残念ながら、relay_domainsパラメーターはそのリストに該当します。

# 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

また、relay_domainscontains $mydomainまたはcentral.mydomain.tldがあるため、postfixはcentral.mydomain.tldのすべてのサブドメインと一致relay_domains、外部のサブドメインとは一致しません。


ソリューションが設定されparent_domain_matches_subdomains、これらのパラメーターにrelay_domainsが含まれていません。


@masegaloeh、ありがとうございました。それは魅力のように働きました!:)あなたの説明もまた非常に明確でしたTnx。
ガボランダー2014

@gabolanderこれが機能する場合は、この回答を受け入れることを検討してください。質問が未回答のプールに浮かんでいない
masegaloeh

もうやった、ありがとう。(評判として15が必要であり、まだ持っていないので、私はそれを有用であると報告することはできません)
gabolander

0

私の場合、email-userのホワイトリストは/ etc / postfix / relay_recipientsの下にあります。ユーザーがこれらのリストに含まれていない場合、メールは届きません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.