Como resolver amavis WARN: all primary virus scanners failed, considering backups
Recien estaba instalando una nueva solucion de correo sobre Linux Ubuntu basado en Postfix+MySQL para usuarios virtuales, y el filtro antivirus esta soportado por Amavis-NEW. Luego de terminar de instalar y configurar los filtros de correo ejecute el siguiente comando para asegurarme que el demonio del antivirus clamav funcionara correctamente:
ro[email protected]:~# /etc/init.d/clamav-daemon status * clamd is running
Con lo anterior si esta ejecutandose ClamAV.
Postfix, errores en la bitacora de Amavis con ClamAV
Buscando en la bitacora de errores de postfix encontre que amavis esta tirando un error de fallo de comunicacion con el antivirus de Linux Ubuntu.
[email protected]:~# tail -f /var/log/mail.err
...
Apr 13 19:01:11 mail amavis[22478]: (22478-01) (!!)WARN: all primary virus scanners failed, considering backups Apr 13 19:01:11 mail amavis[22477]: (22477-01) (!!)WARN: all primary virus scanners failed, considering backups Apr 13 19:01:22 mail amavis[22477]: (22477-02) (!!)WARN: all primary virus scanners failed, considering backups Apr 13 19:01:22 mail amavis[22478]: (22478-02) (!!)WARN: all primary virus scanners failed, considering backups Apr 13 19:01:33 mail amavis[22478]: (22478-03) (!!)WARN: all primary virus scanners failed, considering backups Apr 13 19:01:43 mail amavis[22477]: (22477-03) (!!)WARN: all primary virus scanners failed, considering backups
...
Esto significa que el MTA Postfix si esta redirigiendo sus correos al puerto 10024 donde escucha amavis-new, y este lo esta tirando hacia el filtro de antivirus de clamav, pero este por alguna razon no le contesta. Por cierto, anteriormente tenia instalado el clamav pero no en version de servidor o demonio por lo cual tuve que ejecutar el comando aptitude install clamav-daemon.
Amavis-new y ClamAv para Postfix y MySQL
En el archivo de configuración de amavis (amavisd.conf) verificamos que el socket de antivirus sea clamd.ctl o lo cambiamos de esta manera:
['ClamAV-clamd', #\&ask_daemon, ["CONTSCAN {}\n", "/var/spool/amavisd/clamd.sock"], \&ask_daemon, ["CONTSCAN {}\n", "/var/run/clamav/clamd.ctl"],
Ahora en el archivo de configuración de ClamAV cambiamos el socket de comunicación de Linux;
# Path to a local socket file the daemon will listen on. # Default: disabled (must be specified by a user) #LocalSocket /tmp/clamd.socket LocalSocket /var/run/clamav/clamd.ctl
Con estos cambios ya estamos seguros que cualquier correo entrante en Postfix sera redirigido correctamente hacia los filtros antivirus de ClamAV gracias a Amavis.
Sin embargo el problema persiste. Los correos no están siendo escaneados por ClamAV y la cola del Postfix esta creciendo.
Amavis-new y ClamAV ejecutandose con el mismo usuario
Ya que tengo años de no hacer un servidor de correo desde 0, si no mas bien utilizo herramientas o distribuciones gráficas de Linux como Ebox me tomo un poco de tiempo dar con el problema, pero después de cambiar la configuraciones de Amavis y ClamAV para que utilicen el mismo usuario, todo empezó a funcionar.
Como configurar ClamAV daemon para que funcione con Amavis y Postfix
Editamos el archivo /etc/clamav/clamd.conf y donde dice User lo cambiamos de clamav a amavis.
LocalSocket /var/run/clamav/clamd.ctl User clamav LogFile /var/log/clamav/clamav.log PidFile /var/run/clamav/clamd.pid DatabaseDirectory /var/lib/clamav/
Cambiando los permisos de los directorio de ClamAV
En mi sistema Linux Debian o Ubuntu cambiamos los propietarios de los directorios de ClamAV para que sean de Amavis-new
chown -R amavis:amavis /var/run/clamav chown -R amavis:amavis /var/lib/clamav chown -R amavis:amavis /var/log/clamav
Asi mismo debemos de cambiar el usuario y los permisos de los directorio de freshclam en /etc/clamav/freshclam.conf,
DatabaseOwner clamav UpdateLogFile /var/log/clamav/freshclam.log
Ahora bien, respecto a la rotación de las bitácoras debemos de hacer también los respectivos cambios de propietarios y permisos para ClamAV /etc/logrotate.d/clamav-daemon
y freshclam (/etc/logrotate.d/clamav-daemon
).
Cambiamos de
create 640 clamav adm a create 640 amavis adm
Ahora solo nos queda reiniciar los servicios de clamav para que los correos de Postfix sean escaneados por el antivirus correctamente
/etc/init.d/clamav-daemon reload
Con ayuda,
Via | Amavis ClamAV