Postfiks: Adres odbiorcy odrzucony: użytkownik nieznany w lokalnej tabeli adresatów, mimo że domena adresata jest domeną zewnętrzną

9

W infrastrukturze mojej firmy mam wewnętrzny serwer pocztowy z postfiksem, którego nazwa to, powiedzmy, srv-internal.central.mydomain.tld z wewnętrznym adresem IP 10.10.128.200.

Do wymiany wiadomości e-mail z siecią wykorzystuje przekaźnikowy serwer poczty (serwer w środowisku DMZ ze wszystkimi potrzebnymi na przykład dziurkami ), nawet z Postfix, którego nazwa to mailgw.central.mydomain.tld z wewnętrznym interfejsem IP 10.10. 133,105

Nazwa domeny publicznej naszej infrastruktury to (powiedzmy) „ central.mydomain.tld ”, ale „ pec.central.mydomain.tld ” NIE JEST naszą subdomeną . Dostarcza go inny dostawca usług internetowych spoza naszej sieci (więc maile do tej domeny muszą się wydostać).

Jeśli wyślę wiadomość z adresu [email protected] (z komputera srv -internal.central.mydomain.tld) ​​na adres [email protected] , otrzymuję z serwera przekazywania następujący błąd:

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

Mój serwer przekaźnikowy jest w Linuksie CentOS wersja 5.7, wersja postfix to postfix-2.3.3-2.1.el5_2 ze standardowych repozytoriów CentOS.

Powiedzmy, że moja domena to:

 mydomain = central.mydomain.tld

Moja konfiguracja Postfiksa na serwerze przekaźnikowym jest obecnie następująca:

(postconf -d; postconf -d; postconf -n;) | sortuj | 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

I to jest mój / 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]

Teraz adres odbiorcy odrzuconych: nieznany użytkownika w tabeli przekaźnik odbiorcy wydaje się, że serwer relay (mailgw) „myśli”, że „pec.central.mydomain.tld” jest jednym z jej subdomeny, więc wyszukuje użytkownika odbiorcy na jego relay_recipient_maps, natomiast nie powinien IMHO.

Oczekiwałem tego zachowania, jeśli wstawię „.central.mydomain.tld” (z początkową kropką!) W mojej tabeli transportowej, ale tak naprawdę mam „central.mydomain.tld”, więc czytając instrukcje, powinien on uwzględniać tylko nazwę domeny , a nie także poddomeny.

Bardzo doceniam, jeśli ktoś mógłby mi zasugerować, co robię źle.

gabolander
źródło

Odpowiedzi:

6

Parametr, o którym powinieneś wiedzieć, to domena_domeny_domeny_dopasowane .

Lista funkcji Postfiksa, w których wzorzec „przyklad.com” również pasuje do poddomen przyklad.pl, zamiast wymagać wyraźnego wzorca „.przyklad.com”. Jest to planowane kompatybilność wsteczna: ostatecznie wszystkie funkcje Postfiksa będą wymagały wyraźnych wzorców w stylu „.example.com”, gdy naprawdę chcesz dopasować poddomeny.

Tak więc parent_domain_matches_subdomains przechowuje listę domen, których postfiks również powinien pasować do swojej subdomeny, nawet bez (kropki) przed nią .

Niestety relay_domainsparametr należy do tej listy.

# 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

A ponieważ Twój relay_domainszawiera $mydomainlub central.mydomain.tld , postfiks pasuje do wszystkich poddomeny central.mydomain.tld jako innych relay_domainsniż zewnętrzne.


Rozwiązanie jest ustawione parent_domain_matches_subdomainsi nie uwzględnia przekaźników w tych parametrach.

masegaloeh
źródło
Dziękuję bardzo, @masegaloeh. Działa jak urok! :) Twoje wyjaśnienie również było bardzo jasne dla Tnx.
gabolander
@gabolander Jeśli to zadziała, zastanów się nad zaakceptowaniem tej odpowiedzi, aby pytanie nie
znalazło się w
Zrobiłem to już, dziękuję. (Nie mogę zgłosić tego jako przydatnego, ponieważ potrzebuję 15 jako reputacji i jeszcze nie mam)
gabolander
0

W moim przypadku znalazłem białą listę dla użytkownika poczty e-mail pod: / etc / postfix / relay_recipients. Jeśli twojego użytkownika nie ma na liście, nigdy nie dostanie wiadomości e-mail.

Kurt Kranz
źródło