Oggi percorreremo insieme i passi per fare il set-up corretto di un sistema di filtraggio delle email lato-server attraverso Dovecot Sieve e Roundcube.
Alla fine di questo articolo avremo la possibilità di avere un nostro sistema automatico di filtraggio email e conseguente smistamento in un cartella determinata basato su regole di filtraggio a nostra scelta.
Cosa c’è nel cofano?! (What is all this about?)
Il progetto che sta dietro a tutto questo è conosciuto come Pigeonhole. Le cosa fantastiche sono state l’aver aggiunto sia il supporto al linguaggio Sieve (RFC 5228), sia il protocollo ManageSieve (RFC 5804) al Dovecot Secure IMAP Server. In aggiunta a questo metteci la possibilità di manipolare le vostre regole attraverso l’interfaccia web di Roundcube.
Prima di procedere, come al solito, preoccupiamoci di attivare una sessione screen:
screen -U -S sieve
Verificate che il vostro sistema sia aggiornato! (se non lo fosse… beh … fatelo!!!)
ABILITIAMO DOVECOT MANAGE-SIEVE
Installiamo ciò che è necessario
apt-get install dovecot-sieve dovecot-managesieved
Aggiungiamo le corrette direttive al nostro file di configurazione
vi /etc/dovecot/dovecot.conf
Verifichiamo che le direttive siano simili a queste:
protocols = imap pop3 sieve ... plugin { ... sieve_dir=/var/vmail/%d/%n/sieve sieve=/var/vmail/%d/%n/.sieve sieve_extensions = +spamtest +spamtestplus +relational +comparator-i;ascii-numeric sieve_global_path = /etc/sieve/conf.d/default.sieve sieve_global_dir = /etc/sieve/ sieve_before = /etc/sieve/conf.d/before sieve_after = /etc/sieve/conf.d/after ... } ... } managesieve_notify_capability = mailto managesieve_sieve_capability = fileinto reject envelope encoded-character Vacation subaddress comparator-i;ascii-numeric relational regex imap4flags copy include variables body enotify environment mailbox date service managesieve-login { inet_listener sieve { port = 4190 } service_count = 1 process_min_avail = 1 vsz_limit = 64M } service managesieve { process_limit = 10 } protocol sieve { managesieve_max_line_length = 65536 managesieve_implementation_string = dovecot log_path = /var/log/dovecot-sieve-errors.log info_log_path = /var/log/dovecot-sieve.log managesieve_logout_format = bytes ( in=%i : out=%o ) } ... protocol lda { mail_plugins = sieve quota } ...
Creo i file di log come indicati nel fil di configurazione
touch /var/log/{dovecot-sieve-errors.log,dovecot-sieve.log} touch /var/log/{dovecot-sieve-errors.log,dovecot-sieve.log} mkdir -p /etc/sieve/{global,after,before} chown vmail:vmail -R /etc/sieve/* chown vmail:mail /var/log/dovecot-*
Riavviamo il nostro servizio principale perché le nostre modifiche abbiamo effetto
service dovecot restart
Ora non ci resta che controllare se il servizio è attivo e funzionante.
# ps aux | grep -v grep | grep managesieve-login # netstat -an | grep LISTEN | grep :4190
Il primo comando dovrebbe restituire qualcosa di simile
dovenull 29840 0.0 0.1 5136 2244 ? S 10:53 0:00 dovecot/managesieve-login
mentre il secondo ci dirà se la porta di ascolto è stata correttamente impostata
tcp 0 0 0.0.0.0:4190 0.0.0.0:* LISTEN tcp6 0 0 :::4190 :::* LISTEN
SET-UP DEI FILTRI GLOBALI
Prossimo step è quello di creare un filtro che abbia come regola quella di sismtare le email contrassegnate come SPAM dal nostro SpamAssassin nella relativa cartella Spam/Junk. Procediamo con la creazione del seguente file:
vim /etc/sieve/global/default.sieve
e aggiungiamo un paio di regole
require ["fileinto"]; # rule:[SPAM] if header :contains "X-Spam-Flag" "YES" { fileinto "Spam"; } # rule:[SPAM2] elsif header :matches "Subject" ["*money*","*Viagra*","Cialis"] { fileinto "Spam"; }
ABILITIAMO IL PLUGIN SIEVE IN ROUNDCUBE
Per poter maneggiare le regole di filtraggio lato-server attraverso Roundcube, dobbiamo abilitare il plugin managesieve
editando pochi file di configurazione.
Spostiamo nell ROOT Directory di RoundCube
vim +/PLUGINS config/main.inc.php ... $rcmail_config['plugins'] = array( ... 'managesieve');
Successivamente nella cartella del plugin copiamo il file della configurazione di default e sistemiamolo come segue:
cd plugins/managesieve/ cp config.inc.php.dist config.inc.php vim config.inc.php ... $rcmail_config['managesieve_port'] = 4190; ... $rcmail_config['managesieve_default'] = '/etc/dovecot/sieve/default.sieve';
Ora potete procedere a fare il login attraverso l’interfaccia web di Roundcube e navigate attraverso Impostazioni > Filtri
e create nuovi set di filtri e/o regole.