Postfix: indirizzo del destinatario rifiutato: utente sconosciuto nella tabella del destinatario locale, anche se il dominio del destinatario è un dominio esterno


9

Nella mia infrastruttura aziendale, ho un server di posta interno con postfix il cui nome è, diciamo, srv-internal.central.mydomain.tld con IP interno 10.10.128.200.

Per lo scambio di mail con la rete, utilizza un server di posta relay (un server in un ambiente DMZ con tutti i fori necessari, ad esempio ..), anche con postfix, il cui nome è mailgw.central.mydomain.tld con interfaccia interna IP 10.10. 133,105

Il nome di dominio pubblico della nostra infrastruttura è (diciamo) " central.mydomain.tld ", ma " pec.central.mydomain.tld " NON È il nostro sottodominio . È fornito da un altro ISP esterno alla nostra rete (quindi, le mail a questo dominio devono uscire).

Se invio una mail da user1@central.mydomain.tld (dalla macchina srv-internal.central.mydomain.tld) ​​a foo@pec.central.mydomain.tld , ricevo dal server di inoltro il seguente errore:

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]

Il mio server di inoltro è su Linux CentOS versione 5.7, la versione postfix è postfix-2.3.3-2.1.el5_2 dai repository CentOS standard.

Diciamo che il mio dominio è:

 mydomain = central.mydomain.tld

E la mia configurazione postfix sul server di inoltro, attualmente è la seguente:

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

E questo è il mio / 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]

Ora, indirizzo del destinatario rifiutato: l'utente sconosciuto nella tabella dei destinatari di inoltro sembra che il server di inoltro (mailgw) "pensi" che "pec.central.mydomain.tld" sia uno dei suoi sottodomini, quindi cerca l'utente del destinatario in relay_recipient_maps, mentre esso non dovrei IMHO.

Mi aspettavo questo comportamento se inserissi ".central.mydomain.tld" (con il punto iniziale!) Nella mia tabella di trasporto, ma ho davvero "central.mydomain.tld", quindi, leggendo i manuali, dovrei considerare solo il nome di dominio e non anche sottodomini.

Apprezzo molto se qualcuno potesse suggerirmi cosa sto facendo di sbagliato.

Risposte:


6

Il parametro che dovresti conoscere è parent_domain_matches_subdomains .

Un elenco delle funzionalità di Postfix in cui il modello "esempio.com" corrisponde anche ai sottodomini di esempio.com, invece di richiedere un modello ".example.com" esplicito. Questa è una compatibilità con le versioni precedenti pianificata: alla fine, ci si aspetta che tutte le funzionalità di Postfix richiedano schemi di stile ".example.com" espliciti quando si desidera veramente abbinare i sottodomini.

Pertanto, parent_domain_matches_subdomains contiene l' elenco di domini in cui postfix deve corrispondere anche al suo sottodominio anche senza (punto) davanti .

Sfortunatamente, il relay_domainsparametro rientra in tale elenco.

# 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

E poiché relay_domainscontiene $mydomaino central.mydomain.tld , postfix corrisponde a tutti i sottodomini di central.mydomain.tld come relay_domainsnon esterni.


La soluzione è impostata parent_domain_matches_subdomainse non includere relay_domains su tali parametri.


Grazie mille, @masegaloeh. Ha funzionato come un incanto! :) Anche la tua spiegazione è stata molto chiara Tnx.
Gabolander,

@gabolander Se funziona, considera di accettare questa risposta, quindi la domanda non sta galleggiando nel pool senza risposta
masegaloeh,

L'ho già fatto, grazie. (Non posso segnalarlo come utile, perché ho bisogno di 15 come reputazione e non l'ho ancora fatto)
gabolander

0

Nel mio caso ho trovato la lista bianca per l'utente e-mail in: / etc / postfix / relay_recipients Se il tuo utente non fosse all'interno di questo elenco non riceverà mai un'e-mail.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.