2014-09-26 03:02:55 -05:00
|
|
|
# Quarantining
|
|
|
|
|
2014-09-26 10:31:30 -05:00
|
|
|
[TOC]
|
|
|
|
|
2014-12-18 06:40:50 -06:00
|
|
|
|
2014-09-26 03:02:55 -05:00
|
|
|
Since iRedMail-`0.7.0`, quarantining related settings in Amavisd are configured
|
|
|
|
by iRedMail but disabled by default, you can easily enable quarantining with
|
|
|
|
this tutorial.
|
|
|
|
|
|
|
|
With below steps, Virus/Spam/Banned emails will be quarantined into SQL database.
|
|
|
|
You can then manage quarantined emails with iRedAdmin-Pro.
|
|
|
|
|
2015-04-08 04:21:48 -05:00
|
|
|
## Quarantining spam, virus, banned and bad header messages
|
2014-09-26 03:02:55 -05:00
|
|
|
|
|
|
|
Edit Amavisd config file, find below settings and update them. If it doesn't
|
|
|
|
exist, please add them.
|
2014-09-26 10:31:30 -05:00
|
|
|
|
2014-09-26 03:02:55 -05:00
|
|
|
* on Red Hat Enterprise Linux, CentOS, Scientific Linux, it's `/etc/amavisd/amavisd.conf`
|
|
|
|
or `/etc/amavisd.conf`.
|
|
|
|
* on Debian/Ubuntu, it's `/etc/amavis/conf.d/50-user`.
|
|
|
|
* on FreeBSD, it's `/usr/local/etc/amavisd.conf`.
|
|
|
|
* on OpenBSD, it's `/etc/amavisd.conf`.
|
|
|
|
|
|
|
|
```
|
2014-12-18 06:40:50 -06:00
|
|
|
# Part of file: /etc/amavisd/amavisd.conf
|
2014-09-26 03:02:55 -05:00
|
|
|
|
2015-04-08 04:21:48 -05:00
|
|
|
# Change values of below parameters to D_DISCARD.
|
2014-12-18 06:40:50 -06:00
|
|
|
# Detected spams/virus/banned messages will not be delivered to user's mailbox.
|
2014-09-26 03:02:55 -05:00
|
|
|
$final_virus_destiny = D_DISCARD;
|
|
|
|
$final_spam_destiny = D_DISCARD;
|
|
|
|
$final_banned_destiny = D_DISCARD;
|
2015-04-08 04:21:48 -05:00
|
|
|
$final_bad_header_destiny = D_DISCARD;
|
2014-09-26 03:02:55 -05:00
|
|
|
|
|
|
|
# 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:';
|
|
|
|
|
2014-12-18 06:40:50 -06:00
|
|
|
# Quarantine BANNED message into SQL server.
|
2014-09-26 03:02:55 -05:00
|
|
|
$banned_quarantine_to = 'banned-quarantine';
|
|
|
|
$banned_files_quarantine_method = 'sql:';
|
2015-04-08 04:21:48 -05:00
|
|
|
|
|
|
|
# Quarantine Bad Header message into SQL server.
|
|
|
|
$bad_header_quarantine_method = 'sql:';
|
|
|
|
$bad_header_quarantine_to = 'bad-header-quarantine';
|
2014-09-26 03:02:55 -05:00
|
|
|
```
|
|
|
|
|
|
|
|
Also, make sure you have below lines configured in same config file:
|
|
|
|
|
2014-09-26 10:31:30 -05:00
|
|
|
```perl
|
2014-12-18 06:40:50 -06:00
|
|
|
# For MySQL/MariaDB/OpenLDAP backends
|
2014-09-26 03:02:55 -05:00
|
|
|
@storage_sql_dsn = (
|
2014-09-26 10:31:30 -05:00
|
|
|
['DBI:mysql:database=amavisd;host=127.0.0.1;port=3306', 'amavisd', 'password'],
|
2014-09-26 03:02:55 -05:00
|
|
|
);
|
|
|
|
|
|
|
|
# For PostgreSQL
|
|
|
|
#@storage_sql_dsn = (
|
2014-09-26 10:31:30 -05:00
|
|
|
# ['DBI:Pg:database=amavisd;host=127.0.0.1;port=5432', 'amavisd', 'password'],
|
2014-09-26 03:02:55 -05:00
|
|
|
#);
|
|
|
|
```
|
|
|
|
|
2014-12-18 06:40:50 -06:00
|
|
|
Restarting amavisd service is required.
|
2014-09-26 03:02:55 -05:00
|
|
|
|
|
|
|
## Configure iRedAdmin-Pro to manage quarantined mails
|
|
|
|
|
|
|
|
Update iRedAdmin-Pro config file, make sure you have correct settings for Amavisd:
|
2014-09-26 10:31:30 -05:00
|
|
|
|
2014-09-26 03:02:55 -05:00
|
|
|
* on Red Hat Enterprise Linux, CentOS, Scientific Linux, it's `/var/www/iredadmin/settings.py`.
|
2015-06-09 09:30:50 -05:00
|
|
|
* on Debian, Ubuntu, it's `/opt/www/iredadmin/settings.py` or `/usr/share/apache2/iredadmin/settings.py`.
|
2014-09-26 03:02:55 -05:00
|
|
|
* on FreeBSD, it's `/usr/local/www/iredadmin/settings.py`.
|
|
|
|
* on OpenBSD, it's `/var/www/iredadmin/settings.py`.
|
|
|
|
|
|
|
|
```python
|
|
|
|
# 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'
|
|
|
|
|
2014-10-10 10:51:42 -05:00
|
|
|
# Log basic info of inbound/outbound, no mail body stored.
|
2014-09-26 03:02:55 -05:00
|
|
|
amavisd_enable_logging = True
|
|
|
|
|
2014-10-10 10:51:42 -05:00
|
|
|
# Quarantining management
|
2014-09-26 03:02:55 -05:00
|
|
|
amavisd_enable_quarantine = True
|
|
|
|
amavisd_quarantine_port = 9998
|
|
|
|
|
2014-10-10 10:51:42 -05:00
|
|
|
# Per-recipient policy lookup
|
2014-09-26 03:02:55 -05:00
|
|
|
amavisd_enable_policy_lookup = True
|
|
|
|
```
|
|
|
|
|
2014-12-18 06:40:50 -06:00
|
|
|
Restarting Apache web server or `uwsgi` service (if you're running Nginx as
|
|
|
|
web server) is required.
|
2014-09-26 03:02:55 -05:00
|
|
|
|
2014-12-18 06:40:50 -06:00
|
|
|
You can now login to iRedAdmin-Pro, and manage quarantined messages via menu
|
2014-09-26 03:02:55 -05:00
|
|
|
`System -> Quarantined Mails`. Choose action in drop-down menu list to release
|
|
|
|
or delete them.
|
|
|
|
|
2014-09-26 10:25:47 -05:00
|
|
|
Screenshots attached at the bottom.
|
2014-09-26 03:02:55 -05:00
|
|
|
|
2014-09-26 10:25:47 -05:00
|
|
|
## Quarantine clean emails
|
2014-09-26 03:02:55 -05:00
|
|
|
|
2015-06-09 09:55:45 -05:00
|
|
|
Note: If you just want to quarantine clean emails sent from/to certain local
|
|
|
|
user, please refer to this document instead:
|
|
|
|
[Quarantine clean emails sent from/to certain local user](./quarantine.clean.mails.per-user.html)
|
|
|
|
|
2014-09-26 10:25:47 -05:00
|
|
|
If you want to quarantine clean emails into SQL database for further approval
|
2014-10-10 10:51:42 -05:00
|
|
|
or whatever reason, please follow below steps:
|
2014-09-26 03:02:55 -05:00
|
|
|
|
2014-10-10 10:56:19 -05:00
|
|
|
* Update below parameters in Amavisd config file `amavisd.conf`:
|
2014-09-26 10:25:47 -05:00
|
|
|
|
|
|
|
```perl
|
|
|
|
$clean_quarantine_method = 'sql:';
|
|
|
|
$clean_quarantine_to = 'clean-quarantine';
|
|
|
|
```
|
|
|
|
|
2014-10-10 10:56:19 -05:00
|
|
|
* Find policy bank `MYUSERS`, append two lines in this policy bank:
|
2014-09-26 03:02:55 -05:00
|
|
|
|
2014-09-26 10:25:47 -05:00
|
|
|
```perl
|
|
|
|
$policy_bank{'MYUSERS'} = {
|
|
|
|
...
|
|
|
|
clean_quarantine_method => 'sql:',
|
|
|
|
final_destiny_by_ccat => {CC_CLEAN, D_DISCARD},
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
2014-10-10 10:56:19 -05:00
|
|
|
* Restart Amavisd service.
|
2014-09-26 10:25:47 -05:00
|
|
|
|
|
|
|
Now all clean emails sent by your mail users will be quarantined into SQL
|
|
|
|
database.
|
|
|
|
|
|
|
|
## Screenshots
|
2014-09-26 03:02:55 -05:00
|
|
|
|
2014-09-26 10:25:47 -05:00
|
|
|
* View quarantined mails:
|
2014-09-26 10:31:30 -05:00
|
|
|
|
2014-10-13 05:03:19 -05:00
|
|
|
![](../images/iredadmin/system_maillog_quarantined.png)
|
2014-09-26 03:02:55 -05:00
|
|
|
|
2014-09-26 10:25:47 -05:00
|
|
|
* Expand quarantined mail to view mail body and headers.
|
2014-09-26 03:02:55 -05:00
|
|
|
|
2014-10-13 05:03:19 -05:00
|
|
|
![](../images/iredadmin/system_maillog_quarantined_expanded.png)
|