Installer son propre serveur mail avec Modoboa sur Debian
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 ?
Pourquoi mes mails arrivent-ils dans le dossier spam ?
Puis-je installer Modoboa sur un serveur qui héberge déjà un site web ?
Quels ports dois-je ouvrir ?
Comment définir l'enregistrement reverse DNS ?
2023-2026 KernelHost GmbH. Tous droits réservés. Ce guide est protégé par le droit d'auteur. Sa republication sur d'autres sites web, même partielle ou sous une forme modifiée, n'est pas autorisée sans notre accord écrit. Les citations accompagnées de la source et d'un lien sont expressément les bienvenues.

