@ :~/blog/sieve-howto-postfixdovecot-in-ispconfig3-environment$
← cd ~/blog

less sieve-howto-postfixdovecot-in-ispconfig3-environment.md

sieve: howto postfix/dovecot in ispconfig3 environment

#Debian & Sysadmin#Ispconfig archivio

# archivio storico — scritto anni fa, conservato com'era. Alcune info sono datate.

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.
Sieve Mail Filter

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

install-and-set-up-roundcube-webmail-interface-300x225

Per poter maneggiare le regole di filtraggio lato-server attraverso  Roundcube, dobbiamo abilitare il plugin managesieveeditando 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.