Postfix: dirección del destinatario rechazada: usuario desconocido en la tabla del destinatario local, aunque el dominio del destinatario sea un dominio externo

9

En la infraestructura de mi empresa, tengo un servidor de correo interno con postfix cuyo nombre es, por ejemplo, srv-internal.central.mydomain.tld con IP interna 10.10.128.200.

Para intercambiar correos con la red, utiliza un servidor de correo de retransmisión (un servidor en un entorno DMZ con todos los agujeros necesarios, por ejemplo ...), incluso con postfix, cuyo nombre es mailgw.central.mydomain.tld con interfaz interna IP 10.10. 133,105

El nombre de dominio público de nuestra infraestructura es (por ejemplo) " central.mydomain.tld ", pero " pec.central.mydomain.tld " NO ES nuestro subdominio . Es proporcionado por otro ISP fuera de nuestra red (por lo tanto, los correos a este dominio deben salir).

Si envío un correo desde [email protected] (desde la máquina srv-internal.central.mydomain.tld) ​​a [email protected] , recibo del servidor de retransmisión el siguiente error:

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]

Mi servidor de retransmisión está en Linux CentOS versión 5.7, la versión postfix es postfix-2.3.3-2.1.el5_2 de los repositorios CentOS estándar.

Digamos que mi dominio es:

 mydomain = central.mydomain.tld

Y mi configuración de postfix en el servidor de retransmisión, actualmente es la siguiente:

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

Y este es mi / 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]

Ahora, Dirección del destinatario rechazada: el usuario desconocido en la tabla de destinatarios de retransmisión parece que el servidor de retransmisión (mailgw) "piensa" que "pec.central.mydomain.tld" es uno de sus subdominios, por lo que busca al usuario destinatario en sus mapas de relé_receptor, mientras No debería en mi humilde opinión.

Esperaba este comportamiento si ponía ".central.mydomain.tld" (¡con un punto inicial!) En mi tabla de transporte, pero realmente tengo "central.mydomain.tld", así que, al leer los manuales, solo debería considerar el nombre de dominio , y no también subdominios.

Aprecio mucho que alguien me sugiera lo que estoy haciendo mal

gabolander
fuente

Respuestas:

6

El parámetro que debe tener en cuenta es parent_domain_matches_subdomains .

Una lista de características de Postfix donde el patrón "example.com" también coincide con los subdominios de example.com, en lugar de requerir un patrón explícito ".example.com". Esta es una compatibilidad planificada con versiones anteriores: eventualmente, se espera que todas las características de Postfix requieran patrones de estilo ".example.com" explícitos cuando realmente desee hacer coincidir los subdominios.

Por lo tanto, parent_domain_matches_subdomains contiene la lista de dominios que postfix también debe coincidir con su subdominio incluso sin (punto) delante de él .

Desafortunadamente, el relay_domainsparámetro cae en esa lista.

# 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

Y debido a que relay_domainscontiene $mydomaino central.mydomain.tld , postfix coincide con todos los subdominios de central.mydomain.tld como relay_domainsno externos.


La solución está configurada parent_domain_matches_subdomainsy no incluye relay_domains en esos parámetros.

masegaloeh
fuente
Muchas gracias, @masegaloeh. ¡Funcionó de maravilla! :) Tu explicación fue muy clara también Tnx nuevamente.
gabolander
@gabolander Si esto funciona, considere aceptar esta respuesta, por lo que la pregunta no está flotando en el grupo sin respuesta
masegaloeh
Ya lo hice, gracias. (No puedo reportarlo como útil, porque necesito 15 como reputación y todavía no lo tengo)
gabolander
0

En mi caso, encontré la lista blanca para el usuario de correo electrónico en: / etc / postfix / relay_recipients Si su usuario no está dentro de esta lista, nunca recibirá un correo electrónico.

Kurt Kranz
fuente