Creative Commons License
Excepto donde se indique otra cosa, todo el contenido de este lugar está bajo una licencia de Creative Commons.
Taquiones > sysadmin > Exim4, SpamAssassin y Clamav en Debian stable

Exim4, SpamAssassin y Clamav

Todos juntos en una máquina funcionando bajo Debian, versión estable, y que no parecen estar muy de acuerdo unos con otros: se cuelan demasiados mensajes de Spam.

Paquetes involucrados

Documentación

Los siguientes enlaces proporcionan casi la misma información, pero con matices interesantes entre ellos, puesto que sus intereses son distintos:

Configuración

La configuración de Exim4 merece otra entrada completa, baste decir que para este caso es necesario que la configuración sea del tipo dividida y no monolítica.

Los archivos interesantes son los siguientes:

  • */etc/exim4/conf.d/main/01exim4-configlistmacrosdefs
  • */etc/exim4/conf.d/000_localmacros
  • */etc/exim4/sa-exim.conf

y para comprobar la configuración basta con efectuar una llamada a:

# update-exim4.conf

cosa que en Debian ya hace el programa de inicio de Exim4 (/etc/init.d/exim4).

Por otra parte es muy útil comprobar la configuración antes de liarla con el servicio en activo:

# exim4 -C /etc/exim/exim_example.conf -d -bt user@example.com

Spamassassin

Para activar SpamAssassin basta con incluír la siguiente línea en el archivo /etc/default/spamassassin:

ENABLED=1

Para activar el puente entre los dos, usando sa-exim, debe estar la siguiente línea en el archivo /etc/exim4/sa-exim.conf:

SAEximRunCond: 1

lo que hará que se efectúe una exploración sobre todos los mensajes.

Antivirus clamav

Respecto a clamav los pasos a seguir son dos:

  1. Incluir el usuario clamav en el grupo Debian-exim:

    Debian-exim:x:102:clamav

  2. Definir el escaner en el archivo /etc/exim4/conf.d/main/01_exim4-config_listmacrosdefs ó en /etc/exim4/conf.d/main/000_localmacros dependiendo de la instalación, pero siempre pensando en que debe estar en el archivo que define macros.

    av_scanner = clamd:/var/run/clamav/clamd.ctl

Tras reiniciar el sistema de correo

# /etc/init.d/exim4 restart

se deben vigilar los registros de actividad en /var/log/exim4/mainlog, /var/log/exim4/rejectlog y, el más importante, /var/log/exim4/paniclog.

Pruebas

Para efectuar pruebas un programa excelente es swaks, auxiliado por mpack, que puede usarse de la siguiente forma:

$ swaks -s localhost -f victor@localhost -t victor@taquiones.net
=== Trying localhost:25...
=== Connected to localhost.
<-  220 daga.taquiones.net ESMTP Exim 4.50 Wed, 25 Oct 2006 18:21:21 +0100
-> EHLO daga.taquiones.net
<-  250-daga.taquiones.net Hello localhost [127.0.0.1]
<-  250-SIZE 20000000
<-  250-PIPELINING
<-  250-AUTH PLAIN LOGIN
<-  250-STARTTLS
<-  250 HELP
-> MAIL FROM:<victor@localhost>
<-  250 OK
-> RCPT TO:<victor@taquiones.net>
<-  250 Accepted
-> DATA
<-  354 Enter message, ending with "." on a line by itself
-> Date: Wed, 25 Oct 2006 18:21:21 +0100
-> To: victor@taquiones.net
-> From: victor@localhost
-> Subject: test Wed, 25 Oct 2006 18:21:21 +0100
-> X-Mailer: swaks v20040404.1 jetmore.org/john/code/#swaks
->
-> This is a test mailing
->
-> .
<-  250 OK id=1GcmRN-0005Y4-Ai
-> QUIT
<-  221 daga.taquiones.net closing connection
=== Connection closed by foreign host.

y si se pretende comprobar los filtros de virus, lo mejor es descargarse, en cualquier de sus versiones de empaquetado, el armazón de virus estándar eicar y enviárselo así:

$ wget https://secure.eicar.org/download/eicar_com.zip
...
$ mpack -s "virus test" -o message eicar_com.zip
$ cat message | swaks -s localhost -f victor@localhost -t victor@taquiones.net -g
=== Trying localhost:25...
=== Connected to localhost.
<-  220 daga.taquiones.net ESMTP Exim 4.50 Wed, 25 Oct 2006 18:31:07 +0100
-> EHLO daga.taquiones.net
<-  250-daga.taquiones.net Hello localhost [127.0.0.1]
<-  250-SIZE 20000000
<-  250-PIPELINING
<-  250-AUTH PLAIN LOGIN
<-  250-STARTTLS
<-  250 HELP
-> MAIL FROM:<victor@localhost>
<-  250 OK
-> RCPT TO:<victor@taquiones.net>
<-  250 Accepted
-> DATA
<-  354 Enter message, ending with "." on a line by itself
-> Message-ID: <21712.1161797390@daga.taquiones.net>
-> Mime-Version: 1.0
-> Subject: virus test
-> Content-Type: multipart/mixed; boundary="-"
->
-> This is a MIME encoded message.  Decode it with "munpack"
-> or any other MIME reading software.  Mpack/munpack is available
-> via anonymous FTP in ftp.andrew.cmu.edu:pub/mpack/
-> ---
-> Content-Type: application/octet-stream; name="eicar_com.zip"
-> Content-Transfer-Encoding: base64
-> Content-Disposition: inline; filename="eicar_com.zip"
-> Content-MD5: bOb0FdhHVUW+W6EU8giw/w==
->
-> UEsDBAoAAAAAAOCYuCg8z1FoRAAAAEQAAAAJAAAAZWljYXIuY29tWDVPIVAlQEFQWzRcUFpY
-> NTQoUF4pN0NDKTd9JEVJQ0FSLVNUQU5EQVJELUFOVElWSVJVUy1URVNULUZJTEUhJEgrSCpQ
-> SwECFAAKAAAAAADgmLgoPM9RaEQAAABEAAAACQAAAAAAAAABACAA/4EAAAAAZWljYXIuY29t
-> UEsFBgAAAAABAAEANwAAAGsAAAAAAA==
->
-> -----
->
-> .
<** 550-El mensaje contiene un virus ó un programa malicioso
<** 550 (Eicar-Test-Signature).
-> QUIT
<-  221 daga.taquiones.net closing connection

El mensaje de error se ha personalizado editando el archivo /etc/exim4/conf.d/acl/40_exim4-config_check_data y cambiando directamente los textos en todas las órdenes message.