whitelist y blacklist en amavis

20 de marzo de 2009

Una de las maneras más fáciles de crear una whitelist/blacklist para Zimbra es utilizar un parámetro de configuración de Amavis llamado read_hash(). No he encontrado mucha documentación sobre esta función pero básicamente es para leer ficheros de texto.

Supongamos que tenemos un conjunto de direcciones a las que no queremos aplicarles ninguna comprobación de spamassessin (whitelist) y otro conjunto que directamente queremos bloquear (blacklist).
Para ello creamos dos archivos llamados /etc/zimbra/whitelist y /etc/zimbra/blacklist:

# cat /etc/zimbra/whitelist
amYYY@gmail.com
# cat /etc/zimbra/blacklist
amZZZ@gmail.com
Con el siguiente ejemplo siempre denegaremos cualquier correo de amperisblog@gmail.com y siempre aceptaremos correos de amperis@gmail.com. A las direcciones dentro de la whitelist no se le aplicará ningún test de antispam.

Ahora solo tenemos que decirle al Amavis donde están estos dos archivos. Para ello editamos el /opt/zimbra/conf/amavisd.conf.in y añadimos las siguiente lineas:
read_hash(\%whitelist_sender, '/etc/zimbra/whitelist');
read_hash(\%blacklist_sender, '/etc/zimbra/blacklist');

Por último reiniciamos Amavis o Zimbra:
# su - zimbra
# zmamavisdctl stop
 Killing amavisd with pid 2000 done.
# zmamavisdctl start
 Started amavisd: pid 4957

Si intentamos enviar un correo desde amperisblog@gmail.com (que está dentro de la blacklist) a test@miempresa.com veremos como dentro del Log de Zimbra se denegará el correo:
# cat /var/log/zimbra.log | grep amperisblog
...
Mar 20 23:20:45 srv amavis[2092]: (02092-01) Blocked SPAM, [219.85.216.175] 
amperisblog@gmail.com -> test@miempresa.com, Message-ID: 
<220528c0903201520o6d42864et8445ed29abebaac6@mail.gmail.com>, mail_id: 
Me6GVPFvH3Um, Hits: -, size: 2490, 13055 ms

Lo contrario, si enviamos un mail desde amperis@gmail.com este llegará y si observamos las cabeceras del correo veremos como no se le aplica ninguna comprobación antispam:
X-Spam-Flag: NO
X-Spam-Score: 0
X-Spam-Level: 
X-Spam-Status: No, score=x tagged_above=-10 required=5 WHITELISTED tests=[]


2 comentarios:

Daniel dijo...

¿En estas listas negras/blancas se pueden usar comodines como *?

Yo lo he hecho con comodines y no me funciona, el correo se va como spam común y corriente en vez de ser descartado de inmediato.

Anónimo dijo...

Excelente aporte, no encontraba esta información por ningún lado, solo comentarte que en mi servidor los archivos estan en /opt en lugar de /etc.