7. ClamAV
Exim4 también incorpora soporte para algunos antivirus, en la documentación oficial (Content scanning at ACL time) se puede consultar el listado y las instrucciones para cada uno de ellos. En este capítulo se activará ClamAV aunque últimamente lo tengo desactivado por continuos errores socket timeout, además. no tengo muy claro que este antivirus sirva para algo aparte de consumir muchos recursos en el sistema.
El paquete a instalar es clamav-daemon el cual escucha en un socket por el que se comunica Exim4. Para instalarlo e iniciarlo estos son los comandos:
apt install clamav-daemon
systemctl start clamav-daemon
Para activarlo en Exim4 se establece la directiva av_scanner en el fichero general de definiciones tal y como se muestra a continuación:
av_scanner = clamd:/var/run/clamav/clamd.ctl
El siguiente paso es decidir que hacer con los correos que contengan malware, y
en el ejemplo propuesto por Debian en el fichero
conf.d/acl/40_exim4-config_check_data
se propone denegarlos (deny) pero
la configuración está comentado, lo que se se debe activar tal y como se muestra
a continuación:
deny
malware = *
message = This message was detected as possible malware ($malware_name).
La configuración no termina aquí, ya que puede aparecer en Debian un problema de permisos en la comunicación de Exim4 y ClamAV debido a los permisos de los ficheros. El problema viene cuando ClamAV necesita leer los correos desde las carpetas temporales de Exim4 y ambos se ejecutan con usuario/grupo diferente. A continuación muestro dos posibles soluciones:
Solución 1:
ClamAV necesita leer /var/spool/exim4/scan/
para escanear los correos,
para solucionarlo se puede añadir el usuario clamav a grupo Debian-exim
mediante:
adduser clamav Debian-exim
Pero no basta con lo anterior, también hay que cambiar una directiva de ClamAV en la configuración de este:
AllowSupplementaryGroups yes
Solucion 2:
Cambiar el grupo de /var/spool/exim4/scan/
a clamav y establecer los permisos
de grupo adecuados para el directorio mediante:
chgrp clamav /var/spool/exim4/scan/
chmod g+xrs /var/spool/exim4/scan/