Il n’est pas toujours facile de mettre en place un serveur mail, notamment si lorsque l’on souhaite utiliser l’ensemble des protocoles qui assurent l’authentification des emails tel que SPF, DKIM et DMARC.
C’est pourquoi je vais vous présenter dans ce tutoriel une solution pour installer un serveur mail sécurisé et stable avec mail-in-a-box.
Article mis à jour le 29/07/2019
Pourquoi mail-in-a-box ?
J’ai testé de nombreuses autres solutions dont notamment Modoboa, Mailcow ou encore iRedMail, et mail-in-a-box est d’après moi la solution la plus simple à déployer, elle propose l’ensemble des fonctionnalités requises pour avoir un serveur mail stable, sécurisé et dispose d'un système de backup.
Les principales fonctionnalités sont :
- Serveur Mail supportant les protocoles : SPF, DKIM & DMARC
- Serveur DNS avec DNSSEC
- Certificats SSL/TLS Let’s Encrypt
- Webmail Roundcube
- Gestion et synchronisation des contacts & calendrier via OwnCloud
- Backup local, Amazon S3 ou via Rsync
- Statud check hebdomadaire incluant le blacklisting de l’IP du serveur
Installer mail-in-a-box
Pré-requis :
– Un VPS avec Ubuntu 18.04 LTS et 2Go de RAM
– Un nom de domaine
– Se connecter au serveur distant avec des clés SSH
On passe à l’installation :
curl -s https://mailinabox.email/setup.sh | sudo bash
Lors de l’installation, choisissez le hostname de votre serveur en utilisant un sous-domaine. Par défaut mail-in-a-box utilisera box.votredomaine.com
Définissez ensuite la première adresse email que vous souhaitez créer, ce sera également votre nom d’utilisateur pour accéder à l’interface d’administration
Sélectionnez votre zone géographique pour mettre à jour le serveur de temps puis validez.
Sélectionnez ensuite la ville correspondant à votre fuseau horaire, dans mon cas Paris.
Une fois l’installation terminée, vous pourrez accéder au panel d’administration via l’adresse :
https://IP-de-Votre-Serveur/admin
Configurer le serveur mail
Vous avez ensuite le choix d’utiliser la box pour gérer vos DNS ou non. En effet Mail-in-a-box inclut un serveur DNS qui mettra en place automatiquement l’ensemble des enregistrements DNS nécessaires pour utiliser le serveur en tant que serveur mail pour votre domaine.
Cependant, vous pouvez très bien utiliser un service DNS externe et il vous suffira dans ce cas de vous rendre sur la page System > External DNS pour obtenir un listing complet des enregistrements DNS. Il vous faudra alors copier ces enregistrements du côté de votre registar pour utiliser la box en tant que serveur mail.
Les enregistrements nécessaires pour utiliser la box en tant que serveur mail sont :
votredomaine.com MX(10) "box.votredomaine.com"
: pour définir la box en tant que serveur mail principal
votredomaine.com TXT "v=spf1 a:box.votredomaine.com -all"
: pour spécifier que la box est le seul serveur autorisé à envoyer des emails pour ce domaine
_dmarc.votredomaine.com TXT "v=DMARC1; p=quarantine"
: pour indiquer que les emails ne respectant pas les règles DKIM ou SPF doivent être envoyé en quarantaine.
mail._domainkey.votredomaine.com TXT "v=DKIM1; k=rsa; s=email; p=la-signature-très-longue-pour-le-dkim"
: qui correspond à la signature DKIM utilisée pour signer les emails sortant de votre serveur.
Mail-in-a-box ajoute également les enregistrements associés au sous domaine www pour éviter que des emails soient envoyés via www.votredomaine.tld. Ils sont facultatifs mais cela ne coûte rien de les mettre en place.
Une fois les enregistrements DNS configurés pour le domaine de votre box, vous pourrez aller dans l’onglet System TLS (SSL) Certificates, et installer un certificat SSL Let’s Encrypt pour sécuriser votre serveur web et mail.
Une fois le processus terminé, vous pourrez accéder à l’interface d’administration via l’adresse : https://box.votredomaine.com/admin
N’oubliez pas également de définir le reverse-DNS sur l’IP du serveur. Cela se fait via le panel de gestion de votre VPS et nécessite que l’enregistrement DNS associé soit existant. Dans cet exemple, le reverse DNS à spécifié sur l’IP du serveur est box.vtbox.xyz
Connecter un client mail
Pour connecter vos clients mail, l’adresse pour les services pop/imap et smtp sera box.votredomaine.com. Les ports à utiliser pour se connecter avec SSL/TLS sont :
IMAP : 993 avec SSL/TLS
POP : 995 avec SSL/TLS
SMTP : 587 avec TLS
Ajouter un domaine
Pour ajouter un domaine, il vous suffit d’aller dans l’onglet Mail > Users et d’ajouter une adresse email utilisant un autre domaine que celui de votre box.
Mail-in-a-box mettra automatiquement en place les enregistrements DNS associés et vous n’aurez alors qu’à modifier les nameservers du nouveau domaine, ou les retrouver dans l’onglet External DNS si vous souhaitez les copier via votre registar.
Mettre à jour mail-in-a-box
Pour la mise à jour de votre serveur mail, rien de plus simple, puisqu'il vous suffit d'utiliser à nouveau la commande d'installation :
curl -s https://mailinabox.email/setup.sh | sudo bash
Backup & Migration
Le processus de backup de mail-in-a-box est relativement simple, puisque par défaut les backups sont stockés dans le répertoire /home/user-data/backup
.
Dans ce répertoire, vous trouverez un fichier secret_key.txt
qui contient la clé privée utilisée pour chiffrer les sauvegardes stockées dans le répertoire encrypted.
Pour migrer ou restaurer un serveur depuis un sauvegarde, il vous suffit de réinstaller mail-in-a-box sur un serveur, avant de transférer le dernier backup dont vous disposez ainsi que la clé privée.
Vous pourrez ensuite restaurer les données en utilisant l'outil duplicity :
export PASSPHRASE=$(cat your_backup_secret_key_file.txt)
sudo -E duplicity restore --force file:///emplacement/des/backup /home/user-data/
Il suffira ensuite d'utiliser la commande mailinabox
pour appliquer à nouveau la configuration du serveur :
sudo mailinabox
Commentaires