Relais SMTP Postfix + Exchange 2010

Bonjour à tous,

J’essaye depuis quelques temps de configurer un relais SMTP avec Postfix (Debian Squeeze, kernel 2.6.32-5-686), en frontal, avec un serveur Exchange 2010 derrière. Ces deux serveurs sont virtualisés sous environnement ESX 5.0, et communiquent (ping OK).

Mon serveur Exchange est également contrôleur de domaine de “exemple.com”. Les boîtes mails correspondent à un autre nom de domaine (titi.fr) Le flux DNS est bien ouvert par mon FAI, je récupère sur mon relais les mails à destination de titi.fr.

–> Les boîtes mails en local fonctionnent bien (envoi et réception)
–> Le relais bloque systématiquement les requêtes provenant de l’extérieur (Relay Access Denied) vers titi.fr
–> Les logs du relais n’affichent aucune trace des mails désirant sortir sur Internet (de mon LAN vers Internet donc)

Schéma:

SERVEUR EXCHANGE -----> RELAIS (POSTFIX) <----- INTERNET

Adresses IP:
Serveur Exchange : [172.21.44.X/24]
RELAIS [172.21.41.X/24] [90.X.X.X]

Mon fichier /etc/postfix/main.cf:

smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no

# appending .domain is the MUA's job.
append_dot_mydomain = no

readme_directory = no

# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

myhostname = RELAIS-SMTP.exemple.com
myorigin = titi.fr
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = titi.fr
mydestination = RELAIS-SMTP.titi.fr, RELAIS-SMTP.exemple.com, localhost.exemple.com, localhost
relayhost =
relaydomains = titi.fr
mynetworks = 127.0.0.0/8, 172.21.41.0/24, 172.21.44.0/24
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all

transport_maps =  hash:/etc/postfix/transport
relay_recipient_maps = hash:/etc/postfix/relay_recipients

Le contenu de master.cf:

[code]smtp inet n - - - - smtpd
pickup fifo n - - 60 1 pickup
cleanup unix n - - - 0 cleanup
qmgr fifo n - n 300 1 qmgr
tlsmgr unix - - - 1000? 1 tlsmgr
rewrite unix - - - - - trivial-rewrite
bounce unix - - - - 0 bounce
defer unix - - - - 0 bounce
trace unix - - - - 0 bounce
verify unix - - - - 1 verify
flush unix n - - 1000? 0 flush
proxymap unix - - n - - proxymap
proxywrite unix - - n - 1 proxymap
smtp unix - - - - - smtp
relay unix - - - - - smtp
-o smtp_fallback_relay=
showq unix n - - - - showq
error unix - - - - - error
retry unix - - - - - error
discard unix - - - - - discard
local unix - n n - - local
virtual unix - n n - - virtual
lmtp unix - - - - - lmtp
anvil unix - - - - 1 anvil
scache unix - - - - 1 scache
maildrop unix - n n - - pipe

flags=DRhu user=vmail argv=/usr/bin/maildrop -d ${recipient}
uucp unix - n n - - pipe

flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient)
ifmail unix - n n - - pipe

flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient)
bsmtp unix - n n - - pipe

flags=Fq. user=bsmtp argv=/usr/lib/bsmtp/bsmtp -t$nexthop -f$sender $recipient
scalemail-backend unix - n n - 2 pipe

flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store ${nexthop} ${user} ${extension}
mailman unix - n n - - pipe

flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py
${nexthop} ${user}
[/code]
Le contenu du fichier transport:

Le contenu de relay_recipients:

Exemple de logs lorsque je tente d’envoyer un mail à partir d’une adresse GMAIL à destination de test@titi.fr:

Quelques problèmes:

  • Je ne sais pas si mes variables relaydomain et relayhosts sont bonnes
  • Je ne sais pas si le serveur indiqué dans /etc/postfix/transport doit faire apparaître le FQDN relatif au domaine sur lequel il est (exemple.com), ou au nom de domaine pour les BAL qu’il gère (titi.fr)

Merci d’avoir pris le temps de me lire, j’espère avoir été assez clair, et que vous pourrez m’aider. Si besoin, n’hésitez pas à me demander des informations supplémentaires (là je ne vois pas trop quoi rajouter).

Bon, j’ai avancé mais il me reste toujours quelques soucis:

Main.cf:

alias_maps = hash:/etc/aliases append_dot_domain = no biff = no mynetworks = 127.0.0.0/8 172.21.41.0/24 172.21.44.0/24 readme_directory = no recipient_delimiter = + relay_domains = saint-denis-habitat.fr #relay_recipient_maps = hash:/etc/postfix/relay_recipients smtpd_banner = $myhostname ESMTP $mail_name (GNU/Linux) transport_maps = hash:/etc/postfix/transport mydestination = WIN-RC5MC53HC0V, WIN-RC5MC53HC0V.testpch.local, localhost mydomain = saint-denis-habitat.fr relayhost =
J’ai remis le fichier master.cf d’origine et ne l’ai pas touché.

J’avais oublié d’enregistrer mon serveur relais en tant que MX sur mon serveur DNS…
— Maintenant, les mails provenant d’Internet parviennent bien sur ma boîte mail (test.titi.fr)
— Impossible d’envoyer des mails à partir de titi.fr vers une boîte mail externe.

Quelqu’un aurait-il une idée…?