Comment exécuter votre propre serveur de messagerie avec Mail-in-a-Box sous Ubuntu 14.04

introduction

Mail-in-a-Box est un ensemble de logiciels open source qui facilite la transformation de votre serveur Ubuntu en une solution de courrier électronique à pile pleine pour plusieurs domaines.

Mail-in-a-Box utilise Fail2ban et un certificat SSL (auto-signé par défaut) pour la sécurisation du serveur. Il configure automatiquement un pare-feu UFW avec tous les ports requis ouverts. Ses fonctions anti-spam et autres fonctionnalités de sécurité incluent l’inscription sur les listes grises, SPF, DKIM, DMARC, les codes TLS opportunistes, les chiffreurs puissants, le HSTS et le DNSSEC (avec DANE TLSA).

Mail-in-a-Box est conçu pour gérer SMTP, IMAP / POP, le filtrage anti-spam, la messagerie Web et même le DNS dans le cadre de sa solution tout-en-un. Etant donné que le serveur lui-même gère votre DNS, vous aurez une solution DNS standard optimisée pour le courrier. En gros, cela signifie que vous obtiendrez des enregistrements DNS sophistiqués pour votre courrier électronique (y compris les enregistrements SPF et DKIM) sans avoir à les rechercher et les configurer manuellement. Vous pouvez modifier vos paramètres DNS ultérieurement si nécessaire, mais les valeurs par défaut devraient très bien fonctionner pour la plupart des utilisateurs hébergeant leur propre courrier.

Ce tutoriel montre comment configurer Mail-in-a-Box sur un droplet DigitalOcean exécutant Ubuntu 14.04 x86-64.

Conditions préalables

Mail-in-a-Box est très particulier en ce qui concerne les ressources disponibles. Plus précisément, il nécessite:

  • Une gouttelette Ubuntu 14.04 x86-64

  • Le serveur doit disposer d’au moins 768 Mo de RAM (1 Go recommandé)

  • Assurez-vous que le serveur a été configuré conformément aux instructions données dans cet tutoriel, en ajoutant un utilisateur et désactivation de l’accès SSH par mot de passe pour l’utilisateur root (et éventuellement pour tous les utilisateurs si vos clés SSH sont configurées)

  • Lors de la configuration de la gouttelette DigitalOcean, le nom doit être défini sur **. La définition du nom d’hôte est décrite plus loin dans ce tutoriel.

  • Nous entrerons dans les détails ultérieurement, mais votre registraire de domaine doit prendre en charge la configuration de serveurs de noms personnalisés et d’enregistrements collés afin que vous puissiez héberger votre propre DNS sur votre Droplet; le terme vanity nameservers est fréquemment utilisé

  • (Facultatif) Achetez un SSL certificate à utiliser à la place du auto-signé un; c’est recommandé pour les environnements de production

Sur la RAM requise, le script d’installation sera abandonné avec la sortie suivante si la RAM requise n’est pas remplie:

ErrorYour Mail-in-a-Box needs more memory (RAM) to function properly.
Please provision a machine with at least 768 MB, 1 GB recommended.
This machine has 513 MB memory

Avant de vous lancer, assurez-vous que vous avez un serveur Ubuntu avec 1 Go de RAM.

Pour cet article, nous supposerons que le domaine pour lequel vous configurez un serveur de messagerie est **. Bien entendu, vous êtes censé remplacer cela par votre vrai nom de domaine.

Étape 1 - Configurer le nom d’hôte

Dans cette étape, vous apprendrez à définir le nom d’hôte correctement, s’il ne l’est pas déjà. Ensuite, vous modifierez le fichier + / etc / hosts + pour qu’il corresponde.

À partir de là, on suppose que vous êtes connecté à votre compte DigitalOcean et que vous êtes également connecté au serveur en tant qu’utilisateur sudo via SSH à l’aide de:

ssh

Officiellement, il est recommandé de définir le nom d’hôte de votre serveur sur ++. Cela doit également correspondre au nom de la gouttelette telle qu’elle apparaît sur votre tableau de bord DigitalOcean. Si le nom du droplet est uniquement défini sur le nom de domaine, renommez-le en cliquant sur le nom du droplet, puis * Paramètres> Renommer *.

Après avoir défini le nom du droplet comme recommandé, vérifiez qu’il correspond à ce qui apparaît dans le fichier + / etc / hostname + en tapant la commande suivante:

hostname

La sortie devrait se lire comme ceci:

Output

Si la sortie ne correspond pas au nom tel qu’il apparaît sur votre tableau de bord DigitalOcean, corrigez-le en tapant:

sudo echo "" > /etc/hostname

Étape 2 - Modifier le fichier / etc / hosts

Le fichier + / etc / hosts + doit être modifié pour associer le nom d’hôte à l’adresse IP du serveur. Pour le modifier, ouvrez-le avec nano ou votre éditeur préféré en utilisant:

sudo nano /etc/hosts

Modifiez les adresses IPv4, afin qu’elles se lisent:

/ etc / hosts

127.0.0.1

Vous pouvez copier la ligne ++ exactement. Utilisez votre propre adresse IP et domaine sur la deuxième ligne.

Enregistrez et fermez le fichier.

Étape 3 - Créer des enregistrements de colle

Bien qu’il soit possible de disposer d’un service DNS externe, comme celui fourni par votre bureau d’enregistrement de domaine, pour gérer toutes les résolutions DNS du serveur, il est vivement recommandé de déléguer les responsabilités DNS au serveur Mail-in-a-Box.

Cela signifie que vous devez configurer glue records lorsque vous utilisez Mail-in-a-Box. L’utilisation des enregistrements de colle facilite la configuration sécurisée et correcte du serveur pour le courrier électronique. Lorsque vous utilisez cette méthode, il est très important que all responsabilités DNS soient déléguées au serveur Mail-in-a-Box, même si un site Web actif utilise le domaine cible.

La configuration des enregistrements de liaison (également appelés serveurs de noms privés, _serveurs_serveurs et_serveurs_enfants_) doit être effectuée sur votre registraire de domaine.

Pour configurer un enregistrement de colle, les tâches suivantes doivent être effectuées:

  1. Définissez les enregistrements de colle eux-mêmes. Cela implique la création d’adresses de serveur de noms personnalisées associant le nom d’hôte qualifié complet du serveur, ainsi que les préfixes * ns1 * et * ns2 *, à son adresse IP. Ceux-ci devraient être comme suit:

    • * ns1.box. *

    • * ns2.box. *

  2. Transférez les responsabilités DNS vers le serveur Mail-in-a-Box.

    • * NS ns1.box. *

    • * NS ns2.box. *

    • Exemple: Namecheap *

Pour commencer, connectez-vous au compte de votre registraire de domaine. L’apparence du tableau de bord du compte de votre registraire de domaine dépend du registraire de domaine que vous utilisez. Comme cet exemple utilise Namecheap, les étapes et les images utilisées dans ce didacticiel sont exactement telles que vous les trouverez si vous avez un compte Namecheap. Si vous utilisez un autre registraire, appelez leur support technique ou consultez leur base de connaissances pour savoir comment créer un enregistrement de colle.

Une fois connecté, recherchez la liste des domaines que vous gérez et cliquez sur le domaine cible. c’est-à-dire celui que vous êtes sur le point d’utiliser pour configurer le serveur de messagerie.

Recherchez un élément de menu vous permettant de modifier les informations d’adresse de son serveur de noms. Sur le tableau de bord Namecheap, cet élément de menu s’appelle * Enregistrement de serveur de noms * dans la catégorie de menu * Options avancées *. Vous devriez obtenir une interface qui ressemble à ceci:

image: http: //i.imgur.com/HGGLt7q.png [Modification des serveurs de noms]

Nous allons configurer deux enregistrements de liaison pour le serveur:

  • **

  • **

Dans la mesure où un seul champ personnalisé est fourni, ils devront être configurés en séquence. Comme indiqué dans l’image ci-dessous, tapez ** où le numéro * 1 * apparaît, puis tapez l’adresse IP du serveur Mail-in-a-Box dans le champ Adresse IP (indiqué par le numéro * 2 *). Enfin, cliquez sur le bouton * Ajouter des serveurs de noms * pour ajouter l’enregistrement (numéro * 3 *).

Répétez l’opération pour l’autre enregistrement, en veillant à utiliser ** avec le même nom de domaine et la même adresse IP.

Une fois les deux enregistrements créés, recherchez une autre entrée de menu portant le nom * Transférer DNS vers Webhost *. Vous devriez avoir une fenêtre qui ressemble à celle montrée dans l’image ci-dessous. Sélectionnez l’option DNS personnalisée, puis tapez les deux premiers champs:

  • **

  • **

image: http: //i.imgur.com/LmXg3ZW.png [DNS personnalisé]

Cliquez pour appliquer les modifications.

Les modifications apportées au DNS mettent un certain temps à se propager. Cela peut prendre jusqu’à 24 heures, mais cela ne prend que 15 minutes environ pour que les modifications apportées au domaine de test se propagent.

