Serveur de messagerie personnel avec Mail-in-a-Box sur un serveur cloud
Introduction
Exploiter un serveur de messagerie personnel peut être judicieux pour plusieurs raisons :
Vous pouvez créer un nombre illimité de boîtes aux lettres ou de redirections sans qu’aucun coût supplémentaire n’intervienne. Bien sûr, le nombre de boîtes aux lettres possibles sur le serveur dépend également des capacités matérielles fournies, telles que la taille de la mémoire vive, la puissance du processeur et l’espace de stockage du serveur. Si vous utilisez les serveurs cloud de hosting.fr, vous avez la possibilité d’ajuster les performances du matériel de manière dynamique en changeant pour un forfait plus grand.
Vous pouvez décider vous-même quel logiciel vous souhaitez utiliser sur votre serveur de messagerie et comment il doit être configuré. Par exemple, vous pouvez autoriser des pièces jointes de courriels de n’importe quelle taille ou paramétrer le filtre anti-spam selon vos souhaits.
Vous avez plus de contrôle sur vos données. Par exemple, vous pouvez créer des sauvegardes de toutes les boîtes aux lettres avec n’importe quel logiciel vers des destinations librement choisies.
L’intégration du serveur de messagerie dans votre infrastructure d’entreprise existante est facilitée. Par exemple, l’utilisation d’une authentification des utilisateurs par LDAP est théoriquement possible.
Le serveur de messagerie peut être intégré au VPN de votre entreprise.
Vous pouvez chiffrer les données sur votre serveur de messagerie. Cela est possible grâce à l’utilisation du chiffrement de disque du système d’exploitation Linux.
Cependant, exploiter un serveur de messagerie personnel peut également entraîner des problèmes et des inconvénients :
L’exploitation d’un serveur de messagerie personnel nécessite de prendre la responsabilité du système de messagerie et de faire preuve de prudence. Une défaillance du serveur de messagerie, des courriels traités de manière incorrecte ou perdus peuvent perturber des processus commerciaux dans l’entreprise. Les courriels stockés peuvent contenir des informations critiques pour l’entreprise auxquelles des tiers ne doivent en aucun cas avoir accès.
Un serveur de messagerie mal configuré peut amener d’autres serveurs de messagerie à classer vos e-mails comme des spams, à les refuser ou à inscrire votre serveur de messagerie sur des listes noires centrales comme non fiable.
La configuration d’un serveur de messagerie nécessite certaines connaissances techniques que l’administrateur doit soit posséder, soit acquérir.
Un serveur de messagerie personnel doit être entretenu. Un minimum d’entretien consiste à installer régulièrement des mises à jour de sécurité.
Un serveur de messagerie se compose de plusieurs composants. L’installation manuelle et la configuration de ces composants sont laborieuses. Cependant, plusieurs options existent désormais pour installer, configurer et entretenir ces composants de manière automatisée. Dans cet article, nous utiliserons le script “Mail-in-a-Box”. Il installe et configure automatiquement un serveur de messagerie avec tous les composants importants. Le projet est supervisé par Joshua Tauberer.
Exigences
Ce guide est destiné aux administrateurs ayant des connaissances de base en Linux et familiers avec l’administration d’un système Linux via la ligne de commande.
Vous aurez besoin pour faire fonctionner le serveur de messagerie d’un serveur avec une adresse IP fixe sur Internet, qui dispose d’une connexion Internet fiable et permanente. Nous vous recommandons nos serveurs cloud à cet effet. Un minimum de 512 Mo de mémoire vive est requis.
Pour Mail-in-a-Box, vous aurez besoin d’un serveur ou d’un serveur cloud chez hosting.fr avec une installation fraîche d’Ubuntu Linux dans la version LTS actuelle. Au moment de la rédaction de ce guide, il s’agit d’Ubuntu 18.04 LTS “Bionic Beaver”. L’installation du système d’exploitation sur un serveur cloud chez hosting.fr peut se faire entièrement automatiquement via l’interface web.
Pour envoyer et recevoir des courriels, vous aurez besoin d’un nom de domaine dont vous pouvez modifier les enregistrements DNS. Le serveur de messagerie a également besoin d’un nom d’hôte valide. Nous supposons que vous avez réservé un domaine chez hosting.fr.
Aperçu
Un serveur de messagerie se compose généralement des composants suivants :
Le serveur SMTP est responsable de la réception et de l’envoi des courriels. Il stocke les courriels reçus sur le serveur et envoie les courriels reçus des clients vers d’autres serveurs SMTP.
Le serveur IMAP ou le serveur POP3 permettent la récupération des e-mails stockés sur le serveur de messagerie par le client.
Le filtre anti-spam est responsable du filtrage des e-mails entrants.
L’interface web sert à la gestion conviviale du serveur de messagerie.
Pour la résolution de noms de domaine en adresses IP via le système de noms de domaine (DNS), un serveur DNS est requis. Pour DNS, il existe des extensions de sécurité supplémentaires “Domain Name System Security Extensions” (DNSSEC) qui étendent le système par un chiffrement.
Tous les composants sont automatiquement installés et configurés par “Mail-in-a-Box”.
Pour ceux qui s’intéressent, ce graphique fournit un aperçu des composants de Mail-in-a-Box et de la manière dont ils interagissent. Les principaux sont :
- Postfix : en tant que serveur SMTP
- Dovecot : en tant que serveur IMAP(S) et POP3, ainsi que pour le filtrage des courriels avec Sieve
- Spamassassin : en tant que filtre anti-spam
- nginx : en tant que serveur web
- Nextcloud : pour la synchronisation des calendriers et des contacts
- Roundcube : en tant qu’interface webmail
Étape 1 : Création d’un serveur cloud
Si vous n’avez pas encore effectué cette étape, veuillez créer un nouveau serveur cloud chez hosting.fr avec le système d’exploitation actuellement requis pour Mail-in-a-Box. Au moment de la rédaction de cet article, il s’agit d’Ubuntu 18.04 LTS. Mail-in-a-Box nécessite un serveur fraîchement installé.
Étape 2 : Ajustement des paramètres DNS
Mail-in-a-Box comprend également un serveur DNS intégré. Pour une séparation fonctionnelle entre le serveur DNS et le serveur de messagerie, nous n’utiliserons toutefois pas celui-ci dans ce tutoriel, mais les serveurs DNS par défaut déjà utilisés chez hosting.fr, qui sont plusieurs fois redondants, et dont les entrées peuvent être modifiées via l’interface de gestion de hosting.fr.
Veuillez ajuster les paramètres DNS de votre domaine en conséquence. Cela se fait chez hosting.fr dans l’interface web.
Le serveur de messagerie nécessite une entrée “A” et “AAAA” valide pour son nom d’hôte. L’entrée “A” contient l’adresse IPv4 de votre serveur, tandis que l’entrée “AAAA” contient l’adresse IPv6 du serveur. Dans notre cas, nous utilisons le nom d’hôte “mailinabox.mustermann-domain.fr” sous le domaine “mustermann-domain.fr” pour le serveur de messagerie.
L’entrée de Reverse-DNS (RDNS) du serveur de messagerie, également appelée “enregistrement PTR”, doit être configurée correctement. Elle associe l’adresse IP du serveur à un nom d’hôte. Les entrées RDNS peuvent être définies chez hosting.fr dans la configuration réseau du serveur cloud. Veuillez définir ici l’entrée RDNS de l’adresse IPv4 et de l’adresse IPv6 sur le nom d’hôte du serveur de messagerie.
Les enregistrements de type “Mail Exchange Resource Records” (MX), apparemment appelés “enregistrements MX”, définissent quel serveur de messagerie doit traiter les e-mails reçus pour le domaine respectif. Plusieurs enregistrements MX avec des priorités différentes pour plusieurs serveurs peuvent être définis. Comme nous exploitons seulement un serveur de messagerie dans cet article, un enregistrement MX avec priorité 10 suffit. L’enregistrement MX pointe vers le nom d’hôte du serveur de messagerie. Si le serveur de messagerie doit traiter des e-mails pour plusieurs domaines, veuillez également modifier les enregistrements MX des autres domaines.
Étape 3 : Déblocage du port 25
Si vous utilisez un serveur cloud hosting.fr, le port 25 pour SMTP sera par défaut bloqué pour éviter l’envoi de spam. Veuillez contacter le support hosting.fr pour déverrouiller ce port.
Étape 4 : Exécution du script Mail-in-a-Box par SSH
Veuillez vous connecter avec des droits root par SSH à votre serveur. Pour des raisons de sécurité, nous vous recommandons d’utiliser l’authentification par clé publique OpenSSH et de désactiver l’authentification par mot de passe sur le serveur.
Veuillez d’abord mettre à jour le système avec :
apt update
apt upgrade
Ensuite, installez le package curl :
apt install curl lsb-release
Veuillez exécuter la commande suivante pour commencer l’installation de Mail-in-a-Box :
curl -s https://mailinabox.email/setup.sh | sudo -E bash
Le script commencera ensuite à installer d’autres packages manquants sur le système et se terminera avec le message suivant :

