== Configurazione di Dovecot con Sieve == Lo scopo di sieve (e Managesieve) e` quello di consentire al client di posta (o webmail) di gestire dei filtri (scritti con il linguaggio Sieve, o anche compilati dal client il quale propone all'utente una interfaccia semplificata per la generazione dei filtri) che poi vengono salvati sul server, e applicati direttamente dal server alle mail in arrivo per l'utente. In questo modo i filtri, cosi` come le mail dentro le caselle IMAP, si "conservano" fra un client di posta e l'altro, e soprattutto vengono applicati alla mail in ingresso direttamente dal server e non dal client. Questa configurazione e` basata su Debian (7, 8, 9, e 10) e Devuan (Ascii e Beowulf) ma puo` essere piu` o meno adattata anche ad altre distribuzioni. La parte di interfaccia con l' MTA e` fatta per Exim 4.x, e specificamente per la configurazione che trovate qui: [[../Exim4-Dovecot]]. '''Attenzione:''' in Devuan Beowulf / Debian 10 ci sono alcune piccole modifiche al file di config di Dovecot. Sono commentate nel file stesso. === Installazione === * Eseguire {{{ apt install dovecot-imapd dovecot-pop3d dovecot-managesieved dovecot-sieve }}} === Configurazione di Dovecot con Sieve === La configurazione di Dovecot e` radicalmente cambiata dalla versione 1.x alla 2.x. Questa configurazione e` praticamente equivalente a quella indicata nella pagina [[../Exim4-Dovecot]], solo che in questa e` inclusa la configurazione di Sieve, Managesieve, e dell' LDA (local delivery agent) che verra` richiamato da Exim per fare il delivery (con esecuzione dei filtri Sieve) per gli utenti virtuali del mail server. I files dei filtri Sieve si trovano nella stessa directory dove si trova la maildir "principale" dell'utente, in questa configurazione dentro {{{/var/vmail///}}}. L'accesso alla gestione dei filtri Sieve avviene tramite il protocollo Managesieve, sulla porta standard 4190/TCP, la quale andra` aperta sul firewall se occorre l'accesso dall'esterno. E` ovviamente prevista l'autenticazione, che e` la stessa (username e password) che si usa per accedere alla propria casella IMAP. Questo e` il file {{{/etc/dovecot/dovecot.conf}}}, che non utilizza alcuna altra configurazione (ne` i files dentro conf.d ne` la configurazione del database, in questo caso) {{{ ## ## usa questi protocolli (le versioni "s" sono comprese, quindi ## imap include imaps e pop3 include pop3s) ## protocols = imap pop3 sieve ## ## Disabilita IPV6 (volendo) ## # listen=* ## ## autenticatori che accetto (tolgo ntlm, nel caso lo rimettero`) ## # auth_mechanisms = plain login digest-md5 cram-md5 apop ntlm auth_mechanisms = plain login digest-md5 cram-md5 apop ## ## Patch per disabilitare SSLv3 e inferiori. ## Visto il bug disastroso di SSLv3 (15/10/14) ## ## (OBSOLETO SU DEVUAN BEOWULF / DEBIAN 10, COMMENTATO) ## # ssl_protocols = !SSLv3 ## ## Consenti l'autenticazione plaintext sempre, anche senza SSL. ## Non e` sicuro ma lo uso in locale con la webmail ## disable_plaintext_auth = no ## ## Consenti di usare l' UID 8 per accedere alla mail ## (visto che tutta la mia mail dei virtual domanins e` di questo utente) ## first_valid_uid = 8 last_valid_uid = 8 first_valid_gid = 8 last_valid_gid = 8 ## ## Carica il certificato e la chiave privata per SSL da qui: ## ssl_cert = dh.pem" ## ssl_dh=//sieve. # il file del filtro attivo e` di default ".dovecot.sieve" ma lo rinomino in "dovecot-sieve" # senza il "." all'inizio altrimenti viene confuso con una cartella imap che ovviamente non esiste. plugin { sieve = ~/dovecot.sieve } ## ## LDA (per usare i filtri sieve, uso l' LDA di Dovecot richiamato da Exim) ## lda_original_recipient_header = X-Original-To lda_mailbox_autocreate = yes lda_mailbox_autosubscribe = yes protocol lda { mail_plugins = $mail_plugins sieve } ## ## Configurazioni generali del sistema di autenticazione ## service auth { user = Debian-exim # questo socket e` quello su cui si autentica Exim per l' SMTP autenticato unix_listener auth-client { mode = 0666 } } ## ## Configurazione dell'autenticazione degli utenti su file di testo ## diviso in due parti: ## - passdb definisce da che database (files di testo in questo caso) leggo username ## e password e in che formato li leggo ## - userdb definisce dove si trova la mail e come la si accede a seconda ## di che utente sei (in questa config e` uguale per tutti, tranne che per ## il percorso dei files della maildir, infatti uso un driver "static") ## passdb { args = username_format=%n scheme=plain /etc/vmail/users/%d driver = passwd-file } userdb { args = uid=mail gid=mail home=/var/vmail/%d/%n mail=maildir:/var/vmail/%d/%n driver = static } ## ## configurazioni del protocollo imap ## protocol imap { imap_client_workarounds = mail_max_userip_connections = 30 } ## ## configurazioni del protocollo pop ## protocol pop3 { pop3_logout_format = top=%t/%T, retr=%r/%R, del=%d/%m, size=%s pop3_uidl_format = %08Xu%08Xv } ## ## Configurazione dell'utente di default per i socket ## del servizio stats. Questa modifica si rende necessaria ## se si usa dovecot-lda con un utente che non sia "dovecot" ## (per esempio "mail") altrimenti dovecot-lda non riesce a ## scrivere le stats e riporta warning ad ogni mail consegnata ## ## Questa modifica รจ necessaria da Debian 10 / Devuan Beowulf in poi. ## (versione di Dovecot 2.3.4.1) ## service stats { unix_listener stats-reader { user = mail group = mail mode = 0660 } unix_listener stats-writer { user = mail group = mail mode = 0660 } } }}} === Configurazione di Exim === La configurazione generale di Exim e` al di fuori dello scopo di questa documentazione, qui faccio riferimento sempre alla configurazione in [[../Exim4-Dovecot]] e la modifico in modo che utilizzi l' LDA di Dovecot per il delivery locale della mail. Nessuna delle funzioni originali descritte in [[../Exim4-Dovecot]] viene meno, semplicemente si aggiunge, come ultimo anello della catena di elaborazione delle email il passaggio per il filtro Sieve di Dovecot. L'unica modifica da effettuare rispetto alla configurazione originale e` utilizzare il delivery qui sotto descritto. Per farlo e` sufficiente modificare la variabile {{{VIRTUAL_DELIVERY}}}. Se vi state facendo la vostra configurazione, fate riferimento a questo esempio per il vostro delivery locale. {{{ virtual_user_dovecot_delivery: driver = pipe command = /usr/lib/dovecot/dovecot-lda -d $local_part@$domain -f $sender_address -a $original_local_part@$original_domain message_prefix = message_suffix = delivery_date_add envelope_to_add return_path_add log_output user = mail temp_errors = 64 : 69 : 70: 71 : 72 : 73 : 74 : 75 : 78 }}} Questo trasporto richiama l'eseguibile dovecot-lda (attenzione al percorso del file, che non e` detto che sia esattamente questo se non usate Debian) passandogli parametri ricavati da variabili interne di Exim, facendo fare a lui l'operazione di scrivere nella maildir dell'utente, eventualmente applicando il filtro Sieve se e` presente. === Client Managesieve per Thunderbird === Al momento per Thunderbird esiste solo un plugin per gestire i filtri Sieve, si chiama "sieve" ed e` alla versione 0.2.0 (agosto 2012). Funziona, ma non e` per nulla completo o particolarmente user friendly. Se si vuole usarlo a fianco al client di Roundcube, consiglio di usare prevalentemente il client di Roundcube, e di uniformarsi alla sua sintassi e alla sua logica di funzionamento. Il vantaggio del client di Thunderbird e` che consente di editare a mano (come testo puro) il file dei filtri, mentre quello di default di Roundcube non lo permette. La configurazione del client e` molto semplice: username e password sono quelle dell' IMAP e Thunderbird se le gestisce da solo, non occorre nemmeno reinserirle. Per ogni account IMAP presente e` possibile abilitare o meno la funzione Managesieve (perche` non e` detto che tutti gli account siano su un server che lo supporta). === Client Managesieve per Roundcube === In Roundcube esiste un plugin che gestisce Sieve, va attivato durante l'installazione e poi funziona "out of the box". (esiste dalla versione 0.8 in poi) === Bug noti === * 7/10/2012 - La versione di Dovecot in squeeze-backports (1:2.1.7-2~bpo60+1) va in segfault quando si tenta di usare il comando per validare gli script. Questo per esempio la fa piantare sistematicamente quando si apre il plugin sieve di Thunderbird, a meno che non si disabiliti nel medesimo il sistema di "validate as you type". Il bug e` noto e dovrebbe anche essere risolto, ma in Debian Backports ancora non c'e` l'aggiornamento.