GNU/Linux >> Tutoriels Linux >  >> Linux

Sécuriser votre serveur de messagerie géré par ISPConfig 3 avec un certificat SSL Lets Encrypt valide

Si vous utilisez votre propre serveur de messagerie, il est recommandé de s'y connecter en toute sécurité avec une connexion SSL/TLS. Vous aurez besoin d'un certificat valide pour ces connexions sécurisées. Dans ce didacticiel, nous allons configurer un certificat Let's Encrypt pour notre serveur de messagerie qui se renouvelle automatiquement.

Attention :Ce tutoriel est basé sur ce tutoriel :https://www.howtoforge.com/tutorial/securing-ispconfig-3-with-a-free-lets-encrypt-ssl-certificate/ mais modifié pour que vous ayez un certificat séparé pour votre serveur de messagerie et votre panneau de contrôle. Si vous avez déjà suivi ce didacticiel, ce didacticiel risque de casser votre configuration.

Ce didacticiel utilise des certificats émis par acme.sh. Si vous utilisez certbot, suivez plutôt ce tutoriel :https://www.howtoforge.com/community/threads/securing-your-ispconfig-3-managed-mailserver-with-a-valid-lets-encrypt-ssl-certificate -certbot.86372/

Remarque pour ISPConfig 3.2 : ISPConfig 3.2 est capable de créer automatiquement un certificat SSL Let's Encrypt valide pour le nom d'hôte du serveur lors de l'installation, qui est également utilisé pour le serveur de messagerie. Il n'est pas nécessaire de créer manuellement un certificat SSL Let's Encrypt comme décrit ici sur les systèmes ISPConfig 3.2, sauf si vous avez besoin de noms de domaine différents dans le certificat SSL à côté du nom d'hôte du serveur.

Prérequis

  • Votre serveur doit être installé conformément au didacticiel Perfect Server pour votre système d'exploitation.
  • Assurez-vous d'être connecté en tant qu'utilisateur root.

Démarrage

J'utiliserai les noms d'hôte suivants pour mon serveur de messagerie :mail.example.com, smtp.example.com, imap.example.com.

Remplacez tous les noms d'hôtes soulignés en rouge dans ce didacticiel par les vôtres.

Créez les enregistrements DNS pour votre ou vos noms d'hôte, afin qu'ils pointent vers votre serveur. Ceux-ci doivent être des enregistrements A (et éventuellement AAAA). Ensuite, dans l'interface ISPConfig, rendez-vous dans l'onglet Sites.

Émission du certificat

Sous Sites, cliquez sur "Ajouter un nouveau site Web". Définissez mail.example.com comme domaine. Désactivez Auto-Subdomain et cochez la case Let's Encrypt.

Après cela, vous pouvez ajouter vos autres noms d'hôte en tant que domaines alias, en allant dans la liste des domaines alias et en cliquant sur "Ajouter un nouveau domaine alias". Sélectionnez smtp.example.com comme domaine et mail.example.com comme site Web parent. Désactivez le sous-domaine automatique et enregistrez le nouvel enregistrement. Répétez cette opération pour vos autres noms d'hôte éventuels.

Vérifiez que le certificat est en place. Vous pouvez le faire avec un outil comme https://www.sslshopper.com/ssl-checker.html

Cela devrait ressembler à ceci :

Si le ou les noms d'hôte sont répertoriés et qu'il n'y a pas d'autres erreurs, vous pouvez continuer. Sinon, vérifiez les erreurs et corrigez-les avant d'aller plus loin.

Remplacement du certificat par le certificat Let's Encrypt

Nous pouvons maintenant remplacer le certificat actuel par votre certificat de confiance. Connectez-vous à votre serveur et exécutez ces commandes :