Veuillez confirmer avec “OK”. Ensuite, vous serez invité à fournir une adresse e-mail que vous souhaitez utiliser pour gérer Mail-in-a-Box :

La partie locale - c’est-à-dire la partie avant le symbole “@” de l’adresse e-mail - est libre. La partie domaine - c’est-à-dire la partie après le symbole “@” - doit correspondre à l’un de vos domaines contrôlés.
Mail-in-a-Box vous demandera ensuite une confirmation concernant le nom d’hôte du serveur de messagerie :

Ceci doit correspondre à l’entrée RDNS. Dans notre exemple, il s’agit de mailinabox.mustermann-domain.fr.
Dans l’étape suivante, il faut configurer la région géographique dans laquelle le serveur sera exploité :

Pour la France, veuillez choisir “Europe” puis “Paris”. Dans l’étape suivante, des clés et des certificats seront générés et l’installation des composants commencera. Cela peut prendre un certain temps.
L’installateur vous demandera alors un mot de passe pour l’utilisateur qui sera utilisé pour gérer le serveur de messagerie :

Veuillez générer un mot de passe et le définir. Une fois l’installation terminée, le message suivant apparaîtra :

Veuillez maintenant accéder à l’interface web de Mail-in-a-Box. Pour ce faire, veuillez visiter la page https://<Votre-Nom-d-hôte>/admin. Mail-in-a-Box utilise à ce stade un certificat auto-signé. Vous devrez donc ajouter une exception dans votre navigateur. Le doigté individuel du certificat a été affiché par Mail-in-a-Box à la ligne de commande pour comparaison.

