Installare un server di posta con Modoboa su Debian

Pubblicato il Aggiornato il 6 min di lettura

L'installer di Modoboa configura Postfix, Dovecot, webmail e SSL in un unico passaggio. Ecco come installare il tuo server di posta su Debian e impostare i record DNS necessari.

Non vuoi più tenere le tue e-mail da un provider di posta gratuita, ma su un server tuo e sotto il tuo dominio? Modoboa è una delle soluzioni più comode per farlo. L'installer incluso configura Postfix, Dovecot, database, filtro antispam, webmail e un'interfaccia di amministrazione in un unico passaggio.

Questa guida descrive l'installazione su Debian 12 e Debian 11. Debian 10 non è più supportato e non andrebbe più usato come base per un nuovo server di posta.

Prerequisiti

  • Un vServer tuo oppure un server root con un'installazione Debian appena fatta. Consigliamo (non è obbligatorio, ma ha senso) di dedicare un piccolo server esclusivamente al servizio di posta, perché il nome host e il reverse DNS vengono adattati al dominio di posta.
  • Accesso root via SSH.
  • Un dominio tuo, di cui puoi impostare personalmente i record DNS.
  • Un indirizzo IPv4 fisso per il quale puoi registrare un record reverse DNS.
  • Le porte di posta devono essere raggiungibili: 25 (SMTP), 587 e 465 (invio da parte dei tuoi utenti), 143 e 993 (IMAP) e infine 80 e 443 per la webmail e per il rilascio del certificato.

Importante: esegui l'installazione su un sistema appena installato. Un server web già in funzione o un database preesistente fanno interrompere l'installer con grande regolarità.

Preparare il sistema

Porta prima di tutto l'elenco dei pacchetti e tutti i pacchetti installati all'ultima versione:

apt update && apt upgrade -y

Installa poi i pacchetti che l'installer si aspetta di trovare:

apt-get install sudo git python3 mariadb-server -y

Completa la configurazione del database seguendo le domande dell'assistente. In quel passaggio assegna una password sicura all'amministratore del database:

sudo mysql_secure_installation

Impostare il nome host

Il server ha bisogno di un nome host completo, coerente con il futuro dominio di posta. Senza questo passaggio l'installazione fallisce:

hostnamectl set-hostname mail.<DOMINIO>.<ESTENSIONE>

Conviene creare già adesso nel DNS il record A per esattamente questo nome. Più avanti l'installer richiede un certificato Let's Encrypt, e la richiesta va a buon fine solo se il nome punta già all'IP del tuo server.

Scaricare l'installer di Modoboa

cd /tmp
git clone https://github.com/modoboa/modoboa-installer
cd modoboa-installer

Generare e adattare il file di configurazione

Per prima cosa lascia che l'installer crei soltanto il file di configurazione e poi si fermi:

python3 ./run.py --stop-after-configfile-check <DOMINIO>.<ESTENSIONE>

Apri il file appena creato:

nano installer.cfg

Adatta le sezioni seguenti. In questo modo il server ottiene un certificato SSL gratuito da Let's Encrypt e si collega al database locale:

[certificate]
generate = true
type = letsencrypt

[letsencrypt]
email = admin@<DOMINIO>.<ESTENSIONE>

[database]
engine = mysql
host = 127.0.0.1
install = true

Come indirizzo e-mail indica un indirizzo che leggi davvero. Let's Encrypt lo usa per avvisarti se un rinnovo non va a buon fine.

Avviare l'installazione

python3 ./run.py mail.<DOMINIO>.<ESTENSIONE>

L'esecuzione richiede qualche minuto. Sfrutta il tempo per impostare i record DNS.

Impostare i record DNS

Record A e record MX

Il record A punta all'IP del tuo server, il record MX dice al mondo quale host accetta la posta per il tuo dominio. La priorità "10" è il valore consueto quando c'è un solo server di posta:

1° record:
Sottodominio: mail
Tipo: A (IPv4)
Destinazione: <IP-Server>
Il risultato dovrebbe essere questo: mail.<DOMINIO>.<ESTENSIONE> IN A <IP-Server>

2° record:
(Sottodominio: @)
Tipo: MX
Destinazione: mail.<DOMINIO>.<ESTENSIONE>
Il risultato dovrebbe essere questo: @ IN MX 10 mail.<DOMINIO>.<ESTENSIONE>

SPF, DKIM e DMARC

Senza questi tre record le tue mail finiscono con ogni probabilità nella cartella spam dei destinatari. I grandi provider ormai li pretendono esplicitamente.

