| « Panoramiques (suite) | Panorama - Message à ne pas lire pour éviter d'avoir envie de partir au soleil » |
Postfix - Installation d'un serveur mail secondaire
Ce billet explique rapidement comment installer un serveur mail secondaire ou appellé aussi MX (Mail eXchanger) secondaire, serveur de relai avec Postfix.
A quoi ça sert ?
Lorsqu'il n'y a qu'un seul serveur mail ayant pour tâche de gérer les emails d'un domaine, si celui-ci vient à ne plus être disponible, les emails envoyés par des tiers au serveur principale vont être conservés dans le spool (queue de sortie) du serveur distant pour quelques jours dans le meilleur des cas ou renvoyé avec un message d'erreur immédiatement (en fonction du problème ou de la configuration du serveur distant)...
Les problèmes et les indisponibilités étant inhérents à l'informatique moderne, il est nécessaire de mettre en place un système qui puisse, au
moins de manière dégradée, récupérer les emails de manière transparente pour l'émetteur.
Que fait le MX secondaire ?
Son boulot est pas super passionnant (enfin, je pense que c'est le cas de beaucoup de services web)... Il passe son temps à attendre des emails qui lui arrivent lorsque le serveur émetteur n'a pas pu délivrer ou contacter le MX primaire. Quand il les reçoit, il les conserve dans son spool et il essaye à intervalle régulier de contacter le serveur primaire pour lui transmettre ces emails.
...
Quel outil utiliser ?
Mon serveur mail de prédilection est qmail. Je connais bien l'architecture et les possibilités de celui-ci. Cependant, il est assez long à déployer et n'est pas prévu pour gérer ce genre de chose.
De plus, mon serveur primaire utilisant un qmail, je tenais à utiliser un autre logiciel pour éviter que l'erreur s'étant produite sur le primaire touche le secondaire.
J'utilise donc un autre serveur mail libre qui a très bonne réputation :
postfix. Sa configuration est limpide (surtout quand on a touché à Qmail), claire et propre.
Comment on déclare dans la configuration du serveur qu'il va être un MX secondaire ?
Une fois postfix installé (apt-get install postfix sous Debian), il faut éditer le fichier /etc/postfix/main.cf et rajouter une seule ligne :
relay_domains = $mydestination ledru.info ecranbleu.org et rajouter la liste des domaines qui vont être gérer dans le secondaire à la suite (juste séparé par des espaces).
Un restart du serveur et voila, ça devrait suffir pour que le serveur secondaire veuille bien traiter ces emails.
Comment je peux voir ce qu'il y a dans le spool ?
Les développeurs de Postfix ont intégré un système permettant d'afficher la queue. Pour celà, il suffit de taper la commande mailq.
-Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient-------
D6EC946E64* 909 Thu Jan 13 08:16:19 sylvestre@dfe_.com.au
sylvestre@ledu_.info
1140 Thu Jan 13 08:16:05 sylvestre@mea_.com
(connect to trunks.ledru.info[195.137.249.61]: Connection refused)
sylvestre@ledu__.info
Mon serveur primaire est revenu et je veux récuperer mes emails rapidement : comment je lui demande de tout renvoyer ?
Il suffit de taper la commande :
mailq -q
Heu, je reçois plus de SPAM avec cette solution ?
Ca vient du faire que par défaut, postfix ne fait pas de vérification ORBL (open relay black list) ni ne fait vérification de base sur les emails reçus (erreur de protocole, etc.).
Pour celà, il faut rajouter dans /etc/postfix/main.cf :
smtpd_recipient_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
reject_unauth_destination,
reject_invalid_hostname,
reject_non_fqdn_sender,
reject_unknown_sender_domain,
reject_non_fqdn_recipient,
reject_unknown_recipient_domain,
reject_rhsbl_client blackhole.securitysage.com,
reject_rhsbl_sender blackhole.securitysage.com,
reject_rbl_client relays.ordb.org,
reject_rbl_client opm.blitzed.org,
reject_rbl_client list.dsbl.org,
reject_rbl_client sbl.spamhaus.org,
reject_rbl_client cbl.abuseat.org,
reject_rbl_client dul.dnsbl.sorbs.net,
permit
reject_unauth_pipelining,
permit
Et niveau DNS, faut faire quoi ?
C'est facile. Il suffit de rajouter une autre ligne de priorité plus importante que l'autre (la plus petite priorité est celle du serveur primaire) :
Ainsi, ça va donner par exemple :
IN MX 10 trunks.ledru.info.
IN MX 30 yuko.ecranbleu.org.
Tu as d'autres conseils ?
Oui, un important :
quand le serveur primaire revient en ligne, le secondaire va tout lui envoyer d'un coup. Donc si il y a un spamassassin qui tourne dessus, ça risque de saturer celui-ci...
3 commentaires
/etc/postfix/main.cf
Je le rajoute dans ma doc :)
J'aimerais connaitre les ouvertures à faire pour que mon relais smtp utilise les orbls.
acces direct aux sites webs ou ca utilise le port 25 du relais
Merci