Postfix: endereço do destinatário rejeitado: usuário desconhecido na tabela de destinatários local, mesmo que o domínio do destinatário seja um domínio externo

9

Na infraestrutura da minha empresa, tenho um servidor de correio interno com postfix cujo nome é, digamos, srv-internal.central.mydomain.tld com o IP interno 10.10.128.200.

Para trocar e-mails com a Net, ele usa um relay mail server (um servidor em um ambiente DMZ com todos os furos necessários, por exemplo), mesmo com postfix, cujo nome é mailgw.central.mydomain.tld com interface interna IP 10.10.133.105

O nome de domínio público da nossa infraestrutura é (digamos) " central.mydomain.tld ", mas " pec.central.mydomain.tld " NÃO nosso subdomínio . É fornecido por outro ISP fora da nossa rede (portanto, os e-mails para esse domínio precisam sair).

Se eu enviar um email de [email protected] (da máquina srv-internal.central.mydomain.tld) para [email protected] .tld , recebo do servidor de retransmissão o seguinte erro:

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]

Meu servidor de retransmissão está no Linux CentOS versão 5.7, o lançamento do postfix é o postfix-2.3.3-2.1.el5_2 dos repositórios padrão do CentOS.

Digamos que meu domínio seja:

 mydomain = central.mydomain.tld

E a configuração do meu postfix no servidor de retransmissão, atualmente, é a seguinte:

(postconf -d; postconf -d; postconf -n;) | classificar | 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 este é o meu / 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]

Agora, Endereço do destinatário rejeitado: Usuário desconhecido na tabela de destinatários do relay parece que o servidor de retransmissão (mailgw) "pensa" que "pec.central.mydomain.tld" é um de seus subdomínios, então ele procura pelo usuário destinatário em seu relay_recipient_maps, enquanto não deve IMHO.

Eu esperava esse comportamento se eu colocasse ".central.mydomain.tld" (com ponto inicial!) na minha tabela de transporte, mas eu realmente tenho "central.mydomain.tld", portanto, lendo manuais, só deve considerar o nome de domínio, e não também subdomínios.

Eu aprecio muito se alguém pudesse me sugerir o que estou fazendo de errado.

    
por gabolander 04.09.2014 / 10:56

2 respostas

6

O parâmetro do qual você deve estar ciente é parent_domain_matches_subdomains .

A list of Postfix features where the pattern "example.com" also matches subdomains of example.com, instead of requiring an explicit ".example.com" pattern. This is planned backwards compatibility: eventually, all Postfix features are expected to require explicit ".example.com" style patterns when you really want to match subdomains.

Assim, parent_domain_matches_subdomains contém a lista de domínios em que o postfix deve corresponder ao seu subdomínio, mesmo sem (ponto) na frente dele .

Infelizmente, o parâmetro relay_domains cai para essa 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

E como relay_domains contém $mydomain ou central.mydomain.tld , o postfix corresponde a todos os subdomínios de central.mydomain.tld como relay_domains not external queridos.

A solução está definida como parent_domain_matches_subdomains e don inclua relay_domains nesses parâmetros.

    
por 04.09.2014 / 11:42
0

No meu caso, encontrei a lista de permissões para o usuário de e-mail em: / etc / postfix / relay_recipients Se o seu usuário não estiver dentro dessa lista, ele nunca receberá um email.

    
por 06.09.2018 / 10:10

Tags