Le parole scritte in rosso devono essere sostituite dai vostri parametri.
×
Beta!
Sto lavorando al sito e commetterò tanti errori: potete segnalarmeli all'indirizzo indicato in fondo pagina. Segnalatemi anche eventuali vostre richieste. Grazie. !!!
In un ipotetico Ufficio Postale, Dovecot è l'addetto allo smistamento della posta.
Controlla che gli indirizzi siano giusti, non casuali e che l'identità del destinatario esista nel suo casellario.
Può anche differenziare la pubblicità dalle lettere vere e proprie, contrassegnandole e smistandole in caselle postali diverse.
Tra i suoi compiti, vi rientra anche accogliere gli utenti ed indirizzarli alle proprie caselle postali.
Installeremo Dovecot con delle estensioni:
dovecot-mysql, il server di smistamento della posta con l'estensione per usare il database creato e fare richieste ad esso;
dovecot-imapd, estensione di Dovecot per permettere agli utenti di gestire le proprie caselle con il protocollo ;
x
Internet Message Access Protocol è un protocollo di posta elettronica che permette di accedere alle mail tramite un client di posta, senza scaricarle completamente sul dispositivo. Le mail rimangono sul server e sono accessibili e modificabili da più dispositivi, garantendo la sincronizzazione delle modifiche.
Le porte usate sono : 143 IMAP ; 993 IMAPS (versione con TLS).
dovecot-pop3, estensione necessaria per chi vuole collegarsi alla sua casella postale tramite protocollo ;
x
Post Office Protocol, versione 3, è un protocollo di posta elettronica che permette al client di posta di scaricare le mail dal server di posta sul proprio dispositivo. Una volta scaricate, le mail vengono rimosse dal server.
Le porte usate sono : 110 POP3 ; 995 POP3S (versione con TLS).
Sconsigliamo di usarlo: IMAP è molto più maleabile.
dovecot-lmtpd, estensione necessaria per la migrazione delle mail da Postfix a Dovecot.
Facciamo la prima modifica nel file di configurazione di Dovecot:
sudo nano /etc/dovecot/dovecot.conf
Sotto Enable installed protocols, inseriamo:
protocols = imap pop3 lmtp
Abbiamo abilitato i tre protocolli.
Salviamo con i classici tasti Ctrl+X, Y, Invio.
Quasi tutta la restante configurazione avviene nei file con finale .conf, contenuti nella cartella /etc/dovecot/conf.d/ :
Iniziamo dal file 10-auth.conf
sudo nano /etc/dovecot/conf.d/10-auth.conf
Disabilitiamo la possibilità di autenticarsi in chiaro, togliendo il commento a disable_plaintext_auth = yes
Come formato nome utente per l'autenticazione, scegliamo quello equivalente all'indirizzo mail: utente@dominio.tld.
Togliamo il commento a auth_username_format e togliamo il carattere L tra % e u :
Per far si che anche gli utenti di Outlook riescano ad autenticarsi, aggiungiamo login ad auth_mechanisms = plain:
Alla fine del file, troviamo vari meccanismi di autenticazione. Disabilitiamo quello del sistema commentando auth-system con #,
e abilitiamo quello attraverso il database mysql, togliendo il commento.
Affronteremo il file auth-sql.conf.ext nella seconda parte di Dovecot.
Chiudiamo e salviamo il file.
Passiamo al file 10-logging.conf
sudo nano /etc/dovecot/conf.d/10-logging.conf
Per chi ha scelto di avere i file di log con Rsyslog, possiamo indicare una cartella dove porre i file di log : /var/log/.
Perciò, la prima modifica sarà togliere il commento a log_path e cambiare il valore syslog con /var/log/dovecot.log
La seconda istruzione sarà abilitare, togliendo il commento, i log di messaggi informativi (info_log_path) e di debug (debug_log_path) sempre in dovecot.log
La terza ed ultima modifica sarà abilitare auth_verbose, togliendo # e dando yes come valore, per avere un log quando fallisce una autenticazione e la ragione del fallimento.
Oltre ad eventuali mal configurazioni, serve anche a scoprire eventuali attacchi "a dizionario", attuati con l'uso di database con parole compromesse note.
Una volta modificato, il file si dovrebbe presentare così:
Chiudiamo, salvando le modifiche effettuate.
Prima di passare al prossimo file di configurazione di Dovecot, però finiamo la configurazione dei log indicando a Logrotate cosa fare dei file di log di Dovecot.
Apriamo la cartella di Logrotate e poniamo in essa un file:
Togliamo il commento a mail_location = maildir:...
Scegliendo Maildir, avremo un singolo file per ogni singola email.
Maildir avrà 3 sottocartelle:
cur : le email vengono messe qui quando sono aperte e quando sono segnate lette;
new : contiene le mail non ancora lette;
tmp : è la cartella che contiene i file temporanei, come i file allegati.
Sostituiamo mail_location = mbox:/var... con
mail_home = /var/vmail/%d/%n/
dove %d rapresenta il domino.tld e %n il nome utente dell'indirizzo senza il dominio; perciò, avrà la forma /var/vmail/dominio.tld/utente/.
Commentiamo l'altro mail_location ...
Passiamo, subito sotto, a namespace inbox e decommentiamo type = private:
4 righe sotto, decommentiamo separator = ed aggiungiamo un . (punto) dopo = ; è la scelta di default per chi usa Maildir.
Sotto inbox = yes, aggiungiamo dei namespace, cioè indichiamo ad Imap le cartelle che i client di posta potrebbero volere.
Alcuni client di posta segnano i file delle mail con una S, per segnare il file/mail seen=visto/letto.
Quando cancelliamo il file usando il mail client, questo dovrebbe segnare il file con una T, così che Dovecot capisca che il file è nella cartella ma segnato come da eliminare; cosicchè, quando il client di posta svuota definitivamente il "cestino", Dovecot possa eliminare il relativo file definitivamente.
Purtroppo, non tutti i client segnano con T i file messi nel loro "cestino".
Quando questi client cancellano i file svuotando il cestino, in realtà, questi file rimangono nella casella di posta.
In una eventuale reinstallazione del client di posta ,perciò senza "memoria" delle precedenti eliminazioni, questi rilegge tutti i file contenuti nella casella di posta: file zombie non cancellati.
Si aggiunge anche l'aggravio di spazio occupato immotivatamente.
Ad esempio, Apple Mail chiede esplicitamente di creare una cartella Trash dove destinare i file cancellati.
Potremmo esplicitare questi namespace in 15-mailboxes.conf, ma preferiamo dare continuità in questo file:
mailbox Drafts {
special_use = \Drafts
auto = subscribe
}
mailbox Sent {
special_use = \Sent
auto = subscribe
}
mailbox "Sent Mail" {
special_use = \Sent
auto = no
}
mailbox "Sent Messages" {
special_use = \Sent
auto = no
}
mailbox Archive {
special_use = \Archive
auto = create
}
mailbox "Archives" {
special_use = \Archive
auto = no
}
Le cartelle con auto = subscribe sono create da IMAP automaticamente.
Le cartelle con auto = create sono da sottoscrivere, anche se potrebbe sembrare l'inverso.
Ai namespace Junk e Trash, abbiamo aggiunto l'opzione autoexpunge = 30d, cioè le cartelle interessate saranno svuotate dei file più vecchi di 30 giorni, in modo da evitare un sovraccarico della macchina per "dimenticanze" degli utenti.
Anche se, queste dimenticanze possono essere mitigate con l'uso delle quote di spazio.
Autoexpunge è opzionale; a noi decidere se usarla o meno.
Alcune righe sotto, cerchiamo 2 righe commentate con #mail_uid = e #mail_gid = ;
decommentiamole ed aggiungiamo ad entrambe 5000, l'UID ed il GID dell'utente e del gruppo vmail, creato antecedentemente, così non dovremo esplicitarli in altre occasioni:
Salviamo le modifiche effettuate.
È venuto il turno del file 10-master.conf ad essere modificato:
sudo nano /etc/dovecot/conf.d/10-master.conf
Questo file si occupa soprattutto del "trasporto" delle mail.
Cerchiamo in esso la sezione riguardante service lmtp, (già affrontato nella configurazione di postfix) riguardante il "Gate" tra la "gabbia" di Postfix e Dovecot.
e modifichiamo l'interno della sezione in questo modo:
unix_listener /var/spool/postfix/private/dovecot-lmtp { group = postfix
mode = 0600
user = postfix
}
Abbiamo creato la porta per entrare nella "gabbia/chroot".
Dobbiamo aprire un altro "Gate", affinchè Postfix possa usare il sistema di autenticazione di Dovecot.
Troviamo la sezione service auth ,
e modifichiamola in questo modo:
unix_listener /var/spool/postfix/private/auth {
mode = 0660
user = postfix
group = postfix
}
Salviamo le modifiche effettuate.
Adesso, dobbiamo indicare a Dovecot dove trovare i certificati per poter cifrare le comunicazioni.
Modifichiamo il file 10-ssl.conf:
sudo nano /etc/dovecot/conf.d/10-ssl.conf
Intanto, esigiamo di usare comunicazioni cifrate, perciò modifichiamo ssl = yes in ssl = required
In seguito, modifichiamo l'origine dei certificati ssl_cert e ssl_key, inserendo quelli da noi già procurati:
Possiamo continuare per quanti domini vogliamo gestire.
Cerchiamo la riga commentata ssl_min_protocol :
e togliamo il commento, in modo che il protocollo minimo TLS sia 1.2
Facciamo la stessa cosa alla riga ssl_prefer_server_ciphers appena sotto, ma togliamo il no per aggiungere un yes
Infine, salviamo con Ctrl+X, seguito da Y ed infine Invio.
Non dobbiamo dimenticarci del rinnovo dei certificati Let's Encrypt e del loro aggiornamento in Postfix e Dovecot.
Quando abbiamo richiesto ed inserito il primo certificato Let'Encrypt in Apache, abbiamo anche riscontrato che i certificati si auto-aggiornano, ma abbiamo dovuto creare un file che conteneva la modalità di aggiornamento dei certificati all'interno di Apache.
Perciò, dobbiamo aggiornare quel file, inserendo in esso i riferimenti a Postfix e Dovecot.
Ma, in Postfix, abbiamo usato l'applicazione Postmap per inserire i certificati in una mappatura di Postfix; perciò dobbiamo aggiornare anche questo file, ogni volta che qualsiasi certificato Let'Encrypt venga aggiornato.
Apriamo il file che gestisce i comandi da effettuare dopo ogni aggiornamento di qualsiasi certificato: