GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Protección de ISPConfig 3.1 con un certificado SSL gratuito de Lets Encrypt

IMPORTANTE :Esta guía no es compatible con ISPConfig 3.2 y posteriores, ya que ISPConfig 3.2 y las versiones más recientes tienen incorporado Let's encrypt para todos los servicios. El certificado SSL de Let's encrypt se configura automáticamente durante la instalación, por lo que ya no es necesario configurar Let's encrypt para ningún servicio de forma manual.

Autor: ahrasis

Este tutorial muestra cómo crear y configurar un certificado SSL Let's encrypt gratuito para la interfaz ISPconfig (puerto 8080), el sistema de correo electrónico (Postfix y Dovecot/Courier), el servidor FTP (pure-ftpd) y Monit. Los comandos de este tutorial se probaron en Ubuntu 16.04, también deberían funcionar para Debian. Ciertas modificaciones pueden ser necesarias para que funcione en CentOS.

La ayuda sobre esta guía está disponible en este hilo del foro.

Creando un sitio web usando el nombre de host del servidor ISPConfig FQDN

Cree un sitio para su servidor en el panel ISPConfig a través de Sitios> Sitio web> Agregar nuevo sitio web . ¡Recordar! Este es el sitio web de su servidor y, como tal, debe contener el nombre de dominio completo (FQDN) de su servidor. Me referiré a él como `hostname -f` en esta guía.

hostname -f

Con suerte, también funcionará sin ningún cambio en su servidor.

Acceder al sitio web de ISPConfig en línea

Compruebe si el sitio de su servidor está listo y accesible en línea, ya que Let's Encrypt necesita verificar que se pueda acceder a su sitio web antes de emitir la clave SSL, el certificado y el archivo de cadena para el sitio de su servidor. También debe crear su zona DNS y permitir que se propague correctamente, ya que Let's Encrypt también necesita verificarla.

Habilitar SSL para el panel de control ISPConfig 3 (Puerto 8080)

Si no ha habilitado SSL durante la configuración de ISPConfig, es decir, para su panel de control en el puerto 8080, habilítelo escribiendo ispconfig_update.sh en la terminal y seleccione sí para SSL. No necesitamos que sea una clave adecuada ni queremos conservarla, pero queremos trabajar más rápido, por lo que simplemente podemos ingresar para todos sus campos. Cuando termine esto, el SSL autofirmado ya debería estar habilitado para su ISPConfig.

Comprobación de SSL para el panel de control ISPConfig 3 (Puerto 8080)

Verifique su navegador para confirmar abriendo el panel de control de ISPConfig en el puerto 8080. Tenga en cuenta que es posible que reciba alguna advertencia en esta etapa ya que los archivos SSL creados están autofirmados, pero el navegador confirmará que su ISPConfig tiene habilitado SSL o no.

Asegurar el sitio web ISPConfig con Let's Encrypt SSL

Si se hace lo anterior, vuelva a Panel de ISPConfig> Sitios> Sitio web> Nombre del sitio web y luego haz clic en SSL y Vamos a cifrar marque los botones y guarde:para crear archivos Let's Encrypt SSL y habilitarlos para su sitio de servidor. Si tiene éxito, su sitio de servidor ahora usará estos archivos Let's Encrypt SSL pero no su página ISPConfig 8080. Si no tiene éxito, no podrá continuar, así que verifique su archivo de registro para obtener una pista.

Cambiando el panel de control ISPConfig 3 (Puerto 8080)

Si LE SSL ya está funcionando, vaya a la terminal de su servidor, vaya a la raíz a través de sudo su y use el siguiente comando para hacer una copia de seguridad y reemplazar los archivos SSL autofirmados creados con archivos Let's Encrypt SSL.

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 no ha creado ispserver.pem antes, puede ignorar la tercera línea que tiene como objetivo cambiar el nombre del existente, si lo hay, como una copia de seguridad.
  • Tenga en cuenta que estamos usando la carpeta activa de Let's Encrypt en lugar de la carpeta de archivo.
  • También tenga en cuenta la última línea donde se crea ispserver.pem combinando archivos, por lo tanto, Let's Encrypt no lo renovará automáticamente a diferencia de otros archivos que simplemente los vinculamos, por lo tanto, trataremos esto en la última parte de esta guía.
  • Tenga en cuenta también que escribe `hostname -f` o server1.example.com ya que el resultado es el mismo porque `hostname -f` es server1.example.com.

