Postfix + Dovecot = Mailserver
Quando abbiamo aperto il nostro sito, abbiamo inserito una pagina attraverso la quale i nostri visitatori potevano contattarci: ci limitavamo a controllare la validità dell'indirizzo email, e accettavamo qualsiasi messaggio in entrata. Tuttavia, dopo alcuni mesi, abbiamo avuto dei problemi di spam, quindi abbiamo inserito anche un captcha per bloccare questi fastidiosi bot. Nell'occasione, ne abbiamo approfittato per installare un nostro server mail, in modo da poter smistare la posta su un indirizzo di servizio da cui fosse anche possibile rispondere ai visitatori, e contemporaneamente limitare lo spam anche attraverso SpamAssassin. Come il nostro sito, anche il mailserver è ovviamente ospitato sul nostro server casalingo con Debian.
Questo tutorial mostrerà come installare e configurare Postfix, il MTA che si occupa di ricevere e inviare la posta e Dovecot, il server IMAP/POP3. Inoltre, darà alcune informazioni su RoundCube, un pratico frontend di webmail, e K9-Mail, un client di posta per mantenere sempre sincronizzato il nostro smartphone Android.
Configurazione del DNS
Per poter ricevere posta dall'esterno, è necessario modificare i record MX del proprio server DNS:
- aggiungere un MX Record al proprio dominio (per esempio, glgprograms.it) con l'IP del server dove è installato il servizio di posta
- se lo si desidera, per praticità, è possibile aggiungere anche un A Record del tipo mail.glgprograms.it per utilizzare una comoda webmail con un indirizzo facile da ricordare
Se si utilizza un server DNS esterno e il servizio è accessibile da tutta la rete Internet, è bene eseguire questa operazione prima di tutte le altre (magari anche il giorno prima), perché, ci possono volere anche alcune ore prima che i server DNS di tutto il mondo si siano aggiornati ai nuovi valori.
Postfix
Postfix è un MTA, ossia un Mail Transfer Agent, in pratica un
server che, attraverso il protocollo SMTP (Simple Mail Transfer Protocol),
si occupa di ricevere e inviare la posta. È facilmente configurabile,
e, di default, non presenta impostazioni che potrebbero compromettere
la sicurezza o la "reputazione" del sistema (ossia, non è possibile
che client non autenticati possano inviare posta attraverso il nostro
server).
Nella seguente configurazione
- chiunque sarà autorizzato a inviare email agli utenti del sistema;
- nessuno sarà autorizzato a inviare email ad utenti esterni, a meno che non si sia autenticato oppure stia scrivendo dalla macchina server
Per installare Postfix:
# apt-get install postfix
La pacchettizzazione su Debian 8 Jessie (l'attuale versione stable) include un pratico script di configurazione interattiva:
- Modalità → Sito Internet
- Nome del sistema per la posta → il proprio dominio, per esempio glgprograms.it
Configuriamo Postfix; modifichiamo il file /etc/postfix/main.cf
.
# se si utilizza Debian, il file /etc/mailname # dovrebbe già contenere il nome del dominio di origine # del vostro server. In caso contrario, inserirlo: # myorigin = glgprograms.it myorigin = /etc/mailname myhostname = glgprograms.it # Dominio delle email accettate in ingresso mydestination = glgprograms.it, localhost # Permessi delle email in uscita: vengono accettate solo le email # inviate da utenti autenticati tramite SASL smtpd_sasl_auth_enable = yes smtpd_relay_restrictions = permit_sasl_authenticated defer_unauth_destination smtpd_sasl_security_options = noanonymous # Tipo di autenticazione: l'autenticazione viene gestita # da Dovecot, che si preoccuperà di chiedere le necessarie informazioni ai client smtpd_sasl_type = dovecot # Socket di comunicazione con dovecot (su molti sistemi questo è il percorso di default; # per cambiarlo, modificare /etc/dovecot/conf.d/10-master.conf ) smtpd_sasl_path = private/auth # Dopo quanto tempo rigettare le email che non possono essere recapitate maximal_queue_lifetime = 30m
Dovecot
Dovecot è un server IMAP/POP3 che permette di gestire la posta attraverso un client remoto, per esempio tramite Thunderbird o Outlook, ma anche applicazioni web come RoundCube (che utilizzeremo per la webmail). IMAP è un protocollo moderno e più adatto alle esigenze dei nostri giorni: è possibile gestire singolarmente i vari messaggi di posta, mantenendola sincronizzata sui vari dispositivi che utilizziamo (computer, smartphone, tablet) e risparmiando banda scaricando gli allegati solo se necessario. Pertanto, lo consiglio al posto del vecchio POP3, e mi limiterò a installare i moduli per IMAP e l'autenticazione SASL.# apt-get install dovecot-imapd libsasl2-modulesAnche per Dovecot, Debian ci fornisce un comodo script interattivo per configurare le impostazioni di base:
- È possibile generare sul momento un certificato SSL che verrà autofirmato:
per i nostri scopi, è più che sufficiente. In alternativa, possiamo sempre
acquistare un certificato da un'Autorità e specificarne il percorso nel file
/etc/dovecot/conf.d/10-ssl.conf
- Nome host → il proprio dominio, ad esempio glgprograms.it
Utenti email
Per ogni indirizzo email che si desidera avere, creare il corrispondente utente. Tenere presente che si possono anche utilizzare degli alias per instradare le email a utenti terzi; questa caratteristica non verrà tuttavia trattata in questo tutorial, in quanto non ne abbiamo avuto bisogno.adduser utente # per l'indirizzo utente@dominio.tldAggiungere l'utente al gruppo
mail
:
gpasswd -a utente mailInserire una nuova password per l'utente:
passwd utenteSe si desidera utilizzare l'utente solamente per ricevere e inviare email, impedirgli il login impostando la shell di login su
/bin/false
nel file /etc/passwd
.
Port Forwarding
Demone/Servizio | Protocollo | LAN | WAN |
Postfix | SMTP | 25 | 25 |
Dovecot | IMAP | 143 | 143 |
Verifica della configurazione
A questo punto, è possibile verificare il corretto funzionamento dei nostri demoni. Riavviamoli:# systemctl restart postfix # systemctl restart dovecote correggiamo eventuali errori nei file di configurazione. Dopodichè apriamo Thunderbird (o il nostro client IMAP preferito, che può essere Evolution, Sylpheed o persino Mutt, ma assolutamente non deve essere Outlook
;-)
) e creiamo un nuovo account,
specificando l'indirizzo email completo (ad esempio, utente@dominio.tld):
nel giro di pochi attimi, se non abbiamo modificato le porte standard, ci
verrà suggerita la configurazione standard.Nota: per avere un minimo di sicurezza, accertarsi che venga riconosciuto il comando STARTTLS; alla prima connessione, il client di posta chiederà di accettare il certificato SSL che permetterà di comunicare col server in modo sicuro.
Non rimane che installare e configurare SpamAssassin per limitare lo spam (argomento non trattato in questo documento).
Controllare la posta fuori casa
RoundCube
RoundCube è una semplice, pratica e accattivante webmail open source, che ci consente di consultare la nostra posta dovunque ci troviamo, utilizzando semplicemente un browser.Poiché attualmente non è pacchettizata per Debian, ma è scritta in PHP, è sufficiente scaricare l'archivio coi sorgenti da roundcube.net ed estrarlo in una cartella alla quale è possibile accedere tramite Apache. L'installazione è semplice e intuitiva, anche grazie all'ottima documentazione nel README dell'archivio e del wiki.