Come creare email illimitate senza appoggiarsi ad alcun provider

Configurare un server cloud per ricevere la posta elettronica via IMAP/POP3 e SSL/TLS utilizzando gli account creati su un proprio dominio. I passaggi da seguire con riferimento all'installazione, all'impostazione e all'utilizzo di Postfix e Dovecot su server Ubuntu Linux.

La disponibilità di offerte cloud a prezzo contenuto e la possibilità di attivare server virtuali in modo semplice e veloce attraverso un comodo pannello web vengono senza dubbio incontro alle necessità di professionisti e aziende di ogni dimensione che adesso possono gestire in proprio ogni genere di applicazione e servizio senza più appoggiarsi a un provider.

Con la liberalizzazione voluta da ICANN, la disponibilità di tanti nuovi domini (TLD) di primo livello (vedere il nostro articolo Nuovi domini di primo livello: cosa sono e come si registrano del 2014) consente di avviare nuove attività online e offrire ai propri clienti altri servizi.
Interessante è ad esempio il TLD .email che è possibile utilizzare per creare email con il proprio nome o quello della propria azienda.

Supponiamo di aver registrato un dominio .email (ma la procedura è ovviamente applicabile con qualunque altro TLD): impostando correttamente un server cloud è possibile creare il proprio server di posta elettronica che permetta di ricevere i messaggi di posta elettronica senza limitazioni e con la possibilità di gestire un gran numero di account.

È importante configurare i record MX a livello di DNS creando un record A di terzo livello mail (esempio: mail.tuodominio.email) che punta all’indirizzo IP pubblico del server cloud.
È inoltre fondamentale creare un record MX che punti al dominio di terzo livello mail.tuodominio.email (con priorità 0).

Di seguito proponiamo la procedura che permette di configurare il server di posta e MTA (mail transfer agent) Postfix insieme con il mail delivery agent Dovecot su Ubuntu 18.04.

Configurare server POP3 e IMAP con Postfix Dovecot

Posto di aver già acquistato un server cloud con Ubuntu 18.04 preinstallato, una volta stabilita la connessione alla macchina remota via SSH, si potrà iniziare con lo scrivere hostnamectl set-hostname seguito dal dominio di terzo livello precedentemente aggiunto come record DNS (esempio: mail.tuodominio.email).
È infatti bene specificare il cosiddetto FQDN (Fully Qualified Domain Name) anziché un semplice nome mnemonico.

Si può quindi passare ad aggiornare il software presente sulla macchina quindi all’installazione di Postfix:

apt update && apt upgrade -y
apt install postfix
(alla richiesta Postfix Configuration scegliere Internet Site quindi premere il tasto TAB per portarsi su OK e infine Invio).
Confermare il FQDN (mail.tuodominio.email) quindi premere ancora TAB e il tasto Invio.

Al termine dell’installazione di Postfix è consigliabile creare un backup delle impostazioni predefinite:

cp /etc/postfix/main.cf /etc/postfix/main.cf.backup

A questo punto si può digitare quanto segue per configurare Postfix:

nano /etc/postfix/main.cf

Nella parte inferiore del file di configurazione bisognerà impostare modificando le direttive già presenti:

myhostname = mail.tuodominio.email
# Di seguito impostare il dominio di secondo livello
mydomain = tuodominio.email
myorigin = $mydomain
inet_interfaces = localhost
inet_protocols = ipv4
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
mynetworks = 127.0.0.0/8
relay_domains = $mydestination
home_mailbox = Maildir/

Premere infine le combinazioni di tasti CTRL+O e CTRL+X per salvare il file di configurazione di Postfix quindi attivarlo e avviarlo:

systemctl enable postfix
systemctl start postfix

Proseguire quindi con l’installazione e la configurazione di Dovecot:

apt install dovecot-core dovecot-pop3d dovecot-imapd -y

Digitando il comando seguente si può modificare la configurazione di Dovecot

nano /etc/dovecot/dovecot.conf

In calce al file digitare quanto segue quindi premere CTRL+O e poi CTRL+X per salvare le modifiche e chiudere l’editor:

protocols = imap pop3
listen = *, ::

Digitando il comando nano /etc/dovecot/conf.d/10-mail.conf si dovrà cercare la riga #mail_location = mbox:~/mail:INBOX=/var/mail/%u e sostituirla con mail_location = maildir:~/Maildir (senza simbolo del cancelletto iniziale).
Per salvare la configurazione si dovrà infine premere CTRL+O quindi CTRL+X.

Scrivendo nano /etc/dovecot/conf.d/20-pop3.conf bisognerà “decommentare” ovvero togliere il prefisso # alla riga pop3_uidl_format = %08Xu%08Xv.
Dopo aver applicato lo stesso intervento sulla sottostante riga #pop3_client_workarounds =, bisognerà trasformarla in:

pop3_client_workarounds = outlook-no-nuls oe-ns-eoh

Premendo CTRL+O quindi CTRL+X si potrà salvare anche questo file di configurazione di Dovecot.

Il passaggio successivo consiste nella creazione del primo utente che disporrà di un suo account di posta lato server (la password specificata è quella che dovrà essere successivamente introdotta per l’autenticazione) e dei diritti necessari per la corretta gestione della cartella contenente la posta elettronica:

useradd nomeutente -m
passwd nomeutente
mkdir /home/nomeutente/Maildir
chown nomeutente:nomeutente /home/nomeutente/Maildir
chmod -R 700 /home/nomeutente/Maildir

Ottenere un certificato Let’s Encrypt per attivare l’utilizzo di SSL/TLS

Affinché si possano scambiare email usando SSL/TLS, si può richiedere un certificato Let’s Encrypt per il dominio di terzo livello mail.tuodominio.email:

apt install software-properties-common
add-apt-repository ppa:certbot/certbot
apt update -y
apt upgrade -y
apt install certbot -y

Se sul server cloud in uso non fosse installato alcun server web, si potrà installare Apache usando il comando che segue:
apt install apache2
apt install python3-certbot-apache -y

Quindi si potrà creare un nuovo virtual host:

nano /etc/apache2/sites-available/mail.tuodominio.email.conf

Incollare nel file di configurazione quanto segue operando le opportune sostituzioni:

<VirtualHost *:80>
ServerName mail.tuodominio.email
DocumentRoot /var/www/mail.tuodominio.email
</VirtualHost>

Creare la cartella home sul server web per il dominio appena aggiunto e assegnare i permessi corretti:

mkdir /var/www/mail.tuodominio.email
chown www-data:www-data /var/www/mail.tuodominio.email -R
a2ensite mail.tuodominio.email.conf
a2dissite 000-default.conf

echo '<html><head><meta http-equiv="Content-Language" content="it"><meta http-equiv="Content-Type" content="text/html; charset=windows-1252"><title>Server cloud</title></head><body>Benvenuti!</body></html>' > /var/www/mail.tuodominio.email/index.html

systemctl reload apache2

Digitando nella barra degli indirizzi del browser l’indirizzo mail.tuodominio.email si dovrebbe leggere il messaggio Benvenuti!.

Il comando seguente consentirà di ottenere un certificato digitale Let’s Encrypt:

certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email nomeutente@mail.tuodominio.email -d mail.tuodominio.email

Configurare il firewall e impostare le regole

Di ufw abbiamo parlato spesso in passato: si tratta di un firewall progettato per gestire le iptables in maniera semplificata. Dal momento che si è installato Dovecot nella distribuzione Linux in uso, digitando il comando ufw app list si troveranno tutti i profili firewall disponibili ed eventualmente abilitabili.

Suggeriamo quindi di digitare quanto segue (l’ultima regola è utile per evitare di non rimanere fuori dal server remoto mantenendo l’accesso via shell SSH, porta TCP 22):

ufw allow "Postfix"
ufw allow "Postfix SMTPS"
ufw allow "Postfix Submission"
ufw allow "Dovecot Secure IMAP"
ufw allow "Dovecot Secure POP3"
ufw allow "OpenSSH"
ufw allow "Apache"
ufw allow "Apache Secure"

Utilizzando il comando ufw enable si potrà infine attivare il firewall confermando con la pressione del tasto “y” alla comparsa del messaggio “Command may disrupt existing ssh connections. Proceed with operation?

Digitando ufw status verbose, si otterrà la lista completa di tutte le regole firewall appena create e si potrà controllare come il firewall sia attivo e funzionante.
Come visto anche nell’articolo Come mettere in sicurezza un server virtuale Linux sul cloud, soprattutto se si utilizzassero IP statici per gestire il server cloud, è possibile configurare il firewall affinché accetti le richieste di connessione via SSH solo da determinati IP pubblici (oppure si può valutare la configurazione di un server VPN).

Gli ultimi interventi sulla configurazione di Dovecot

Tornando alla configurazione di Dovecot e digitando nano /etc/dovecot/conf.d/10-ssl.conf, si dovrà sostituire la riga ssl = yes con ssl = required.

In corrispondenza delle direttive ssl_cert = e ssl_key =, poco più sotto, bisognerà indicare il percorso dei certificati digitali generati con l’utilità Certbot (vedere immagine sottostante).

La riga ssl_prefer_server_ciphers = no dovrà essere modificata in ssl_prefer_server_ciphers = yes mentre poco più in basso suggeriamo di usare la seguente direttiva:

ssl_protocols = !SSLv3 !TLSv1 !TLSv1.1

Il file, al solito, dovrà essere salvato sul server premendo CTRL+O quindi CTRL+X.

Digitando infine nano /etc/dovecot/conf.d/10-auth.conf si dovrà eliminare il segno # dalla riga disable_plaintext_auth = yes salvando quindi il file, al solito, premendo CTRL+O e CTRL+X.

Com’è possibile verificare digitando postconf | grep message_size_limit, tutte le caselle di posta possono ricevere allegati di dimensioni massime pari a 10 MB.
Per aumentare tale valore, ad esempio, a 50 MB, basta digitare:

postconf -e message_size_limit=52428800

Per quanto riguarda invece la dimensione complessiva di ogni casella di posta, su Ubuntu non ci sono limitazioni (0 = illimitata):

postconf | grep mailbox_size_limit

Per disporre il rinnovo automatico del certificato digitale Let’s Encrypt (ogni emissione dura 3 mesi), si può usare la seguente sintassi:

crontab -e

Quindi aggiungere quanto segue in calce al file:

@daily certbot renew --quiet && systemctl reload postfix dovecot apache2

Come ultimo passo si possono riavviare sia Postfix che Dovecot:

systemctl restart postfix dovecot

Configurare il client di posta

Per scaricare la posta elettronica e gestirla via IMAP con un qualunque client email, basterà a questo punto indicare come server di posta mail.tuodominio.email, la porta TCP 993, l’utilizzo di SSL/TLS e come nome utente quello configurato sul server Linux.

La configurazione così impostata permette di usare SSL/TLS per collegarsi via POP3/IMAP (porte TCP 995 e 993) al server di posta. In un prossimo articolo vedremo come configurare Postfix per l’invio delle email in totale sicurezza.

Ti consigliamo anche

Link copiato negli appunti