GNU/Linux >> Linux Esercitazione >  >> Linux

Protezione del server di posta gestito da ISPConfig 3 con un certificato SSL Lets Encrypt valido

Se stai utilizzando il tuo server di posta, è consigliabile connetterti in modo sicuro con una connessione SSL/TLS. Avrai bisogno di un certificato valido per queste connessioni sicure. In questo tutorial imposteremo un certificato Let's Encrypt per il nostro server di posta che si rinnova automaticamente.

Avvertenza:questo tutorial si basa su questo tutorial:https://www.howtoforge.com/tutorial/securing-ispconfig-3-with-a-free-lets-encrypt-ssl-certificate/ ma modificato in modo da avere un certificato separato per il tuo server di posta e pannello di controllo. Se hai già seguito quel tutorial, questo tutorial potrebbe interrompere la tua configurazione.

Questo tutorial utilizza certificati emessi da acme.sh. Se stai usando certbot, segui invece questo tutorial:https://www.howtoforge.com/community/threads/securing-your-ispconfig-3-managed-mailserver-with-a-valid-lets-encrypt-ssl-certificate -certbot.86372/

Nota per ISPConfig 3.2: ISPConfig 3.2 è in grado di creare automaticamente un certificato SSL Let's Encrypt valido per il nome host del server durante l'installazione, che viene utilizzato anche per il server di posta. Non è necessario creare manualmente un certificato SSL Let's Encrypt come descritto qui sui sistemi ISPConfig 3.2 a meno che non siano necessari nomi di dominio diversi nel certificato SSL accanto al nome host del server.

Prerequisiti

  • Il tuo server dovrebbe essere installato secondo il tutorial Perfect Server per il tuo sistema operativo.
  • Assicurati di aver effettuato l'accesso come utente root.

Per iniziare

Userò i seguenti nomi host per il mio server di posta:mail.example.com, smtp.example.com, imap.example.com.

Sostituisci tutti i nomi host sottolineati in rosso in questo tutorial con il tuo.

Crea i record DNS per i tuoi nomi host, in modo che puntino al tuo server. Questi dovrebbero essere record A (ed eventualmente AAAA). Quindi, nell'interfaccia ISPConfig, vai alla scheda Siti.

Emissione del certificato

In Siti, fai clic su "Aggiungi nuovo sito web". Imposta mail.example.com come dominio. Disattiva il sottodominio automatico e seleziona la casella di controllo Let's Encrypt.

Successivamente puoi aggiungere i tuoi altri hostname come domini alias, andando nell'elenco aliasdomain e facendo clic su "Aggiungi nuovo aliasdomain". Seleziona smtp.example.com come dominio e mail.example.com come sito web principale. Disabilita il sottodominio automatico e salva il nuovo record. Ripetere questa operazione per eventuali altri nomi host.

Verificare che il certificato sia a posto. Puoi farlo con uno strumento come https://www.sslshopper.com/ssl-checker.html

Dovrebbe assomigliare a questo:

Se i nomi host sono elencati e non ci sono altri errori, puoi procedere. Altrimenti, controlla gli errori e risolvili prima di andare oltre.

Sostituzione del certificato con il certificato Let's Encrypt

Ora possiamo sostituire il certificato corrente con il tuo certificato attendibile. Accedi al tuo server ed esegui questi comandi:

(sostituisci mail.example.com con il nome host che hai utilizzato per il sito 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

Il certificato dovrebbe ora essere utilizzato per il tuo server Postfix e Dovecot. Ma non abbiamo ancora finito! Il certificato Let's Encrypt si rinnova ogni 60 giorni, quindi dovremmo automatizzare il processo di sostituzione del certificato in futuro, quindi non puoi dimenticartene.

Imposta uno script di rinnovo automatico

Apri un nuovo file di script:

nano /etc/init.d/le_mailserver_restart.sh

Incollalo in quel file:

#!/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

Rendi eseguibile lo script:

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

Per attivare automaticamente questo script al rinnovo, utilizzeremo systemd.

Crea e apri il nuovo servizio systemd:

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

Incollalo in quel file:

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

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

Salva e chiudi questo file. Quindi crea e apri il nuovo file di percorso di sistema:

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

Incollalo in quel file e sostituisci mail.example.com con il nome host che hai usato:

[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

Salva e chiudi questo file. Quindi avvia il servizio e abilitalo in modo che venga eseguito all'avvio:

systemctl start le-mailserver-restart.path

E abilitalo in modo che venga eseguito all'avvio:

systemctl enable le-mailserver-restart.path

E abbiamo finito!

Non funziona?

Una volta ho avuto un problema con questo, perché Let's Encrypt ha utilizzato uno dei domini alias come dominio principale. Puoi trovare il dominio principale nello strumento SSL menzionato in precedenza come "Nome comune" o elencando il contenuto di /root/acme.sh/ per vedere quale dei (alias)domini ha una cartella lì.

Se il problema persiste, apri una discussione sul forum in modo che gli altri possano aiutarti.


Linux
  1. Come proteggere i tuoi servizi di posta elettronica Linux con SSL/TLS

  2. Come proteggere un account abilitato per cPanel con un certificato SSL Lets Encrypt

  3. Come gestire i certificati Lets Encrypt SSL/TLS con certbot

  4. Iniziare con acme.sh Lets Encrypt SSL client

  5. Protezione di ISPConfig 3.1 con un certificato SSL gratuito Lets Encrypt

Protezione dell'installazione di ISPConfig 3 con un certificato SSL Class1 gratuito di StartSSL

Proteggi Nginx con Let's Encrypt SSL Certificate su Ubuntu 18.04

Come proteggere Nginx con Let's Encrypt certificato SSL

Procedura:proteggere il tuo server Ubuntu o Debian con IPTables

Installa il server LAMP con Let's Encrypt Free SSL su Ubuntu 18.04

Protezione del tuo server Web Apache con Mod Security