Vous pouvez vérifier que les modifications DNS ont été propagées en visitant https://www.whatsmydns.net [whatsmydns.net]. Recherchez les enregistrements * A * et * MX * du domaine cible. S’ils correspondent à ce que vous avez défini à cette étape, vous pouvez passer à l’étape 4. Sinon, recommencez cette étape ou contactez votre registraire pour obtenir de l’aide.

Étape 4 - Installation de Mail-in-a-Box

Au cours de cette étape, vous allez exécuter le script pour installer Mail-in-a-Box sur votre Droplet. Le script d’installation Mail-in-a-Box installe tous les packages nécessaires à l’exécution d’un serveur de messagerie complet. Il vous suffit donc d’exécuter une simple commande et de suivre les instructions.

En supposant que vous soyez toujours connecté au serveur, accédez à votre répertoire personnel:

cd ~

Installez Mail-in-a-Box:

curl -s https://mailinabox.email/bootstrap.sh | sudo bash

Le script vous demandera le message d’introduction dans l’image suivante. Appuyez sur + ENTER.

image: http: //i.imgur.com/rwyVRUO.png [Installation de Mail-in-a-Box]

Vous serez maintenant invité à créer la première adresse e-mail, que vous utiliserez ultérieurement pour vous connecter au système. Vous pouvez entrer ** ou une autre adresse e-mail sur votre domaine. Acceptez ou modifiez l’adresse e-mail suggérée, puis appuyez sur les touches + ENTER +. Ensuite, vous serez invité à spécifier et à confirmer un mot de passe pour le compte de messagerie.

image: http: //i.imgur.com/Y2MHRk0.png [Votre adresse email]

Une fois l’email configuré, vous serez invité à confirmer le nom d’hôte du serveur. Il doit correspondre à celui que vous avez défini à l’étape 1, à savoir ** dans cet exemple. Appuyez sur + ENTER.

image: http: //i.imgur.com/LGHOcar.png [Nom d’hôte]

Ensuite, vous serez invité à sélectionner votre pays. Sélectionnez-le en faisant défiler vers le haut ou le bas à l’aide des touches fléchées. Appuyez sur + ENTER après avoir fait le bon choix.

image: http: //i.imgur.com/6WxmdC3.png [Code de pays]

À un moment donné, vous obtiendrez cette invite:

OutputOkay. I'm about to set up  for you. This account will also have access to the box's control panel.
password:

Spécifiez un mot de passe pour le compte de messagerie par défaut, qui sera également le compte administrateur de l’interface Web par défaut.

Une fois l’installation terminée, vous devriez voir une sortie post-installation comprenant:

Outputmail user added
added alias [email protected] (=> [email protected])
added alias [email protected] (=> [email protected])
added alias [email protected] (=> [email protected])
updated DNS: example.com
web updated

alias added
added alias [email protected] (=> [email protected])
added alias [email protected] (=> [email protected])


-----------------------------------------------

Your Mail-in-a-Box is running.

Please log in to the control panel for further instructions at:

https:///admin

You will be alerted that the website has an invalid certificate. Check that
the certificate fingerprint matches:

1F:C1:EE:C7:C6:2C:7C:47:E8:EF:AC:5A:82:C1:21:67:17:8B:0C:5B

Then you can confirm the security exception and continue.

Étape 5 - Connexion au tableau de bord Mail-in-a-Box

Vous allez maintenant vous connecter à l’interface administrative de Mail-in-a-Box et apprendre à connaître votre nouveau serveur de messagerie. Pour accéder à l’interface d’administration, utilisez l’URL fournie dans le résultat de post-installation. Cela devrait être:

  • + https: /// admin # +

Étant donné que HTTPS et un certificat auto-signé ont été utilisés, un avertissement de sécurité apparaît dans la fenêtre de votre navigateur. Vous devrez créer une exception de sécurité. Cela dépend du navigateur que vous utilisez.

Si vous utilisez Firefox, par exemple, vous obtiendrez une fenêtre du navigateur avec l’avertissement familier présenté dans l’image suivante.

Pour accepter le certificat, cliquez sur le bouton * Je comprends les risques *, puis sur le bouton * Ajouter une exception *.

image: http: //i.imgur.com/oSERTMV.png [La connexion n’est pas sécurisée dans Firefox]

Sur l’écran suivant, vous pouvez vérifier que l’empreinte du certificat correspond à celle de la sortie post-installation, puis cliquez sur le bouton * Confirmer l’exception de sécurité *.

image: http: //i.imgur.com/jvRbbqX.png [Ajouter une exception de sécurité dans Firefox]