Après connexion, le résultat d’un contrôle de statut sera affiché :

Tout ce qui apparaît en vert dans la capture d’écran ci-dessus devrait également être visible dans votre contrôle de statut.
Étape 5 : Configurer le certificat SSL avec Let’s Encrypt
Pour configurer un certificat SSL, veuillez cliquer dans le panneau d’administration de Mail-in-a-Box sur “Système” > “Certificats TLS (SSL)”. Cliquez là-dessus sur “Provision”.

Le certificat pour le serveur de messagerie sera configuré automatiquement. Une fois la configuration terminée, le message suivant s’affichera :

En bas de la page, des messages d’erreur peuvent s’afficher concernant les certificats liés à des domaines qui ne sont pas gérés par le serveur de messagerie.
Étape 6 : Plus de sécurité grâce à SPF, DKIM, DMARC et DNSSEC
Les procédures suivantes offrent une protection supplémentaire lors de l’échange d’e-mails. Elles protègent particulièrement contre l’envoi d’e-mails par des serveurs non autorisés avec votre adresse d’expéditeur, ce qui constitue ce qu’on appelle le “spoofing” de votre adresse d’expéditeur.
La procédure Sender Policy Framework (SPF), selon RFC 7208, offre une protection supplémentaire en permettant au serveur de messagerie qui reçoit des e-mails d’un autre serveur de vérifier à l’aide d’enregistrements DNS si le serveur expéditeur est autorisé à envoyer des e-mails pour le domaine respectif. Par exemple, dans un enregistrement DNS pour le domaine, on peut indiquer que seuls les serveurs avec un enregistrement MX pour ce domaine sont autorisés à envoyer des e-mails pour ce domaine.
Avec la procédure DomainKeys Identified Mail (DKIM) selon RFC 6376, les e-mails sortants sur le serveur de messagerie sont signés cryptographiquement. À l’aide de cette signature, le serveur de messagerie récepteur peut vérifier à l’aide d’une clé d’un enregistrement DNS si l’e-mail provient réellement de l’expéditeur indiqué.
Les procédures SPF et DKIM permettent au serveur de messagerie récepteur de savoir si le serveur expéditeur était autorisé à envoyer un e-mail. La procédure Domain-based Message Authentication, Reporting and Conformance (DMARC) selon RFC 7489 donne au serveur de messagerie expéditeur la possibilité de faire savoir au destinataire à l’aide d’un enregistrement DNS quelle procédure doit être suivie lorsque le destinataire reçoit des e-mails falsifiés.
Si les trois procédures doivent être utilisées, les entrées DNS correspondantes doivent être créées sur le serveur DNS. Les enregistrements DNS appropriés sont automatiquement proposés par Mail-in-a-Box. Pour les afficher, cliquez sur “Système” > “DNS externe”.
Les enregistrements DNS suivants de type TXT doivent être transférés dans le serveur DNS de hosting.fr :
Pour la procédure SPF, les entrées suivantes sont nécessaires :
mustermann-domain.fr TXT v=spf1 mx -all
Les entrées nécessaires pour la procédure DKIM :
mail._domainkey.mustermann-domain.fr TXT v=DKIM1; h=sha256; k=rsa; s=email; p=[clé individuelle]
mail._domainkey.mailinabox.mustermann-domain.fr TXT v=DKIM1; h=sha256; k=rsa; s=email; p=[clé individuelle]
La valeur “[clé individuelle]” correspond à une clé qui est générée individuellement par Mail-in-a-Box. Veuillez copier les enregistrements TXT avec vos clés spécifiques générées depuis l’interface web de Mail-in-a-Box et les ajouter dans le serveur DNS de hosting.fr.
Les enregistrements DMARC, qui définissent les règles concernant la manière dont les e-mails détectés comme falsifiés doivent être traités :
_dmarc.mustermann-domain.fr TXT v=DMARC1; p=quarantine
_dmarc.mailinabox.mustermann-domain.fr TXT v=DMARC1; p=quarantine
Les enregistrements DNS ci-dessus pour la procédure DMARC indiquent au serveur de messagerie récepteur de déplacer les e-mails falsifiés en quarantaine.
Étant donné que toutes les procédures mentionnées ci-dessus reposent sur le système DNS, il est conseillé d’activer également DNSSEC pour clore la chaîne cryptographique. Vous pouvez activer DNSSEC dans les “Paramètres avancés” du domaine dans l’interface utilisateur de hosting.fr. Veuillez activer les deux options “DNSSEC” et “Clés à conserver avec le domaine”.
Étape 7 : Création de boîtes aux lettres et d’alias
Les boîtes aux lettres peuvent être créées et gérées dans le panneau d’administration de Mail-in-a-Box sous :
https://mailinabox.mustermann-domain.fr/admin
Dans les boîtes aux lettres, les e-mails peuvent être stockés, tandis que les alias peuvent simplement rediriger des e-mails vers des boîtes aux lettres sur le serveur de messagerie lui-même ou vers d’autres serveurs de messagerie.
Pour gérer les boîtes aux lettres, allez dans le menu via “Mail” > “Utilisateurs” :

