Postfix: адреса отримувача відхилена: користувач невідомий у місцевій таблиці одержувачів, навіть якщо домен одержувача - це зовнішній домен


9

В інфраструктурі моєї компанії я маю внутрішній поштовий сервер з поштовим корекцією, ім'я якого, скажімо, srv- Internal.central.mydomain.tld з внутрішнім IP 10.10.128.200.

Для обміну повідомленнями з мережею він використовує ретрансляційний поштовий сервер (сервер у середовищі DMZ з усіма необхідними накопичувачами, наприклад ..), навіть із поштовим кодом , ім'я якого - mailgw.central.mydomain.tld з внутрішнім інтерфейсом IP 10.10. 133.105

Загальнодоступне ім’я нашої інфраструктури (скажімо) " central.mydomain.tld ", але " pec.central.mydomain.tld " НЕ є нашим піддоменом . Він надається іншим Інтернет-провайдером за межами нашої мережі (значить, повідомлення на цей домен мають вийти).

Якщо я надішлю лист від 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]

Мій ретрансляційний сервер знаходиться у версії 5.7 Linux CentOS, реліз postfix - postfix-2.3.3-2.1.el5_2 зі стандартних сховищ CentOS.

Скажімо, мій домен:

 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 / транспорт:

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]

Тепер адреса одержувача відхилена: невідомий користувач у таблиці одержувачів ретрансляції здається, що сервер ретрансляції (mailgw) "вважає", що "pec.central.mydomain.tld" є одним із його піддоменів, тому він шукає користувача-одержувача у його relay_recipient_maps, хоча він не повинен ІМХО.

Я очікував такої поведінки, якщо я покладу ".central.mydomain.tld" (з початковою крапкою!) У свою транспортну таблицю, але у мене справді є "central.mydomain.tld", тому, читаючи посібники, слід враховувати лише доменне ім'я , а також не субдомени.

Я дуже вдячний, якщо хтось міг підказати мені, що я роблю неправильно.

Відповіді:


6

Параметр, про який слід пам’ятати, це parent_domain_matches_subdomains .

Список функцій Postfix, де шаблон "example.com" також відповідає субдоменам example.com, замість того, щоб вимагати явного шаблону ".example.com". Це планується зворотна сумісність: врешті-решт, всі функції Postfix вимагають явних шаблонів стилів ".example.com", коли ви дійсно хочете відповідати субдоменам.

Отже, parent_domain_matches_subdomains містить список домену, якому постфікс повинен відповідати його субдомену навіть без (крапки) перед ним .

На жаль, 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_domainsмістить $mydomainабо central.mydomain.tld , postfix відповідає всім піддоменам central.mydomain.tld як relay_domainsне зовнішнім.


Рішення встановлено parent_domain_matches_subdomainsі не включає релейні_домени для цих параметрів.


Дуже дякую, @masegaloeh. Це спрацювало як шарм! :) Твоє пояснення знову було дуже зрозумілим і Tnx.
габоландер

@gabolander Якщо це працює, будь ласка , розгляньте приймати цей відповідь, так що питання не плаває в без відповіді басейну
masegaloeh

Я вже це зробив, дякую. (Я не можу повідомити про це як про корисне, бо мені потрібно 15 як репутація, а у мене ще немає)
gabolander,

0

У моєму випадку я знайшов білий список для користувача електронної пошти під: / etc / postfix / relay_recipients Якщо ваш користувач не входить до цього списку, він ніколи не отримає електронний лист.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.