Une fois l’exception créée, connectez-vous à l’aide du nom d’utilisateur et du mot de passe du compte de messagerie créé lors de l’installation. Notez que le nom d’utilisateur est l’adresse email complète, comme + contact @ +.

Lorsque vous vous connectez, une vérification de l’état du système est lancée. Mail-in-a-Box vérifiera que tous les aspects du serveur, y compris les enregistrements collés, ont été configurés correctement. Si cela est vrai, vous devriez voir une mer de texte vert (et un peu de vert jaunâtre), à ​​l’exception de la partie relative aux certificats SSL, qui sera en rouge. Vous pouvez également voir un message sur le redémarrage que vous pouvez prendre en charge.

Si les seuls textes rouges que vous voyez sont dus aux certificats SSL, félicitations! Vous avez maintenant configuré avec succès votre propre serveur de messagerie à l’aide de Mail-in-a-Box.

Si vous souhaitez revoir cette section (par exemple, après avoir attendu que le DNS se propage), cliquez sur * Système> Contrôles d’état *.

Étape 6 - Accédez au courrier Web et envoyez un e-mail de test

Pour accéder à l’interface de messagerie Web, cliquez sur * Mail> Instructions * dans la barre de navigation supérieure, puis accédez à l’URL fournie sur cette page. Cela devrait être quelque chose comme ça:

  • + https: /// mail +

Connectez-vous avec l’adresse e-mail (avec la partie @example.com) et le mot de passe que vous avez précédemment définis.

Mail-in-a-box utilise Roundcube comme application de messagerie Web. Essayez d’envoyer un e-mail test à une adresse électronique externe. Ensuite, répondez ou envoyez un nouveau message à l’adresse gérée par votre serveur Mail-in-a-Box.

L’e-mail sortant doit être reçu presque immédiatement, mais comme l’inscription en liste grise est active sur le serveur Mail-in-a-Box, il faudra environ 15 minutes avant que l’e-mail entrant ne s’affiche.

Cela ne fonctionnera pas si le DNS n’est pas configuré correctement.

Si vous pouvez envoyer et recevoir des messages texte, vous utilisez maintenant votre propre serveur de messagerie. Toutes nos félicitations!

(Facultatif) Étape 7 - Installation du certificat SSL

Mail-in-a-box génère son propre certificat auto-signé par défaut. Si vous souhaitez utiliser ce serveur dans un environnement de production, nous vous recommandons vivement d’installer un certificat SSL officiel.

Tout d’abord, avoir votre certificat. Ou, pour savoir comment créer un certificat SSL gratuit et signé, reportez-vous à la https://www.digitalocean.com/community/tutorials/how-to-set-up-apache-with-a-free-signed-ssl- certificate-on-a-vps [Comment configurer Apache avec un certificat SSL signé gratuitement sur un serveur VPS].

Ensuite, dans le tableau de bord de l’administrateur Mail-in-a-Box, sélectionnez * Système> Certificats SSL * dans le menu de navigation supérieur.

À partir de là, utilisez le bouton * Installer le certificat * en regard du domaine ou du sous-domaine approprié. Copiez et collez votre certificat et tous les certificats de chaîne dans les champs de texte fournis. Enfin, cliquez sur le bouton * Installer *.

Désormais, vous et vos utilisateurs devriez pouvoir accéder à la messagerie Web et au panneau d’administration sans avertissements du navigateur.

Conclusion

Il est facile de continuer à ajouter des domaines et des adresses électroniques supplémentaires à votre serveur Mail-in-a-Box. Pour ajouter une nouvelle adresse sur un domaine nouveau ou existant, ajoutez simplement un autre compte de messagerie à partir de * Mail> Users * dans le tableau de bord de l’administrateur. Si l’adresse de messagerie se trouve dans un nouveau domaine, Mail-in-a-box ajoutera automatiquement les nouveaux paramètres appropriés.

Si vous ajoutez un nouveau domaine, assurez-vous de définir les serveurs de noms de domaine sur et (les mêmes que nous avons configurés précédemment pour le premier domaine) dans votre registraire de domaine. Votre Droplet gérera tous les DNS du nouveau domaine.

Pour voir les paramètres DNS actuels, visitez le site * Système> DNS externe *. Pour ajouter vos propres entrées, visitez le site * Système> DNS personnalisé *.

Mail-in-a-Box fournit également des fonctionnalités allant au-delà de la portée de cet article. Il peut servir de contact hébergé et de gestionnaire de calendrier grâce à ownCloud. Il peut également être utilisé pour héberger des sites Web statiques.

Pour plus d’informations sur Mail-in-a-Box, consultez la page d’accueil project.