Uso de los mismos certificados Let's Encrypt SSL para otros servicios importantes

Como consejos adicionales, en base a Asegurar su instalación de ISPConfig 3, es posible que desee usar un enlace simbólico a ispserver.key o .crt o .pem en lugar de apuntar directamente su postfix, dovecot, courier, pure-FTPd y monit a los archivos SSL de Let's Encrypt. Para dovecot, si ya está usando archivos postfix SSL, es seguro ignorarlo. En detalles solo necesitas hacer lo siguiente:

a. Para posfijo

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. Para palomar:(* Tenga en cuenta que esto no debería existir junto con el servicio de mensajería)

Compruebe si existe este código utilizando nano /etc/dovecot/dovecot.conf

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

Déjalos como están si existen. De lo contrario, arréglalos. En cualquier caso, ejecutar el servicio de reinicio de Dovecot ya se trató anteriormente.

c. Para mensajería:(* Tenga en cuenta que esto no debería existir junto con dovecot)

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. Para FTPd puro:

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
servicio pure-ftpd-mysql restart

e. Para monit:(Si lo tienes instalado en tu servidor)

nano /etc/monit/monitrc

Agregue el enlace simbólico anterior a ispserver.pem que creamos para pure-ftpd aquí también:

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

Y reiniciar monit:

service monit restart


Crea una secuencia de comandos de renovación automática para tu archivo ISPConfig Pem (ispserver.pem)

En este último paso, que no he encontrado en ninguna guía hasta ahora, está la actualización automática de ispserver.pem como se insinuó anteriormente. Actualmente, debe cambiarse manualmente justo después de que Let's Encrypt renueve automáticamente los archivos SSL de su servidor. Para evitar pasar esto por alto, es posible que desee instalar incron como se sugiere en el tutorial respectivo de incron y crear una secuencia de comandos para actualizar automáticamente su archivo ispserver.pem, de la siguiente manera:

A través del comando de terminal, instale incron, luego cree el archivo de script y edítelo usando nano:

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

Agregue esto en 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
  • Tenga en cuenta que algunas personas no instalan monit, por lo que pueden eliminarlo de forma segura. Ajuste la secuencia de comandos anterior en consecuencia.
  • Para la configuración de varios servidores, consulte la publicación n.° 203 y agregue el código scp proporcionado aquí para automatizar futuras actualizaciones.

Luego lo hacemos ejecutable, agregamos root como un usuario permitido para incrontab y luego editamos el archivo incrontab:

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


Agregue esta línea en incrontab:

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

Reinicio de sus servicios

Creo que eso es todo para asegurar su servidor con Let's Encrypt. Es posible que desee reiniciar su servidor web después.

service nginx restart

Recuerde:si está utilizando apache, cambie nginx a apache2 según corresponda.

LE4ISPC

Como alternativa, es posible que desee utilizar el script LE4ISPC creado para este fin, que admite tanto nginx como apache2 desde ISPConfig hasta pure-ftpd anterior, excepto monit. Antes de usarlo, ya debería haber completado los pasos anteriores (1-5) y tener:

1. Creó el sitio web para su servidor a través de ISPConfig;
2. El sitio web accesible en línea;
3. ISPConfig SSL habilitado (mediante instalación o actualización);
4. LE SSL habilitado correctamente para el sitio web.


Ubuntu
  1. SSL gratis para Nginx en Centos por Let's encrypt

  2. Cómo asegurar una cuenta habilitada para cPanel con un certificado Lets Encrypt SSL

  3. Cómo administrar los certificados Lets Encrypt SSL/TLS con certbot

  4. Primeros pasos con acme.sh Cliente Lets Encrypt SSL

  5. Los 7 mejores servicios de certificados SSL gratuitos

Cómo instalar SuiteCRM con Apache y Lets Encrypt SSL gratuito en Debian 11

Cómo instalar InvoicePlane con Apache y el certificado SSL gratuito Lets Encrypt en Debian 11

Protección de su servidor de correo administrado ISPConfig 3 con un certificado Lets Encrypt SSL válido

Protección de la instalación de ISPConfig 3 con un certificado SSL Class1 gratuito de StartSSL

Cómo instalar Gitea con Nginx y Lets Encrypt SSL gratis en Ubuntu 20.04

Instale y configure Webmin con el certificado Let's Encrypt SSL gratuito en Debian 10