Via “Mail” > “Alias” vous pouvez gérer les alias :

Étape 8 : Test du serveur
Avant que le serveur de messagerie ne soit mis en service, certaines vérifications doivent être effectuées pour garantir le fonctionnement correct du serveur de messagerie et également pour éviter que le serveur et son adresse IP n’apparaissent sur une liste noire pour les serveurs de messagerie ou que la réputation du serveur ne soit dégradée dans les filtres anti-spam.
Il existe certains outils sur Internet pour vérifier les configurations des serveurs de messagerie, par exemple :
- Paramètres DNS : recherche avant et inverse pour IPv4 et IPv6
- Certificats SSL
- Vérification de “Relay de messagerie ouvert”
Le site “MXToolbox” est une bonne option pour vérifier la configuration du serveur de messagerie. Veuillez visiter ce site. Dans le champ d’entrée de l’“Outil Super” veuillez entrer “smtp:mailinabox.mustermann-domain.fr”, où “mailinabox.mustermann-domain.fr” est le nom d’hôte du serveur de messagerie. La sortie doit être similaire à la sortie suivante :

Veuillez noter qu’en fonction du TTL de vos enregistrements DNS, cela peut même prendre plusieurs jours avant que les enregistrements DNS que vous avez créés dans l’interface d’administration de hosting.fr soient diffusés sur Internet, car les serveurs DNS sur Internet conservent les informations DNS un certain temps en cache.
De plus, vous devez vérifier les enregistrements MX des domaines pour lesquels le serveur de messagerie doit recevoir des e-mails. Cela se fait avec “mx:mustermann-domain.fr” dans le “MXToolbox”. La sortie devrait être d’environ :

