Mettre en place un serveur mail avec mail-in-a-box sur Ubuntu 18.04 LTS

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

Screenshot_55

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

Screenshot_54

Sélectionnez votre zone géographique pour mettre à jour le serveur de temps puis validez.

Screenshot_56

Sélectionnez ensuite la ville correspondant à votre fuseau horaire, dans mon cas Paris.

Screenshot_57

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.

Screenshot_58

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

licence creative common

L’ensemble des articles publiés sur jesuisadmin.fr sont mis à disposition
selon les termes de la licence CC BY-NC-SA 4.0.

Article précédent Article suivant