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.