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 qué 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á comentada, por lo que 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 al 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 servicio:
AllowSupplementaryGroups yes
Solución 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/