(remplacez mail.example.com par le nom d'hôte que vous avez utilisé pour le site Web)

cd /etc/postfix/
mv smtpd.cert smtpd.cert-$(date +"%y%m%d%H%M%S").bak
mv smtpd.key smtpd.key-$(date +"%y%m%d%H%M%S").bak
ln -s /root/.acme.sh/mail.example.com/fullchain.cer smtpd .cert
ln -s /root/.acme.sh/mail.example.com/mail.example.com.key smtpd.key
systemctl restart postfix
systemctl restart dovecot

Le certificat doit maintenant être utilisé pour votre serveur Postfix et Dovecot. Mais nous n'avons pas encore terminé! Le certificat Let's Encrypt se renouvelle tous les 60 jours, nous devrions donc automatiser le processus de remplacement du certificat à l'avenir, afin que vous ne puissiez pas l'oublier.

Configurer un script de renouvellement automatique

Ouvrez un nouveau fichier de script :

nano /etc/init.d/le_mailserver_restart.sh

Collez ceci dans ce fichier :

#!/bin/sh
### BEGIN INIT INFO
# Fournit :LE MAILSERVER CERT AUTO UPDATER
# Obligatoire-Démarrage :$local_fs $network
# Obligatoire -Arrêt :$local_fs
# Démarrage par défaut :2 3 4 5
# Arrêt par défaut :0 1 6
# Description courte :LE MAILSERVER CERT AUTO UPDATER
# Description :Redémarre automatiquement le serveur de messagerie lorsqu'un nouveau certificat Let's Encrypt est émis.
### END INIT INFO
systemctl restart postfix
systemctl restart dovecot

Rendre le script exécutable :

chmod +x /etc/init.d/le_mailserver_restart.sh

Pour déclencher automatiquement ce script au renouvellement, nous allons utiliser systemd.

Créez et ouvrez le nouveau service systemd :

nano /etc/systemd/system/le-mailserver-restart.service

Collez ceci dans ce fichier :

[Unit] 
Description="Exécuter le script pour redémarrer Postfix et Dovecot après le renouvellement du certificat"

[Service]
ExecStart=/etc/init.d /le_mailserver_restart.sh

Enregistrez et fermez ce fichier. Ensuite, créez et ouvrez le nouveau fichier de chemin systemd :

nano /etc/systemd/system/le-mailserver-restart.path

Collez ceci dans ce fichier et remplacez mail.example.com par le nom d'hôte que vous avez utilisé :

[Unit]
Description="Surveiller les fichiers de certificat du serveur de messagerie pour déclencher un redémarrage des services de messagerie après le renouvellement des certificats"

[Path]
PathModified=/root/.acme.sh/mail.example.com/
Unit=le-mailserver-restart.service

[Install]
WantedBy=multi-user.target

Enregistrez et fermez ce fichier. Ensuite, démarrez le service et activez-le pour qu'il s'exécute au démarrage :

systemctl start le-mailserver-restart.path

Et activez-le pour qu'il s'exécute au démarrage :

systemctl enable le-mailserver-restart.path

Et nous avons terminé !

Ne fonctionne pas ?

J'ai déjà eu un problème avec cela, car Let's Encrypt a utilisé l'un des domaines alias comme domaine principal. Vous pouvez trouver le domaine principal dans l'outil SSL mentionné précédemment en tant que "Nom commun" ou en listant le contenu de /root/acme.sh/ pour voir lequel des domaines (alias) y a un dossier.

Si vous rencontrez toujours un problème, ouvrez un fil de discussion sur le forum afin que d'autres puissent vous aider.


Linux
  1. Comment sécuriser vos services de messagerie Linux avec SSL/TLS

  2. Comment sécuriser un compte compatible cPanel avec un certificat SSL Lets Encrypt

  3. Comment sécuriser votre serveur ISPConfig 3 contre l'attaque SSL caniche

  4. Comment gérer les certificats Lets Encrypt SSL/TLS avec certbot

  5. Premiers pas avec le client SSL Lets Encrypt d'acme.sh

Sécuriser votre installation ISPConfig 3 avec un certificat SSL Class1 gratuit de StartSSL

Sécurisez Nginx avec le certificat SSL Let's Encrypt sur Ubuntu 18.04

Comment sécuriser Nginx avec le certificat SSL Let's Encrypt

Comment :sécuriser votre serveur Ubuntu ou Debian avec IPTables

Installez le serveur LAMP avec Let's Encrypt Free SSL sur Ubuntu 18.04

Sécuriser votre serveur Web Apache avec Mod Security