GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Sécuriser ISPConfig 3.1 avec un certificat SSL Lets Encrypt gratuit

IMPORTANT :Ce guide n'est pas compatible avec ISPConfig 3.2 et les versions plus récentes car ISPConfig 3.2 et les versions plus récentes ont Let's encrypt for all services builtin. Le certificat SSL Let's encrypt est configuré automatiquement lors de l'installation, il n'est donc plus nécessaire de configurer manuellement Let's encrypt pour n'importe quel service.

Auteur : ahrasis

Ce tutoriel montre comment créer et configurer un certificat SSL Let's encrypt gratuit pour l'interface ISPconfig (port 8080), le système de messagerie (Postfix et Dovecot/Courier), le serveur FTP (pure-ftpd) et Monit. Les commandes de ce tutoriel ont été testées sur Ubuntu 16.04, elles devraient également fonctionner pour Debian. Certaines modifications peuvent être nécessaires pour le faire fonctionner sur CentOS.

Une aide sur ce guide est disponible dans ce fil de discussion.

Création d'un site Web à l'aide du nom de domaine complet du nom d'hôte du serveur ISPConfig

Créez un site pour votre serveur dans le panneau ISPConfig via Sites> Site Web> Ajouter un nouveau site Web . Se souvenir! Il s'agit du site Web de votre serveur et, en tant que tel, il doit contenir le nom de domaine complet (FQDN) de votre serveur. Je l'appellerai `hostname -f` dans ce guide.

hostname -f

Espérons que cela fonctionnera également sans aucune modification de votre serveur.

Accéder au site Web ISPConfig en ligne

Vérifiez si votre site serveur est prêt et accessible en ligne car Let's Encrypt doit vérifier que votre site Web est accessible avant d'émettre la clé SSL, le certificat et le fichier de chaîne pour votre site serveur. Vous devez également créer sa zone DNS et lui permettre de se propager correctement car Let's Encrypt doit également la vérifier.

Activation de SSL pour le panneau de configuration ISPConfig 3 (port 8080)

Si vous n'avez pas activé SSL lors de la configuration d'ISPConfig, c'est-à-dire pour son panneau de contrôle sur le port 8080, activez-le en tapant ispconfig_update.sh dans le terminal et sélectionnez oui pour SSL. Nous n'avons pas besoin que ce soit une clé appropriée et nous ne voulons pas non plus la conserver, mais nous voulons travailler plus rapidement, nous pouvons donc simplement entrer pour tous ses champs. Lorsque vous avez terminé, le SSL auto-signé devrait déjà être activé pour votre ISPConfig.

Vérification de SSL pour le panneau de configuration ISPConfig 3 (port 8080)

Vérifiez votre navigateur pour confirmer en ouvrant le panneau de configuration ISPConfig sur le port 8080. Notez que vous pourriez recevoir un avertissement à ce stade car les fichiers SSL créés sont auto-signés, mais le navigateur confirmera que votre ISPConfig a activé SSL ou non.

Sécuriser le site Web ISPConfig avec Let's Encrypt SSL

Si ce qui précède est fait, retournez au panneau ISPConfig> Sites> Site Web> Nom du site Web , puis cliquez sur SSL et Chiffrons cocher les boutons et enregistrer - pour créer des fichiers SSL Let's Encrypt et les activer pour votre site serveur. En cas de succès, votre site serveur utilisera désormais ces fichiers Let's Encrypt SSL, mais pas votre page ISPConfig 8080. En cas d'échec, vous ne pourrez pas continuer, alors vérifiez son fichier journal pour un indice.

Modification du panneau de configuration ISPConfig 3 (port 8080)

Si LE SSL fonctionne déjà, accédez à votre terminal serveur, accédez à la racine via sudo su et utilisez la commande suivante pour sauvegarder et remplacer les fichiers SSL auto-signés créés par des fichiers SSL Let's Encrypt.

