This tutorial is available in other languages. Help translate more

English /

Messa in quarantena

Attention

Check out the lightweight on-premises email archiving software developed by iRedMail team: Spider Email Archiver.

Sin dalla versione 0.7.0 di IredMail, la messa in quarantena e le relative configurazioni in Amavisd sono configurate da iRedMail, ma disabilitate per default, potere facilmente abilitate il sistema di messa in quarantena tramite questo tutoria.

Con le modifiche che trovare sotto, mail Virus/Spam/Banned saranno messe in quarantena in un database SQL. Potrete a questo punto gestire le mail in quarantena con iRedAdmin-Pro.

Messa in quarantena di spam, virus, banned e messaggi con intestazioni scorrette.

Modificare il file di configurazione di Amavisd, trovate le configurazioni sotto riportate ed aggiornatele. Se non esistono, aggiungetele.

# Part of file: /etc/amavisd/amavisd.conf

# Change values of below parameters to D_DISCARD.
# Detected spams/virus/banned messages will not be delivered to user's mailbox.
$final_virus_destiny = D_DISCARD;
$final_spam_destiny = D_DISCARD;
$final_banned_destiny = D_DISCARD;
$final_bad_header_destiny = D_DISCARD;

# Quarantine SPAM into SQL server.
$spam_quarantine_to = 'spam-quarantine';
$spam_quarantine_method = 'sql:';

# Quarantine VIRUS into SQL server.
$virus_quarantine_to = 'virus-quarantine';
$virus_quarantine_method = 'sql:';

# Quarantine BANNED message into SQL server.
$banned_quarantine_to = 'banned-quarantine';
$banned_files_quarantine_method = 'sql:';

# Quarantine Bad Header message into SQL server.
$bad_header_quarantine_method = 'sql:';
$bad_header_quarantine_to = 'bad-header-quarantine';

Inoltre verificare di avere le righe sottostanti presenti nello stesso file di configurazione:

# For MySQL/MariaDB/OpenLDAP backends
@storage_sql_dsn = (
    ['DBI:mysql:database=amavisd;host=127.0.0.1;port=3306', 'amavisd', 'password'],
);

# For PostgreSQL
#@storage_sql_dsn = (
#    ['DBI:Pg:database=amavisd;host=127.0.0.1;port=5432', 'amavisd', 'password'],
#);

Il riavvio del servizio Amavaisd è richiesto per confermare le modifiche.

Configurare iRedAdmin-Pro affinché gestisca le mail in quarantena.

Aggiornate il file di configurazione di iRedAdmin-Pro, siate certi di avere le configurazioni corrette per Amavisd:

# File: settings.py

amavisd_db_host = '127.0.0.1'
amavisd_db_port = 3306
amavisd_db_name = 'amavisd'
amavisd_db_user = 'amavisd'
amavisd_db_password = 'password'

# Log basic info of inbound/outbound, no mail body stored.
amavisd_enable_logging = True

# Quarantining management
amavisd_enable_quarantine = True
amavisd_quarantine_port = 9998

# Per-recipient policy lookup
amavisd_enable_policy_lookup = True

Il riavvio del web server Apache o servizio uwsgi (se usate Nginx come web server) è necessario.

Adesso potete autenticarvi in iRedAdmin-Pro e gestire i messaggi in quarantena dal menu System -> Quarantined Mails. Scegliete l'azione adatta nella lista del menu a tendina per rilasciarli o cancellarli.

Copie delle videate sono allegate in fondo.

Notifiche agli utenti riguardo le mail in quarantena.

Note

È necessario affinché questa funzione sia operativa che abilitiate il self-service dal dominio della posta -- Lo potete abilitare nella pagina del profilo del dominio.

iRedAdmin-Pro mette a disposizione uno script che potete eseguire per notificare gli agli utenti le mail messe in quarantena: tools/notify_quarantined_recipients.py.

La mail di notifica viene legga dal file template tools/notify_quarantined_recipients.html, siete liberi di modificarlo affinché soddisfi le vostre necessità. (non dimenticatevi di salvare il file prima di aggiornare iRedAdmin-Pro.)

La mail di notifica conterrà il link ad iRedAdmin-Pro affinché l'utente possa cliccarlo ed autenticarsi per poter gestire le mail in quarantena. Dovete cambiare l'URL aggiungendo il parametro sotto riportato, con l'URL corretto, nel file di configurazione di iRedAdmin-Pro:

NOTIFICATION_IREDADMIN_URL = 'https://[tuo_server]/iredadmin/'

Per mandare le notifiche aggiungete un cron job che esegua: tools/notify_quarantined_recipients.py . Esempio per inviare notifiche ogni 6 ore:

1 */12 * * * python /path/to/tools/notify_quarantined_recipients.py >/dev/null

Non dimenticare di usare il percorso corretto verso il file notify_quarantined_recipients.py nel vostro server.

Potete anche eseguire lo script manualmente per notificare diversi utenti. Per esempio su RHEL/CentOS:

cd /var/www/iredadmin/tools/
python notify_quarantined_recipients.py

Messa in quarantena di mail pulite.

Nota: se volete mettere in quarantena mail invitate da/per certi utenti locali, fate invece riferimento a questo documento: Quarantine clean emails sent from/to certain local user

Se volete mettere in quarantena mail pulite in un database SQL per una futura approvazione o qualunque altra ragione, seguite i seguenti passi:

$clean_quarantine_method = 'sql:';
$clean_quarantine_to = 'clean-quarantine';
$policy_bank{'ORIGINATING'} = {
    ...
    clean_quarantine_method => 'sql:',
    final_destiny_by_ccat => {CC_CLEAN, D_DISCARD},
}

Ora tutte le mail pulite inviate dal vostro utente verranno messe in quarantena in un database SQL.

Screenshots