9 votes

Postfix : Adresse du destinataire rejetée : Utilisateur inconnu dans la table des destinataires locaux, bien que le domaine du destinataire soit un domaine externe.

Dans l'infrastructure de mon entreprise, j'ai un serveur de messagerie interne avec postfix dont le nom est, disons, srv-internal.central.mydomain.tld avec l'IP interne 10.10.128.200.

Pour échanger des courriers électroniques avec le réseau, il utilise un système d'échange d'informations. serveur de courrier électronique relais (un serveur sur un environnement DMZ avec tous les trous d'épingle nécessaires par exemple ), même avec postfix, dont le nom est mailgw.central.mydomain.tld avec une interface interne IP 10.10.133.105

Le nom de domaine public de notre infrastructure est (disons) " central.mondomaine.tld ", mais " pec.central.mondomaine.tld " N'EST PAS notre sous-domaine . Il est fourni par un autre fournisseur d'accès à l'extérieur de notre réseau (les courriers adressés à ce domaine doivent donc sortir).

Si j'envoie un courrier de user1@central.mydomain.tld (de la machine srv-internal.central.mydomain.tld) à foo@pec.central.mydomain.tld J'obtiens du serveur relais l'erreur suivante :

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]

Mon serveur de relais est sous Linux CentOS version 5.7, la version de postfix est postfix-2.3.3-2.1.el5_2 à partir des dépôts CentOS standard.

Disons que mon domaine est :

 mydomain = central.mydomain.tld

Et ma configuration postfix sur le serveur relais, actuellement est la suivante :

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

Et voici mon /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]

Maintenant, Adresse du destinataire rejetée : Utilisateur inconnu dans la table des destinataires du relais Il semble que le serveur de relais (mailgw) "pense" que "pec.central.mydomain.tld" est l'un de ses sous-domaines, il recherche donc l'utilisateur destinataire dans son relay_recipient_maps, alors qu'il ne devrait pas le faire IMHO.

Je m'attendais à ce comportement si je mettais ".central.mondomaine.tld" (avec le point initial !) dans ma table de transport, mais j'ai vraiment "central.mondomaine.tld", donc, en lisant les manuels, il devrait seulement considérer le nom de domaine, et pas aussi les sous-domaines.

J'apprécierais beaucoup si quelqu'un pouvait me suggérer ce que je fais mal.

6voto

masegaloeh Points 17760

Le paramètre que vous devez connaître est le suivant parent_domain_matches_subdomains .

Une liste des fonctionnalités de Postfix pour lesquelles le motif "exemple.com" correspond également aux sous-domaines de exemple.com, au lieu de nécessiter un motif explicite ".exemple.com". Il s'agit d'une rétrocompatibilité planifiée : à terme, toutes les fonctionnalités de Postfix devraient nécessiter des motifs explicites de type ".example.com" lorsque vous souhaitez vraiment faire correspondre des sous-domaines.

Ainsi, parent_domain_matches_subdomains contient l'information suivante liste des domaines pour lesquels postfix devrait faire correspondre leur sous-domaine même sans (point) devant. .

Malheureusement, le relay_domains font partie de cette liste.

# 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

Et parce que votre relay_domains contient $mydomain o central.mondomaine.tld postfix correspond à tous les sous-domaines de central.mondomaine.tld como relay_domains pas les externes.


La solution est réglé parent_domain_matches_subdomains et ne pas inclure relay_domains sur ces paramètres.

0voto

Kurt Kranz Points 1

Dans mon cas, j'ai trouvé la liste blanche pour email-user sous : /etc/postfix/relay_recipients Si votre utilisateur ne fait pas partie de cette liste, il ne recevra jamais d'email.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X