cd /usr/local/ispconfig/interface/ssl/
mv ispserver.crt ispserver.crt-$(date +"%y%m%d%H%M%S").bak
mv ispserver.key ispserver.key-$(date +"%y%m%d%H%M%S").bak
mv ispserver.pem ispserver.pem-$(date +"%y%m%d%H%M%S").bak
ln -s /etc/letsencrypt/live/$(hostname -f)/fullchain.pem ispserver.crt
ln -s /etc/letsencrypt/live/$(hostname -f)/privkey.pem ispserver.key
cat ispserver.{key,crt} > ispserver.pem
chmod 600 ispserver.pem
  • Si vous n'avez pas créé ispserver.pem auparavant, vous pouvez ignorer la troisième ligne qui vise à renommer l'existant, le cas échéant, en tant que sauvegarde.
  • notez que nous utilisons le dossier live Let's Encrypt au lieu du dossier d'archive.
  • Notez également la dernière ligne où ispserver.pem est créé en combinant des fichiers, ainsi, il ne sera pas automatiquement renouvelé par Let's Encrypt contrairement à d'autres fichiers auxquels nous les avons simplement liés symboliquement, nous traiterons donc de cela dans la dernière partie de ce guide.
  • Notez également que vous saisissez `hostname -f` ou server1.example.com car le résultat est le même car `hostname -f` est server1.example.com.

Utilisation des mêmes certificats SSL Let's Encrypt pour d'autres services majeurs

Comme conseils supplémentaires, basés sur la sécurisation de votre installation ISPConfig 3, vous pouvez utiliser un lien symbolique vers ispserver.key ou .crt ou .pem au lieu de pointer directement votre postfix, dovecot, courier, pure-FTPd et monit vers les fichiers Let's Encrypt SSL. Pour dovecot, s'il utilise déjà des fichiers SSL postfixés, vous pouvez l'ignorer en toute sécurité. Dans les détails, vous n'avez qu'à faire ce qui suit :

a. Pour Postfix

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 /usr/local/ispconfig/interface/ssl/ispserver.crt smtpd.cert
ln -s /usr/local/ispconfig/interface/ssl/ispserver.key smtpd.key
service postfix restart
service dovecot restart


b. Pour pigeonnier :(* Notez que cela ne devrait pas exister avec le service de messagerie)

Vérifiez si ce code existe en utilisant nano /etc/dovecot/dovecot.conf

[...]
ssl_cert = </etc/postfix/smtpd.cert
ssl_key = </etc/postfix/smtpd.key
[...]

Laissez-les tels quels s'ils existent. Sinon, corrigez-les. Dans tous les cas, le redémarrage du dovecot du service d'exécution est déjà couvert ci-dessus.

c. Pour le coursier :(* Notez que cela ne devrait pas exister avec le pigeonnier)

cd /etc/courier/
mv imapd.pem imapd.pem-$(date +"%y%m%d%H%M%S").bak
mv pop3d.pem pop3d.pem-$(date +"%y%m%d%H%M%S").bak
ln -s /usr/local/ispconfig/interface/ssl/ispserver.pem imapd.pem
ln -s /usr/local/ispconfig/interface/ssl/ispserver.pem pop3d.pem
service courier-imap-ssl stop
service courier-imap-ssl start
service courier-pop-ssl stop
service courier-pop-ssl start

d. Pour FTPd pur :

cd /etc/ssl/private/
mv pure-ftpd.pem pure-ftpd.pem-$(date +"%y%m%d%H%M%S").bak
ln -s /usr/local/ispconfig/interface/ssl/ispserver.pem pure-ftpd.pem
chmod 600 pure-ftpd.pem
service pure-ftpd-mysql restart

