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.
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.
źródło