Dovecot è un server Pop3-Imap di ultima generazione in grado di funzionare su sistemi Linux/UNIX, è scritto in C e particolare attenzione è stata data alla sicurezza ed alle risorse necessarie per il suo utilizzo. Dovecot risulta infatti leggero, stabile e completo. Vediamo meglio le sue caratteristiche principali:
- Supporto completo IMAP4rev1 e POP3;
- Supporto per i formati mbox e Maildir;
- Possibilità di utilizzare un formato ad altre prestazioni dbox;
- Supporto per SSL/TSL;
- Pronto per il protocollo IPv6;
- Funzionalità avanzate come quote e ACL;
- Supporto autenticazione Sql, LDAP.
Aggiornamenti:
Ultima versione stabile rilasciata: 2.01
http://dovecot.org/releases/2.0/dovecot-2.0.1.tar.gz
http://dovecot.org/releases/2.0/dovecot-2.0.1.tar.gz.sig
Some small fixes mainly, but since people aren't reporting much bugs for
v2.0.0 anymore maybe v2.0.1 release will change that. :) Some of the
more important changes since v2.0.0 are:
* When dsync is started as root, remote dsync command is now also
executed as root instead of with dropped privileges.
- IMAP: QRESYNC parameters for SELECT weren't handled correctly.
- UTF-8 string validity checking wasn't done correctly (e.g.
mailbox names in Sieve fileinto)
Ultima versione stabile rilasciata: 1.2.14
http://dovecot.org/releases/1.2/dovecot-1.2.14.tar.gz
http://dovecot.org/releases/1.2/dovecot-1.2.14.tar.gz.sig
+ virtual mailboxes: Added support for IDLE notifications.
- master: Don't crash on config reload when using dict processes.
- IMAP: QRESYNC parameters for SELECT weren't handled correctly.
- dsync: Fixed a random assert-crash with remote dsyncing
Dovecot risulta molto leggero ed in grado di gestire caselle di posta di grandi dimensioni. La compatiblità è testata con la maggior parte dei client di posta. In questo breve articolo vedremo tutte le fasi necessarie per renderlo operativo, dal download del software alla sua installazione e configurazione.La distribuzione utilizzata è Slackware 10.2 con Postfix come mailserver, gli utenti vengono gestiti da un database MySql e le password vengono memorizzate in chiaro.
Installazione del software
Dovecot è disponibile per il download diretto dal sito ufficiale o tramite CVS, se utilizzate una distribuzione con tool Apt o Yum potrete facilmente trovare il pacchetto precompilato ed installarlo. Nel nostro caso procediamo con il download dei sorgenti e con la creazione del pacchetto tgz per Slackware tramite checkinstall.
wget http://www.dovecot.org/releases/dovecot-1.0.rc8.tar.gz
tar xzvf dovecot-1.0.rc8.tar.gz
cd dovecot-1.0.rc8
./configure --with-mysql --with-ssl
make
checkinstall
Seguendo la procedura guidata otterremo il pacchetto tgz che installeremo con l’apposito tool e che potrà essere facilmente aggiornato in seguito.
upgradepkg --install-new dovecot-1.0.rc8-i386-1.tgz
Se tutto è andato a buon fine possiamo procedere alla configurazione del server. Se la compilazione non dovesse andare a buon fine è necessario verificare che i tool di sviluppo siano installati correttamente e che le librerie OpenSSL e MySql siano nella posizione corretta. Per ulteriori informazioni è disponibile una guida dettagliata all’indirizzo http://wiki.dovecot.org/CompilingSource.
Configurazione del server
La configurazione che andremo ad eseguire è piuttosto complessa ma Dovecot ci viene incontro con una sintassi chiara ed efficace. Sul nostro sistema è infatti presente Postfix che utilizza MySql per la gestione degli utenti, i messaggi di posta vengono memorizzati in formato Maildir (dominio/utente) e ad ogni Maildir è assegnata una quota utente gestita a livello di database. Creiamo innanzitutto il file necessario per reperire tutte le informazioni dal database MySql.
cd /usr/local/etc
vi dovecot-sql.conf
Nel file andremo ad indicare come reperire utenti, password e quote disco. Le quote dovranno essere restituite in KBytes. Di seguito il contenuto del file.
driver = mysql
default_pass_scheme = plain
connect = host=/var/run/mysql/mysql.sock user=postfix password=1234 dbname=postfix password_query = SELECT password FROM mailbox WHERE username = '%u' AND domain = '%d' AND active = 1
user_query = SELECT maildir, 76 AS uid, 76 AS gid, CONCAT('dirsize:storage=', ROUND(quota/1024)) AS quota FROM mailbox WHERE username = '%u'
Uid e Gid vengono impostati a 76 in quanto corrispondono all’utente con cui gira il server Postfix. Le query sono molto semplice e facilmente adattabili ad una struttura di database differente. Generiamo ora i certificati OpenSSL auto firmati; per farlo utilizziamo il tool presente nella directory doc dei sorgenti.
cd dovecot-1.0.rc8/doc
vi dovecot-openssl.cnf
chmod +x mkcert.sh && ./mkcert.sh
Passiamo alla configurazione generica che potete trovare come file sample nella directory /usr/local/etc.
vi dovecot.conf
Di seguito trovate la configurazione adattata ai requisiti esposti precedentemente; per una consultazione più semplice trovate tutti i files in allegato alla pagina.
base_dir = /var/run/dovecot/
protocols = imap imaps pop3 pop3s
listen = *
disable_plaintext_auth = no
shutdown_clients = yes
## LOG
log_path = /var/log/dovecot
info_log_path = /var/log/dovecot
log_timestamp = "%b %d %H:%M:%S "
syslog_facility = mail
## SSL
ssl_disable = no
ssl_cert_file = /etc/ssl/certs/dovecot.pem
ssl_key_file = /etc/ssl/private/dovecot.pem
## Login processes
login_dir = /var/run/dovecot/login
login_chroot = yes
login_user = postmaster
login_process_size = 32
login_process_per_connection = yes
login_processes_count = 3
login_max_processes_count = 128
login_max_connections = 256
login_greeting = Welcome to MailServer - Dovecot ready.
login_log_format_elements = user=<%u> method=%m rip=%r lip=%l %c
login_log_format = %$: %s
## Mailbox locations and namespaces
default_mail_env = maildir:/var/vmail/%d/%n
mail_extra_groups = mail
## Mail processes
mail_debug = no
first_valid_uid = 76
## Authentication processes
auth_debug = yes
auth_debug_passwords = yes
auth default {
mechanisms = plain digest-md5 cram-md5 login
passdb sql {
args = /usr/local/etc/dovecot-sql.conf
}
userdb sql {
args = /usr/local/etc/dovecot-sql.conf
}
user = root
count = 2
}
## POP3
protocol pop3 {
pop3_uidl_format = %08Xu%08Xv
mail_plugins = quota
}
## IMAP
protocol imap {
mail_plugins = quota imap_quota
}
## PLUGIN
plugin {
quota = dirsize:storage=102400
}
Dovecot sarà ora in grado di collegarsi al database MySql e di accettare autenticazioni plain, digest-md5, cram-md5 e login. Per maggiori informazioni sull’argomento visitate la pagina http://wiki.dovecot.org/Authentication. Sono stati abilitati i plugin quota e imap_quota, il valore di default è stato impostato a 102400 KBytes.
Avvio del demone
Il servizio può essere gestito tramite inetd o attraverso il demone dovecot, nel primo caso dovremo associare i processi imap-login e pop3-login mentre nel secondo lanciare semplicemente un comando.
/usr/local/sbin/dovecot
In allegato trovate il file rc.dovecot in grado di gestire le operazioni di avvio, stop e riavvio su Slackware.
Test e Debug
Come avrete notato nella configurazione è stato abilitato il debug delle query Sql e dell’intero processo di autenticazione. Osserviamo il file di log in tempo reale:
tail -f /var/log/dovecot
Se il demone è partito correttamente troveremo corrispondenza nel log.
Dovecot v1.0.rc8 starting up
auth-worker(default): mysql: Connected to /var/run/mysql/mysql.sock (postfix)
auth-worker(default): mysql: Connected to /var/run/mysql/mysql.sock (postfix)
Se così non fosse verificate il file di configurazione ed assicuratevi che il demone sia in grado di collegarsi al database. Verifichiamo la connessione al server su protocollo Pop3:
telnet localhost 110
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
+OK Welcome to MailServer - Dovecot ready.
user davide@pippo.net
+OK
pass 1234
+OK Logged in.
list
+OK 1 messages:
1 7515453
.
quit
+OK Logging out.
Connection closed by foreign host.
Il server funziona correttamente, non ci resta che effettuare le operazioni di posta con il nostro client preferito, Pop3 o Imap che sia. L’autore ha dedicato una pagina della wiki per analizzare la compatibilità con i prodotti più diffusi disponibile all’indirizzo http://wiki.dovecot.org/Clients.
Conclusioni e considerazioni
Dovecot si è dimostrato un software completo e facile da configurare. Grazie ad un impiego di risorse ridotto e ad un supporto per molteplici metodi di autenticazione abbiamo potuto impiegarlo in sostituzione a Courier-Imap, certamente stabile ma difficile da debuggare e configurare. Il giudizio è sicuramente positivo e testandolo in produzione potremo in seguito esprimere un parere anche sull’affidabilità. In allegato trovate il pacchetto Tgz per Slackware ed i file citati nell’articolo.
Configurazione del firewall per un server email.
Per accedere al server mail da un altro computer, è necessario configurare il firewall affinché consenta i collegamenti al server sulle porte necessarie.
-
IMAP - 143
-
IMAPS - 993
-
POP3 - 110
-
POP3S - 995
Se ti è piaciuto l'articolo , iscriviti al feed cliccando sull'immagine sottostante per tenerti sempre aggiornato sui nuovi contenuti del blog: