Seguridad · 3 min read · Sep 22, 2025

Configurar Clamav para escaneos diarios del sistema y notificación por correo electrónico en Debian

Hoy echamos un vistazo al software antivirus ClamAV y cómo usarlo para proteger tu servidor o escritorio. Te mostraré cómo configurar ClamAV para escanear todos los archivos del sistema, del sitio web y del correo electrónico diariamente y notificarte por correo electrónico en caso de que se detecte un virus. Para aquellos que no conocen ClamAV, ClamAV es una solución de software antivirus de código abierto que está disponible en todas las distribuciones de Linux. Uno de los requisitos de esta guía es que tu servidor ya tenga un servicio de correo funcionando.

Este tutorial funciona bien en sistemas Debian, pero también debería ser compatible con sistemas Ubuntu.

Instalación y configuración

Primero ejecutamos el comando para instalar Clamav y una herramienta para enviar notificaciones por correo electrónico.

apt-get update && apt-get install clamav clamav-freshclam heirloom-mailx

Asegúrate de que la definición de virus se actualizará con el comando:

service ClamAV-freshclam start

Por defecto, ClamAV hará una verificación de nuevas definiciones de virus cada hora, si deseas cambiar este parámetro puedes editar el archivo /etc/clamav/freshclam.conf.

nano /etc/clamav/freshclam.conf

Y cambia la siguiente línea:

# Check for new database 24 times a day
Checks 24

por

# Check for new database 1 times a day
Checks 1

en este caso la verificación se realizará solo una vez al día. Te sugiero que dejes 24 veces al día.

Para hacer una actualización manual de las definiciones de virus, puedes ejecutar:

freshclam -v

Habilitar notificación y programar el escaneo

En el siguiente script, modifica la variable DIRTOSCAN para especificar los directorios que deseas escanear.

Creamos el archivo /root/clamscan_daily.sh

nano /root/clamscan_daily.sh

y pegamos el siguiente código:

#!/bin/bash
LOGFILE="/var/log/clamav/clamav-"$(date +'%Y-%m-%d')".log";
EMAIL_MSG="Por favor, consulta el archivo de registro adjunto.";
EMAIL_FROM="[email protected]";
EMAIL_TO="[email protected]";
DIRTOSCAN="/var/www /var/vmail";

for S in ${DIRTOSCAN}; do
 DIRSIZE=$(du -sh "$S" 2>/dev/null | cut -f1);

 echo "Iniciando un escaneo diario del directorio "$S".
 La cantidad de datos a escanear es "$DIRSIZE".";

 clamscan -ri "$S" >> "$LOGFILE";

 # obtener el valor de "Líneas infectadas"
 MALWARE=$(tail "$LOGFILE"|grep Infected|cut -d" " -f3);

 # si el valor no es igual a cero, enviar un correo electrónico con el archivo de registro adjunto
 if [ "$MALWARE" -ne "0" ];then
 # usando heirloom-mailx a continuación
 echo "$EMAIL_MSG"|mail -a "$LOGFILE" -s "Malware Encontrado" -r "$EMAIL_FROM" "$EMAIL_TO";
 fi 
done

exit 0

Puedes cambiar las dos variables EMAIL_FROM y EMAIL_TO para reflejar las direcciones de correo electrónico que desees, y cambiar la lista de directorios a escanear en la variable DIRTOSCAN.

Guarda el archivo con ( ctrl+o ), y cambia los permisos de la siguiente manera:

chmod 0755 /root/clamscan_daily.sh

Ahora habilita la ejecución diaria del script creando un enlace simbólico en el directorio /etc/cron.daily/:

ln /root/clamscan_daily.sh /etc/cron.daily/clamscan_daily

Ahora deberías poder recibir la notificación por correo electrónico una vez al día por virus o malware en tus archivos de correo o sitios web. ClamAV también escanea el contenido de los archivos PHP en busca de la presencia de malware u otro contenido potencialmente malicioso.

Probar el script

En esta configuración, ClamAV no realizará ninguna acción sobre los virus encontrados, solo los informará. Así que no te preocupes, nada será eliminado o alterado. Para probar el script, simplemente ejecuta:

/root/clamscan_daily.sh

Después de que el comando haya terminado, habrá dos posibles estados:

  • Clamav ha encontrado algún virus: en este caso recibirás un correo electrónico en tu bandeja de entrada con el registro adjunto.

  • Clamav no ha encontrado nada, o algo salió mal. En este caso, necesitarás verificar lo que dice el registro. Para verificar los registros deberías revisar en /var/log/clamav/

Adjuntaré un pequeño ejemplo de registro para saber qué deberías leer:

Iniciando un escaneo diario del directorio /var/www. La cantidad de datos a escanear es 36G.
Mon Jun 15 13:17:14 CEST 2015

----------- RESUMEN DEL ESCANEO -----------
Virus conocidos: 3841819
Versión del motor: 0.98.4
Directorios escaneados: 47944
Archivos escaneados: 316827
Archivos infectados: 0
Datos escaneados: 17386.77 MB
Datos leídos: 34921.59 MB (ratio 0.50:1)
Tiempo: 1432.747 sec (23 m 52 s)
Mon Jun 15 13:41:06 CEST 2015
------------------------------------------------------
------------------------------------------------------
Iniciando un escaneo diario del directorio /var/vmail. La cantidad de datos a escanear es 7.0G.
Mon Jun 15 13:41:27 CEST 2015
/var/vmail/domain.tld/info/Maildir/.Cestino/cur/1386677288.M361286P15524.domain.tld,W=2675,S=2627:2,S: Heuristics.Phishing.Email.SpoofedDomain FOUND
/var/vmail/domain.tld/info/Maildir/.Cestino/cur/1371451873.M697795P19793.domain.tld,W=5421,S=5353:2,S: Heuristics.Phishing.Email.SpoofedDomain FOUND
/var/vmail/domain.tld/info/Maildir/.Cestino/cur/1390203133.M981287P17350.domain.tld,W=3223,S=3157:2,S: Heuristics.Phishing.Email.SpoofedDomain FOUND
/var/vmail/domain.tld/info/Maildir/.Cestino/cur/1386677288.M361285P15524.domain.tld,W=2270,S=2227:2,S: Heuristics.Phishing.Email.SpoofedDomain FOUND

En este caso, ClamAV ha encontrado algún correo electrónico de phishing en [email protected], así que en este caso, también recibirás el correo electrónico.

¡Eso es todo!

Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.