****** ClamAV ****** .. include:: ../enlaces.inc.rst 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: .. code:: shell 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: .. code-block:: text :caption: Fichero /etc/exim4/conf.d/main/00_exim4-config_custom 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 :file:`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: .. code-block:: :caption: Fichero /etc/exim4/conf.d/acl/40_exim4-config_check_data (línea 48 aprox.) 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 :file:`/var/spool/exim4/scan/` para escanear los correos, para solucionarlo se puede añadir el usuario *clamav* a grupo *Debian-exim* mediante: .. code:: shell 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: .. code-block:: text :caption: Fichero /etc/clamav/clamd.conf AllowSupplementaryGroups yes **Solucion 2:** Cambiar el grupo de :file:`/var/spool/exim4/scan/` a *clamav* y establecer los permisos de grupo adecuados para el directorio mediante: .. code:: shell chgrp clamav /var/spool/exim4/scan/ chmod g+xrs /var/spool/exim4/scan/