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.