SPF stabilisce quali server possono inviare per conto del tuo dominio. Va inserito come record TXT sul dominio principale:

Tipo: TXT
Nome: @
Valore: v=spf1 mx -all

DKIM firma crittograficamente le tue mail in uscita. Modoboa può generare da solo le chiavi per ogni dominio. Dopo l'installazione trovi la chiave pubblica nell'interfaccia di amministrazione, nelle impostazioni del dominio interessato. Quel valore lo inserisci come record TXT nel DNS.

DMARC dice ai destinatari come trattare le mail che non superano SPF o DKIM. Parti da un'impostazione di sola osservazione e inasprisci le regole in un secondo momento:

Tipo: TXT
Nome: _dmarc
Valore: v=DMARC1; p=none; rua=mailto:postmaster@<DOMINIO>.<ESTENSIONE>

Reverse DNS (PTR)

Il record PTR risolve il tuo indirizzo IP nel nome host. Molti server di posta rifiutano senza appello le connessioni prive di un record PTR corrispondente. Da noi lo imposti direttamente tu nell'area clienti:

"I miei servizi" -> "Seleziona il server" -> "Clicca sul pulsante Reverse DNS" -> mail.<DOMINIO>.<ESTENSIONE>

L'importante è che il record PTR e il nome host coincidano esattamente.

Primi passi dopo l'installazione

Se l'installazione è andata a buon fine, riavvia il server una volta:

reboot

Dopodiché raggiungi l'interfaccia di amministrazione su https://mail.<DOMINIO>.<ESTENSIONE>. Accedi con l'account amministratore creato dall'installer e cambia la password come primissima cosa. Crea poi il tuo dominio e le caselle di posta che ti servono.

Fai quindi una prova in entrambe le direzioni: manda una mail dal tuo nuovo server verso una casella esterna e una mail dall'esterno verso il tuo nuovo indirizzo. Per verificare che SPF, DKIM, DMARC e PTR funzionino davvero, la via più rapida è uno dei mail tester disponibili gratuitamente in rete.

Errori frequenti

  • L'installazione si interrompe subito: il nome host non è un nome di dominio completo. Verificalo con hostname -f.
  • Il certificato non viene rilasciato: il record A di mail.IlTuoDominio non punta al server, oppure la porta 80 è bloccata. Let's Encrypt verifica il dominio attraverso la porta 80.
  • Le mail finiscono nello spam: di solito manca il record PTR, oppure SPF e DKIM non sono impostati. Controlla tutti e quattro i record prima di mettere il server in produzione.
  • Le mail in uscita vengono rifiutate: l'indirizzo IP potrebbe trovarsi su una lista di blocco. La maggior parte dei gestori mette a disposizione una pagina per la verifica e per la richiesta di rimozione.
  • L'installer segnala un errore sul database: MariaDB non è ancora stato completato con mysql_secure_installation, oppure nel file installer.cfg la sezione dedicata al database non è corretta.
  • Dopo un riavvio non funziona più nulla: controlla i servizi coinvolti con systemctl status postfix dovecot nginx.

Un server di posta proprio richiede più cura di altri servizi: aggiornamenti, backup delle caselle e un occhio costante sulla recapitabilità. Se te ne occupi, in cambio ottieni il controllo completo sulla tua comunicazione.

Autore: XEfnexX (pseudonimo)

Domande frequenti

Quale versione di Debian mi serve per Modoboa?
Usa Debian 12 o Debian 11 in un'installazione appena fatta. Debian 10 non è più supportato e non andrebbe più impiegato per un nuovo server di posta.
Perché le mie mail finiscono nella cartella spam?
Nella maggior parte dei casi manca il record reverse DNS, oppure non sono impostati i record SPF, DKIM e DMARC. Controlla tutti e quattro i punti prima di mettere il server in produzione.
Posso installare Modoboa su un server che ospita già un sito web?
Lo sconsigliamo. L'installer si aspetta un sistema pulito e si interrompe con regolarità quando sono già in funzione un server web o un database.
Quali porte devo aprire?
La porta 25 per la ricezione della posta, la 587 e la 465 per l'invio da parte dei tuoi utenti, la 143 e la 993 per IMAP e infine la 80 e la 443 per la webmail e per il rilascio del certificato SSL.
Come imposto il record reverse DNS?
Il record PTR lo imposti tu stesso nell'area clienti, alla voce I miei servizi: seleziona il server, apri Reverse DNS e inserisci lì il nome host del tuo server di posta.

Server di posta Modoboa Postfix Dovecot Debian SPF-DKIM-DMARC Reverse DNS