e. Pour monit :(si vous l'avez installé sur votre serveur)

nano /etc/monit/monitrc

Ajoutez le lien symbolique ci-dessus vers ispserver.pem que nous avons créé pour pure-ftpd ici également :

[...]
set httpd port 2812 and
SSL ENABLE
PEMFILE /etc/ssl/private/pure-ftpd.pem
allow admin:'secretpassword'
[...]

Et redémarrez monit :

service monit restart


Créer un script de renouvellement automatique pour votre fichier ISPConfig Pem (ispserver.pem)

Dans cette dernière étape, que je n'ai trouvée dans aucun guide jusqu'à présent, se trouve la mise à jour automatique de ispserver.pem comme indiqué précédemment. Actuellement, il doit être modifié manuellement juste après que Let's Encrypt a automatiquement renouvelé les fichiers SSL de votre serveur. Pour éviter d'oublier cela, vous pouvez installer incron comme suggéré dans le didacticiel incron correspondant et créer un script pour mettre à jour automatiquement votre fichier ispserver.pem, comme suit :

Via la commande terminal, installez incron, puis créez le fichier de script et modifiez-le à l'aide de nano :

apt install -y incron
nano /etc/init.d/le_ispc_pem.sh

Ajoutez ceci dans le_ispc_pem.sh :

#!/bin/sh
### BEGIN INIT INFO
# Provides: LE ISPSERVER.PEM AUTO UPDATER
# Required-Start: $local_fs $network
# Required-Stop: $local_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: LE ISPSERVER.PEM AUTO UPDATER
# Description: Update ispserver.pem automatically after ISPC LE SSL certs are renewed.
### END INIT INFO
cd /usr/local/ispconfig/interface/ssl/
mv ispserver.pem ispserver.pem-$(date +"%y%m%d%H%M%S").bak
cat ispserver.{key,crt} > ispserver.pem
chmod 600 ispserver.pem
chmod 600 /etc/ssl/private/pure-ftpd.pem
service pure-ftpd-mysql restart
service monit restart
service postfix restart
service dovecot restart
service nginx restart
  • Notez que certaines personnes n'installent pas monit, elles peuvent donc le supprimer en toute sécurité. Ajustez le script ci-dessus en conséquence.
  • Pour une configuration multi-serveurs, reportez-vous au message #203 et ajoutez le code scp donné ici pour automatiser les futures mises à jour.

Nous le rendons ensuite exécutable, ajoutons root en tant qu'utilisateur autorisé pour incrontab, puis éditons le fichier incrontab :

chmod +x /etc/init.d/le_ispc_pem.sh
echo "root" >> /etc/incron.allow
incrontab -e


Ajoutez cette ligne dedans incrontab :

/etc/letsencrypt/archive/$(hostname -f)/ IN_MODIFY ./etc/init.d/le_ispc_pem.sh

Redémarrage de vos services

Je pense que c'est à peu près tout pour Sécuriser votre serveur avec Let's Encrypt. Vous voudrez peut-être redémarrer votre serveur Web par la suite.

service nginx restart

N'oubliez pas :si vous utilisez apache, remplacez nginx par apache2 en conséquence.

LE4ISPC

Comme alternative, vous pouvez utiliser le script LE4ISPC créé à cet effet qui prend en charge à la fois nginx et apache2 depuis ISPConfig jusqu'à pure-ftpd ci-dessus, à l'exception de monit. Avant de l'utiliser, vous devez déjà avoir effectué les étapes ci-dessus (1 à 5) et :

1. Créé le site Web de votre serveur via ISPConfig ;
2. Le site Web accessible en ligne ;
3. SSL ISPConfig activé (via l'installation ou la mise à jour) ;
4. LE SSL activé avec succès pour le site Web.


Ubuntu
  1. SSL gratuit pour Nginx sur Centos par Let's encrypt

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

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

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

  5. Let's Encrypt :Obtenez un certificat SSL gratuit avec Certbot

Comment installer SuiteCRM avec Apache et Lets Encrypt SSL gratuit sur Debian 11

Comment installer InvoicePlane avec Apache et Free Lets Encrypt SSL Certificate sur Debian 11

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

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

Comment installer Gitea avec Nginx et Lets Encrypt SSL gratuit sur Ubuntu 20.04

Installez et configurez Webmin avec le certificat SSL Let's Encrypt gratuit sur Debian 10