GNU/Linux >> Tutoriales Linux >  >> Linux

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

Si está ejecutando su propio servidor de correo, es una buena práctica conectarse a él de forma segura con una conexión SSL/TLS. Necesitará un certificado válido para estas conexiones seguras. En este tutorial, configuraremos un certificado de Let's Encrypt para nuestro servidor de correo que se renueve automáticamente.

Advertencia:este tutorial se basa en este tutorial:https://www.howtoforge.com/tutorial/secure-ispconfig-3-with-a-free-lets-encrypt-ssl-certificate/ pero modificado para que tenga un certificado separado para su servidor de correo y panel de control. Si ha seguido ese tutorial antes, este tutorial podría interrumpir su configuración.

Este tutorial utiliza certificados emitidos por acme.sh. Si está utilizando certbot, siga este tutorial:https://www.howtoforge.com/community/threads/secureing-your-ispconfig-3-managed-mailserver-with-a-valid-lets-encrypt-ssl-certificate -certbot.86372/

Nota para ISPConfig 3.2: ISPConfig 3.2 puede crear un certificado Let's Encrypt SSL válido para el nombre de host del servidor automáticamente durante la instalación, que también se usa para el servidor de correo. No es necesario crear manualmente un certificado Let's Encrypt SSL como se describe aquí en los sistemas ISPConfig 3.2 a menos que necesite diferentes nombres de dominio en el certificado SSL junto al nombre de host del servidor.

Requisitos

  • Su servidor debe instalarse de acuerdo con el tutorial Perfect Server para su sistema operativo.
  • Asegúrese de haber iniciado sesión como usuario raíz.

Cómo empezar

Usaré los siguientes nombres de host para mi servidor de correo:mail.example.com, smtp.example.com, imap.example.com.

Reemplace todos los nombres de host subrayados en rojo en este tutorial con los suyos propios.

Cree los registros DNS para su(s) nombre(s) de host, para que apunten a su servidor. Estos deben ser registros A (y eventualmente AAAA). Luego, en la interfaz ISPConfig, vaya a la pestaña Sitios.

Emitiendo el certificado

En Sitios, haga clic en "Agregar nuevo sitio web". Establezca mail.example.com como dominio. Deshabilite el subdominio automático y marque la casilla de verificación Let's Encrypt.

Después de esto, puede agregar sus otros nombres de host como dominios de alias, yendo a la lista de dominios de alias y haciendo clic en "Agregar nuevo dominio de alias". Seleccione smtp.example.com como dominio y mail.example.com como sitio web principal. Deshabilite Auto-Subdominio y guarde el nuevo registro. Repita esto para eventuales otros nombres de host.

Verifique que el certificado esté en su lugar. Puede hacerlo con una herramienta como https://www.sslshopper.com/ssl-checker.html

Debería ser algo como esto:

Si los nombres de host aparecen en la lista y no hay otros errores, puede continuar. De lo contrario, verifique los errores y resuélvalos antes de continuar.

Reemplazar el certificado con el certificado de Let's Encrypt

Ahora podemos reemplazar el certificado actual con su certificado de confianza. Inicie sesión en su servidor y ejecute estos comandos:

(reemplace mail.example.com con el nombre de host que usó para el sitio 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

El certificado ahora debe usarse para su servidor Postfix y Dovecot. ¡Pero aún no hemos terminado! El certificado de Let's Encrypt se renueva cada 60 días, por lo que debemos automatizar el proceso de reemplazo del certificado en el futuro, para que no se olvide de él.

Configurar un script de renovación automática

Abra un nuevo archivo de script:

nano /etc/init.d/le_mailserver_restart.sh

Pegue esto en ese archivo:

#!/bin/sh
### BEGIN INIT INFO
# Provides: LE MAILSERVER CERT 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 MAILSERVER CERT AUTO UPDATER
# Description: Restart mail server automatically when a new Let's Encrypt certificate is issued.
### END INIT INFO
systemctl restart postfix
systemctl restart dovecot

Haga que el script sea ejecutable:

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

Para activar automáticamente este script en la renovación, usaremos systemd.

Cree y abra el nuevo servicio systemd:

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

Pegue esto en ese archivo:

[Unit] 
Description="Run script to restart Postfix and Dovecot after the certificate has been renewed"

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

Guarde y cierre este archivo. Luego cree y abra el nuevo archivo de ruta systemd:

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

Pegue esto en ese archivo y reemplace mail.example.com con el nombre de host que usó:

[Unit]
Description="Monitor the mailserver certificate files to trigger a e-mail services restart after the certificates has been renewed"

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

[Install]
WantedBy=multi-user.target

Guarde y cierre este archivo. Luego inicie el servicio y actívelo para que se ejecute al inicio:

systemctl start le-mailserver-restart.path

Y habilitarlo para que se ejecute al inicio:

systemctl enable le-mailserver-restart.path

¡Y hemos terminado!

¿No funciona?

Una vez tuve un problema con esto, porque Let's Encrypt usó uno de los dominios de alias como dominio principal. Puede encontrar el dominio principal en la herramienta SSL mencionada anteriormente como "Nombre común" o enumerando el contenido de /root/acme.sh/ para ver cuál de los dominios (alias) tiene una carpeta allí.

Si aún experimenta un problema, abra un hilo en el foro para que otros puedan ayudarlo.


Linux
  1. Cómo proteger sus servicios de correo electrónico de Linux con SSL/TLS

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

  3. Cómo proteger su servidor ISPConfig 3 contra el ataque SSL de caniche

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

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

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

Proteja Nginx con el certificado Let's Encrypt SSL en Ubuntu 18.04

Cómo proteger Nginx con el certificado SSL de Let's Encrypt

Cómo:asegurar su servidor Ubuntu o Debian con IPTables

Instale el servidor LAMP con Let's Encrypt Free SSL en Ubuntu 18.04

Protección de su servidor web Apache con Mod Security