Étape 9 : Sauvegardes
Il est recommandé de réaliser régulièrement des sauvegardes du serveur cloud. Cela permet de récupérer des erreurs sur le serveur ou, si un utilisateur supprime accidentellement des e-mails.
Par défaut, Mail-in-a-Box dispose d’une fonction de sauvegarde intégrée. Mail-in-a-Box crée automatiquement une sauvegarde chaque nuit et la stocke sur le serveur lui-même. Dans le panneau d’administration de Mail-in-a-Box sous “Système” > “Sauvegardes”, vous pouvez définir à quelle fréquence les sauvegardes doivent être effectuées :

Les sauvegardes sur le serveur de messagerie sont automatiquement chiffrées à l’aide de PGP avec la clé stockée sous
/home/user-data/backup/secret_key.txt
L’outil de sauvegarde interne utilise Duplicity. Il est conseillé de télécharger une fois la clé de sauvegarde et de la stocker dans un gestionnaire de mots de passe.
Les sauvegardes sont stockées sous
/home/user-data/backup/encrypted
et sont automatiquement tournées. Cela signifie que d’anciennes sauvegardes sont automatiquement supprimées sous certaines conditions.
À partir de l’emplacement mentionné ci-dessus, les sauvegardes peuvent être téléchargées ou transférées vers d’autres serveurs. Pour cela, vous pouvez par exemple utiliser un cron job avec SFTP.
Vous pouvez occasionnellement copier les sauvegardes sur votre propre ordinateur, par exemple via SFTP avec la commande suivante :
scp -pr root@mailinabox.mustermann-domain.fr:/home/user-data/backup/encrypted ~/mesSauvegardesMailserver/
Le transfert des sauvegardes vers un autre serveur peut également être effectué automatiquement par Mail-in-a-Box. Pour ce faire, le protocole Rsync est utilisé. Par exemple, vous pourriez réserver un second serveur cloud sur lequel stocker uniquement des sauvegardes. Cette fonction peut être configurée via l’interface d’administration. Les sauvegardes seront également conservées localement. Une configuration pourrait ressembler à ceci :

Mail-in-a-Box génère automatiquement une paire de clés RSA pour la connexion SSH, ainsi le clé publique indiquée doit être enregistrée sur le système cible. Mail-in-a-Box transfère alors automatiquement les sauvegardes vers le serveur en question.
Étape 10 : Configuration des clients de messagerie tels qu’Outlook, Thunderbird, Apple Mail, etc.
Les paramètres adaptés pour votre installation de Mail-in-a-Box pour la configuration des clients de messagerie sont affichés dans le panneau d’administration de Mail-in-a-Box sous “Mail” > “Instructions”.

Des instructions pour configurer le nouveau compte sont disponibles pour plusieurs clients :
Maintenance et entretien
Maintenir le système d’exploitation à jour
Le système d’exploitation du serveur de messagerie et les logiciels installés fournis par Ubuntu doivent être mis à jour régulièrement pour corriger d’éventuelles failles de sécurité et erreurs. Pour ce faire, connectez-vous via SSH sur le serveur de messagerie et exécutez les commandes suivantes :
apt update
apt upgrade
Garder Mail-in-a-Box à jour
Outre le système d’exploitation, Mail-in-a-Box doit également être mis à jour à chaque fois qu’une nouvelle version est publiée, en particulier en cas de mises à jour de sécurité. Mail-in-a-Box annonce les nouvelles versions sur son compte Twitter et dans le forum d’assistance. Avant la mise à jour, veillez à consulter les notes de version. Pour commencer la mise à jour de Mail-in-a-Box, il suffit de se connecter par SSH à la box et d’exécuter le script suivant :
curl -s https://mailinabox.email/setup.sh | sudo bash