Debian – Backup MX

Tutoriel Linux

Dan ce tutoriel, nous allons installer et configurer un serveur Debian avec Postfix afin d’en faire un serveur de mail secondaire, plus communément appelé “Backup MX”

Principe

Pourquoi créer un serveur secondaire pour ses emails ?
La réponse est en soit assez simple; pour ne pas perdre des emails en cas de panne du serveur principal.

Prérequis et installations

Serveurs DNS

Avant toute chose, il faut s’assurer que vous ayez au moins deux serveurs DNS externes afin de palier toute panne. A quoi vous servirait-il d’avoir deux serveurs de mails si votre seul et unique serveur DNS venait à tomber en panne ?
Il vous faut donc deux serveurs :

  • un primaire
  • un secondaire

Sur le serveur primaire, vous avez déjà très certainement créé un enregistrement MX pointant sur le nom de votre serveur principal de mail. Nous allons donc nous occuper de la création du second enregistrement MX de votre second serveur de mail. Selon la plateforme que vous utilisez, la manipulation sera différente, mais le résultat toujours le même:

mx1.mondomaine.com 10
mx2.mondomaine.com 20

Dans l’exemple ci-dessus, le serveur principal est mx1.mondomaine.com, et il a une priorité 10, ce qui veut dire qu’il est utilisé avant tout autre serveur ayant un chiffre plus élevé. En résumé, plus le chiffre est petit, plus la priorité est grande. Ainsi, le second serveur mx2.mondomaine.com à lui une priorité de 20.
Il suffit de créer ses enregistrements de type “MX” sur le serveur DNS principal, car le secondaire sera automatiquement synchronisé.

Serveur

Le serveur n’a pas besoin d’être un monstre de puissance, une simple machine fera parfaitement l’affaire, sauf si bien entendu vous gérez des milliers de comptes emails ou plusieurs centaines de domaines! Le plus important est que ce serveur soit hébergé si possible dans un autre endroit que votre serveur principal. Ainsi en cas de panne de votre accès internet ou de désastre dans votre local technique, vous aurez la garantie d’avoir votre serveur secondaire toujours accessible!
Pour ma part, j’utilise un serveur virtuel hébergé chez DigitalOcean, un simple VPS à 5$ par mois.
Je précise à toute fin utile que je ne suis nullement actionnaire de cette société 🙂

Debian

Dans notre exemple, nous utilisons la distribution de base de Debian 7 fournie par DigitalOcean. Vous pouvez naturellement utiliser toute autre distribution Linux, mais Debian est réputé pour sa stabilité et c’est la raison pour laquelle mon choix c’est tout naturellement porté sur celle-ci. Je n’entrerais pas plus en détail dans l’installation du Systèmes d’exploitation, ce qui sortirais du cadre de ce tutoriel. Reportez-vous à la rubrique références ou vous trouverez des liens sur la documentation officielle de Debian.

Postfix

Nous allons maintenant installer Postfix. Mais commençons par être certain que nôtre serveur est bienvenue à jour:

apt-get update && apt-get upgrade -y

Installons postfix:

apt-get install postfix

Choisissez l’option “Internet site” quand le programme d’installation vous demandera le type de déploiement que vous voulez effectuer. L’installation de base est maintenant effectuée. Il nous reste à passer à la configuration à proprement parler.

Configuration de Postfix

Sécurisation de Postfix

Il est primordial de sécuriser notre serveur de mail. Les serveurs secondaires de mails sont malheureusement souvent pris pour cible par les spammeurs car ils sont en général moins bien protégé. Mais avec quelques bonnes lignes dans le fichier de configuration de Postfix, nous allons rendre la tâche des spammeurs plus compliquées. Pour bien comprendre chaque paramètre que nous allons ajouter, nous diviserons les transactions SMTP en trois sections, mais toutes ces paramètres sont à ajouter au fichier /etc/postfix/main.cf

nano /etc/postfix/main.cf
disable_vrfy_command = yes
smtp_soft_error_limit = 10
smtp_hard_error_limit = 20

smtpd_helo_required = yes
smtpd_helo_restrictions = permit_mynetworks,
reject_non_fqdn_helo_hostname,
reject_invalid_helo_hostname,
reject_unknown_helo_hostname

smtpd_sender_restrictions =
reject_non_fqdn_sender,
reject_unknown_sender_domain

smtpd_recipient_restrictions = permit_mynetworks,
permit_mx_backup,
reject_unauth_destination,
reject_non_fqdn_recipient,
reject_unknown_recipient_domain

smtpd_client_restrictions = permit_mynetworks,
reject_unknown_client_hostname,
reject_unknown_reverse_client_hostname,
reject_rbl_client zen.spamhaus.org,
reject_rbl_client bl.spamcop.net,
reject_rbl_client dnsbl.sorbs.net,
reject_rbl_client cbl.abuseat.org,
permit

Vous trouverez le descriptif de chaque paramètre sur cette page http://www.postfix.org/postconf.5.html

Domaines à sécuriser

On va maintenant s’occuper des domaines pour lesquelles nôtre serveur va être le serveur secondaire.
On commence par modifier le fichier /etc/postfix/main.cf en y ajoutant liste des domaines que l’on veut relayer:

relay_domains =
domaine1.com
domaine2.com
domaine3.com
transport_maps = hash:/etc/postfix/transport

On crée ensuite le fichier “transport” ou l’on stypule le routage des mails pour chaque domaine relayé.
La syntaxe est “domaine.com: [serveurprincipal.domaine.com]”.

nano /etc/postfix/transport

et on y ajoute ces lignes:

domaine1.com :[mx1.domaine1.com]
domaine2.com :[mx1.domaine2.com]
domaine3.com :[mx1.domaine3.com]

On rend le fichier lisible par Postfix:

postmap /etc/postfix/transport

On redémarre ensuite le service Postfix:

/etc/init.d/postfix restart

Tests

Pour voir la liste des mails en attente :

postqueue -p

Pour forcer le “retry” de la queue :

postqueue -f

Références

A propos Fred 61 Articles
J’ai toujours eu une passion pour les nouvelles technologies et l’informatique. J'ai créé ce blog dans les années 2000 afin de faire partager mes expériences aux autres passionnés de nouvelles technologies.

Soyez le premier à commenter

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.


*


Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.