Installer son propre serveur mail avec Modoboa sur Debian

Publié le Mis à jour le 6 min de lecture

L'installateur Modoboa met en place Postfix, Dovecot, le webmail et le SSL en une seule passe. Voici comment installer votre propre serveur mail sur Debian et créer les enregistrements DNS nécessaires.

Vous ne voulez plus laisser vos e-mails chez un fournisseur de messagerie gratuite, mais les héberger sur votre propre serveur, sous votre propre domaine ? Modoboa est l'une des solutions les plus confortables pour cela. Son installateur met en place Postfix, Dovecot, la base de données, le filtre antispam, le webmail et une interface d'administration en une seule passe.

Ce guide décrit l'installation sur Debian 12 et Debian 11. Debian 10 n'est plus pris en charge et ne devrait plus servir de base à un nouveau serveur mail.

Prérequis

  • Un vServer ou un serveur root à vous, avec une installation Debian toute fraîche. Nous recommandons (sans obligation, mais c'est plus sain) de réserver un petit serveur au seul service de messagerie, car le nom d'hôte et le reverse DNS sont adaptés au domaine de messagerie.
  • Un accès root via SSH.
  • Un domaine à vous, dont vous pouvez définir vous-même les enregistrements DNS.
  • Une adresse IPv4 fixe pour laquelle vous pouvez déclarer un enregistrement reverse DNS.
  • Les ports de messagerie doivent être joignables : 25 (SMTP), 587 et 465 (envoi par vos utilisateurs), 143 et 993 (IMAP), ainsi que 80 et 443 pour le webmail et l'émission du certificat.

Important : lancez l'installation sur un système fraîchement installé. Un serveur web déjà en service ou une base de données existante font régulièrement échouer l'installateur.

Préparer le système

Commencez par mettre à jour la liste des paquets ainsi que tous les paquets installés :

apt update && apt upgrade -y

Installez ensuite les paquets attendus par l'installateur :

apt-get install sudo git python3 mariadb-server -y

Terminez la configuration de la base de données en répondant aux questions de l'assistant. Choisissez à cette occasion un mot de passe solide pour l'administrateur de la base :

sudo mysql_secure_installation

Définir le nom d'hôte

Le serveur a besoin d'un nom d'hôte complet, cohérent avec le futur domaine de messagerie. Sans cette étape, l'installation échoue :

hostnamectl set-hostname mail.<DOMAINE>.<EXTENSION>

Le mieux est de créer dès maintenant, dans votre DNS, l'enregistrement A correspondant exactement à ce nom. L'installateur demandera plus tard un certificat Let's Encrypt, et cela ne peut aboutir que si le nom pointe déjà vers l'IP de votre serveur.

Télécharger l'installateur Modoboa

cd /tmp
git clone https://github.com/modoboa/modoboa-installer
cd modoboa-installer

Générer et adapter le fichier de configuration

Laissez d'abord l'installateur créer uniquement le fichier de configuration, puis s'arrêter :

python3 ./run.py --stop-after-configfile-check <DOMAINE>.<EXTENSION>

Ouvrez le fichier généré :

nano installer.cfg

Adaptez les sections suivantes. Le serveur obtient ainsi un certificat SSL gratuit de Let's Encrypt et se connecte à la base de données locale :

[certificate]
generate = true
type = letsencrypt

[letsencrypt]
email = admin@<DOMAINE>.<EXTENSION>

[database]
engine = mysql
host = 127.0.0.1
install = true

Indiquez une adresse e-mail que vous relevez réellement. Let's Encrypt s'en sert pour vous avertir si un renouvellement n'a pas lieu.

Lancer l'installation

python3 ./run.py mail.<DOMAINE>.<EXTENSION>

L'opération prend quelques minutes. Profitez-en pour créer les enregistrements DNS.

Créer les enregistrements DNS

Enregistrement A et enregistrement MX

L'enregistrement A pointe vers l'IP de votre serveur, l'enregistrement MX indique au reste du monde quel hôte accepte les mails de votre domaine. La priorité « 10 » est la valeur habituelle lorsqu'il n'y a qu'un seul serveur mail :

1er enregistrement :
Sous-domaine : mail
Type : A (IPv4)
Cible : <IP-Serveur>
Le résultat doit ressembler à ceci : mail.<DOMAINE>.<EXTENSION> IN A <IP-Serveur>

2e enregistrement :
(Sous-domaine : @)
Type : MX
Cible : mail.<DOMAINE>.<EXTENSION>
Le résultat doit ressembler à ceci : @ IN MX 10 mail.<DOMAINE>.<EXTENSION>

SPF, DKIM et DMARC

Sans ces trois enregistrements, vos mails finiront très probablement dans le dossier spam de vos destinataires. Les grands fournisseurs les exigent désormais explicitement.

SPF définit quels serveurs ont le droit d'envoyer pour votre domaine. À déclarer en enregistrement TXT sur le domaine principal :

Type : TXT
Nom : @
Valeur : v=spf1 mx -all

DKIM signe cryptographiquement vos mails sortants. Modoboa sait générer lui-même les clés pour chaque domaine. Après l'installation, vous trouvez la clé publique dans l'interface d'administration, dans les paramètres du domaine concerné. C'est cette valeur que vous déclarez en enregistrement TXT dans le DNS.

DMARC indique aux destinataires comment traiter les mails qui échouent à SPF ou à DKIM. Commencez par un réglage en simple observation, puis durcissez-le plus tard :

Type : TXT
Nom : _dmarc
Valeur : v=DMARC1; p=none; rua=mailto:postmaster@<DOMAINE>.<EXTENSION>

Reverse DNS (PTR)

L'enregistrement PTR résout votre adresse IP en nom d'hôte. Beaucoup de serveurs mail refusent purement et simplement les connexions sans enregistrement PTR cohérent. Chez nous, vous le définissez vous-même dans l'espace client :

"Mes services" -> "Sélectionner le serveur" -> "Cliquer sur le bouton Reverse DNS" -> mail.<DOMAINE>.<EXTENSION>

L'important est que l'enregistrement PTR et le nom d'hôte correspondent exactement.

Premiers pas après l'installation

Si l'installation s'est bien déroulée, redémarrez le serveur une fois :

reboot

Vous accédez ensuite à l'interface d'administration sur https://mail.<DOMAINE>.<EXTENSION>. Connectez-vous avec le compte administrateur créé par l'installateur et changez le mot de passe en tout premier. Créez ensuite votre domaine ainsi que les boîtes aux lettres souhaitées.

Testez ensuite dans les deux sens : envoyez un mail depuis votre nouveau serveur vers une boîte externe, puis un mail depuis l'extérieur vers votre nouvelle adresse. Pour contrôler que SPF, DKIM, DMARC et PTR fonctionnent correctement, le plus rapide reste l'un des testeurs de messagerie disponibles gratuitement en ligne.

Erreurs fréquentes

  • L'installation s'interrompt immédiatement : le nom d'hôte n'est pas un nom de domaine complet. Vérifiez-le avec hostname -f.
  • Le certificat n'est pas émis : l'enregistrement A de mail.VotreDomaine ne pointe pas vers le serveur, ou bien le port 80 est bloqué. Let's Encrypt valide le domaine via le port 80.
  • Les mails arrivent en spam : il manque le plus souvent l'enregistrement PTR, ou bien SPF et DKIM ne sont pas définis. Vérifiez les quatre enregistrements avant de mettre le serveur en production.
  • Les mails sortants sont rejetés : l'adresse IP figure peut-être sur une liste de blocage. La plupart des opérateurs proposent un formulaire de consultation et de retrait.
  • L'installateur signale une erreur de base de données : MariaDB n'a pas encore été finalisé avec mysql_secure_installation, ou bien la section relative à la base de données du fichier installer.cfg n'est pas correcte.
  • Plus rien ne fonctionne après un redémarrage : vérifiez les services concernés avec systemctl status postfix dovecot nginx.

Un serveur mail à soi demande plus d'entretien que d'autres services : mises à jour, sauvegardes des boîtes aux lettres et surveillance de la délivrabilité. Si vous prenez cela en charge, vous gagnez en échange le contrôle complet de votre communication.

Auteur : XEfnexX (pseudonyme)

Questions fréquentes

Quelle version de Debian faut-il pour Modoboa ?
Utilisez Debian 12 ou Debian 11, sur une installation toute fraîche. Debian 10 n'est plus pris en charge et ne devrait plus servir de base à un nouveau serveur mail.
Pourquoi mes mails arrivent-ils dans le dossier spam ?
Dans la plupart des cas, l'enregistrement reverse DNS manque, ou bien aucun enregistrement SPF, DKIM et DMARC n'est défini. Vérifiez ces quatre points avant de mettre le serveur en production.
Puis-je installer Modoboa sur un serveur qui héberge déjà un site web ?
Nous le déconseillons. L'installateur attend un système vierge et s'interrompt régulièrement lorsqu'un serveur web ou une base de données tourne déjà.
Quels ports dois-je ouvrir ?
Le port 25 pour la réception des mails, 587 et 465 pour l'envoi par vos utilisateurs, 143 et 993 pour IMAP, ainsi que 80 et 443 pour le webmail et l'émission du certificat SSL.
Comment définir l'enregistrement reverse DNS ?
Vous définissez l'enregistrement PTR vous-même dans l'espace client, sous Mes services : sélectionnez le serveur, ouvrez Reverse DNS et saisissez-y le nom d'hôte de votre serveur mail.

Serveur mail Modoboa Postfix Dovecot Debian SPF-DKIM-DMARC Reverse-DNS