Para instalar ClamAV en un servidor LinuxActualice el índice de paquetes, instale ClamAV y su demonio, actualice las firmas de virus con FreshClam y, a continuación, inicie y habilite los servicios. Use clamscan para análisis bajo demanda o clamd/clamdscan para un análisis más rápido con el demonio. Programe análisis y actualizaciones regulares para mantener la detección de malware al día.
Configurar un antivirus en un host Linux es una forma práctica de detectar malware. archivos subidos, archivos adjuntos de correo electrónico y contenido web antes de que se propague. En esta guía, aprenderá a instalar ClamAV en distribuciones de servidor Linux (Ubuntu/Debian, RHEL/CentOS/AlmaLinux/Rocky y openSUSE), configurar actualizaciones, ejecutar análisis rápidos, programar tareas y solucionar problemas comunes con un enfoque sencillo y listo para producción.
¿Qué es ClamAV y por qué usarlo en un servidor Linux?

ClamAV es un motor antivirus de código abierto que detecta malware, virus, troyanos y aplicaciones potencialmente no deseadas en múltiples tipos de archivos. En servidores Linux, se usa ampliamente para analizar las cargas de usuarios, las raíces web, las colas de correo y las copias de seguridad. No reemplaza una buena aplicación de parches ni un refuerzo, pero añade una importante capa de defensa, especialmente para hosting compartido, servidores de correo y pasarelas de archivos.
Requisitos previos
- Acceso root o sudo
- Una distribución de Linux compatible (Ubuntu/Debian, RHEL/CentOS/AlmaLinux/Rocky, openSUSE)
- Acceso a la red (para descargar actualizaciones de firmas)
- 1-2 GB RAM Recomendado para clamd; más para conjuntos de archivos grandes.
Cómo instalar ClamAV en Linux (todas las distribuciones principales)
Ubuntu / Debian
sudo apt update
sudo apt install -y clamav clamav-daemon
# Stop FreshClam temporarily to update signatures manually the first time
sudo systemctl stop clamav-freshclam
sudo freshclam
# Start and enable services
sudo systemctl enable --now clamav-freshclam
sudo systemctl enable --now clamav-daemon
# Verify
clamscan --version
systemctl status clamav-daemon clamav-freshclamLos paquetes Debian/Ubuntu suelen guardar las configuraciones en /etc/clamav/. El socket local de clamd suele ser /var/run/clamav/clamd.ctl y FreshClam. manages archivos de firma automáticamente.
RHEL/CentOS/AlmaLinux/Rocky (8/9)
# Enable EPEL for ClamAV packages
sudo dnf install -y epel-release
# Install ClamAV components
sudo dnf install -y clamav clamav-update clamav-scanner-systemd
# Update signatures (first run)
sudo freshclam
# Enable and start the scanning daemon instance
sudo systemctl enable --now clamd@scan
# Optionally enable FreshClam service if provided by your distro
# (some RHEL-based systems rely on freshclam via cron)
# sudo systemctl enable --now clamav-freshclam
# Verify
clamscan --version
systemctl status clamd@scanEn distribuciones basadas en RHEL, la configuración de clamd suele residir en /etc/clamd.d/scan.conf y utiliza una instancia de systemd llamada clamd@scan. FreshClam puede ejecutarse como servicio o mediante cron, según el repositorio.
openSUSE/SUSE Linux Enterprise
sudo zypper refresh
sudo zypper install -y clamav clamav-daemon
# Update signatures and start services
sudo systemctl stop freshclam
sudo freshclam
sudo systemctl enable --now freshclam
sudo systemctl enable --now clamd
# Verify
clamscan --version
systemctl status clamd freshclamActualizar firmas de virus con FreshClam
FreshClam mantiene actualizadas las definiciones de virus de ClamAV. Tras la instalación, asegúrese de que FreshClam esté habilitado y en ejecución, o configure una tarea cron si su distribución no incluye un servicio.
# Run a manual update
sudo freshclam
# Check service (if available)
systemctl status clamav-freshclam
# or
systemctl status freshclamLas rutas de configuración suelen ser /etc/clamav/freshclam.conf (Debian/Ubuntu) o /etc/freshclam.conf (basado en RHEL). Conserve los valores predeterminados de DatabaseMirror a menos que mantenga un espejo local.
Configurar clamd para un escaneo más rápido
El demonio clamd guarda las firmas en memoria y utiliza un socket local para un escaneo rápido. Verifique la ruta del socket y los permisos de archivo para que clamdscan pueda comunicarse con el demonio.
# Debian/Ubuntu: /etc/clamav/clamd.conf (ensure these lines exist/uncommented)
LocalSocket /var/run/clamav/clamd.ctl
FixStaleSocket true
User clamav
LogFile /var/log/clamav/clamd.log
LogTime yes
# RHEL-based: /etc/clamd.d/scan.conf (common defaults)
LocalSocket /run/clamd.scan/clamd.sock
FixStaleSocket yes
User clamscan
LogFile /var/log/clamd.scan
LogTime yes
# After editing, restart clamd service
sudo systemctl restart clamav-daemon # Debian/Ubuntu
# or
sudo systemctl restart clamd@scan # RHEL-basedUse clamdscan para análisis bajo demanda a través del demonio. Es significativamente más rápido que clamscan en directorios grandes.
Ejecute su primer escaneo (a pedido)
Comprobaciones rápidas
# Scan a specific file or directory
clamscan /path/to/file
clamscan -r /var/www
# Use the daemon for speed (recommended)
clamdscan /var/www
# Print only infected results and summary
clamscan -r --infected --bell --log=/var/log/clamav/manual-scan.log /var/www
# Move infected files to quarantine
sudo mkdir -p /var/quarantine
sudo chown -R root:root /var/quarantine
clamscan -r --infected --move=/var/quarantine /homeTenga cuidado con –remove; considere usar –move para poner en cuarentena, revisar los registros y luego eliminar si se confirma que es malicioso.
Programar escaneos automáticos
Automatizar las comprobaciones de malware garantiza la consistencia. Cron es la opción más sencilla, pero también puedes usar temporizadores de systemd.
Ejemplo de cron (escaneo diario a las 02:30)
sudo crontab -e
# Add:
30 2 * * * /usr/bin/clamdscan --fdpass --infected --move=/var/quarantine /var/www >> /var/log/clamav/daily-webroot.log 2>&1Use –fdpass cuando clamd se ejecute con un usuario diferente para que los descriptores de archivo se transmitan correctamente. Si clamdscan no está disponible, cambie a clamscan con opciones similares.
Exclusiones recomendadas y ajuste del rendimiento
- Excluir directorios temporales y de caché para reducir el ruido y la E/S:
clamscan -r --exclude-dir=/proc --exclude-dir=/sys --exclude-dir=/dev --exclude-dir=/var/cache / - Para clamd, use ExcludePath en la configuración para exclusiones permanentes.
- Establezca límites de tamaño razonables para archivos y archivos grandes si es necesario (en clamd.conf):
MaxFileSize 200M
MaxScanSize 400M
MaxRecursion 16 - Prefiera clamdscan sobre clamscan para árboles grandes.
- Coloque firmas y sockets en un almacenamiento local rápido; evite montajes de red para el socket.
Escaneo en tiempo real (en acceso) con clamonacc
ClamAV admite el escaneo en acceso mediante clamonacc (fanotify). Supervisa los directorios y envía los archivos a clamd al acceder a ellos. Esto genera sobrecarga y debería centrarse en rutas de alto riesgo, como las carpetas de carga, en lugar de en todo el sistema de archivos.
# Example (adjust paths for your distro)
sudo mkdir -p /var/quarantine
sudo clamonacc \
--log=/var/log/clamav/clamonacc.log \
--move=/var/quarantine \
--exclude-dir=/proc --exclude-dir=/sys --exclude-dir=/dev \
--fdpass \
--config-file=/etc/clamav/clamd.conf \
--path=/var/www/html/wp-content/uploadsEjecute clamd primero y Considere crear un espacio dedicado Servicio systemd o utilizando las unidades proporcionadas si su distribución las incluye. Limite el acceso a directorios específicos para evitar sobrecargas. CPU y el uso de E/S.
Registro, alertas e informes
- Registros: clamd registra en /var/log/clamav/ o /var/log/clamd.scan (dependiendo de la distribución). FreshClam registra las actualizaciones en freshclam.log.
- Habilite LogTime sí y, opcionalmente, LogClean no para reducir la verbosidad.
- Integre alertas con su monitoreo: siga registros y notifique mediante mailx, webhooks de Slack o su SIEM.
# Show infected detections from the latest log
grep -i "FOUND" /var/log/clamav/*.logCasos de uso: servidores web y de correo
- Servidores web: Escanee /var/www y, específicamente, los directorios de carga de usuarios. Automatice los escaneos después de las implementaciones y a diario.
- Servidores de correo: combine ClamAV con Amavis/SpamAssassin, Postfix o Exim para escanear las colas de correo entrante/saliente.
- Puertas de enlace de archivos: escanee los recursos compartidos NFS/Samba antes de que los archivos lleguen a los puntos finales del usuario.
Resolución de problemas comunes
- Errores de permisos o "base de datos bloqueada" de FreshClam: detenga el servicio, actualícelo manualmente y luego reinicie.
sudo systemctl stop clamav-freshclam || true
sudo freshclam
sudo systemctl start clamav-freshclam || true - “No se puede conectar a clamd”: Verifique la ruta LocalSocket en clamd.conf y los permisos; confirme que clamd se esté ejecutando.
- Alto CPU o escaneos lentos: agregue exclusiones, aumente MaxFileSize con criterio y utilice clamdscan.
- Falsos positivos: poner en cuarentena primero, revisar los registros, incluir en la lista blanca hashes o rutas cuando corresponda.
- Fallos en la actualización de firmas: Verificar DNS y salida HTTP; asegúrese de que los espejos no estén bloqueados por un cortafuegos o un proxy.
Desinstalar o deshabilitar ClamAV
Si necesita eliminar ClamAV, primero detenga los servicios y luego elimine los paquetes. Haga esto solo si cuenta con protecciones alternativas.
# Ubuntu/Debian
sudo systemctl disable --now clamav-daemon clamav-freshclam
sudo apt remove --purge -y clamav clamav-daemon
# RHEL-based
sudo systemctl disable --now clamd@scan
sudo dnf remove -y clamav*Mejores prácticas de seguridad con ClamAV
- Mantenga el sistema operativo y ClamAV actualizados; las firmas envejecen rápidamente.
- Utilice el mínimo privilegio: ejecute clamd como usuario clamav/clamscan.
- Escanea solo lo importante (subidas, colas de correo, inicios de usuario). No desperdicies ciclos en /proc, /sys ni directorios del sistema inmutables.
- Poner en cuarentena antes de la eliminación y revisar las detecciones.
- Registre y alerte sobre infecciones; integre con su pila de monitoreo.
- Combine con otras capas: WAF, configuraciones seguras, principio de mínimo privilegio y aplicación de parches oportunos.
Por qué esto es importante para el hosting: una nota de YouStable
Si manage sitios web de clientes, alojamiento compartido o email de negociosClamAV reduce significativamente el riesgo de distribuir malware desde su servidor. En YouStable, nuestra managed VPS y servidores dedicados Se puede enviar con ClamAV preconfigurado, actualizaciones automatizadas y análisis programados, para que su pila se mantenga segura mientras usted se concentra en el crecimiento.
Preguntas frecuentes: Instalar ClamAV en un servidor Linux
¿Es ClamAV un antivirus en tiempo real en Linux?
Sí, con Clamonacc (fanotify) se pueden monitorear directorios en tiempo real. Es recomendable restringir la monitorización a rutas de alto riesgo, como las carpetas de carga. El análisis completo del sistema en tiempo real puede ser exhaustivo; mejor programe análisis completos periódicos.
¿Cuál es la diferencia entre clamscan y clamdscan?
Clamscan es un escáner independiente que carga firmas en cada ejecución (más lento). Clamdscan utiliza el demonio clamd, que guarda las firmas en memoria (más rápido). Para servidores y tareas programadas, se recomienda Clamdscan.
¿Cómo actualizo las firmas de ClamAV automáticamente?
Habilite el servicio FreshClam (clamav-freshclam o freshclam) para que revise los espejos regularmente. Si su distribución no incluye un servicio, agregue una tarea cron que ejecute freshclam cada hora.
¿Puede ClamAV eliminar o poner en cuarentena amenazas?
Sí. Use –move=/path/to/quarantine con clamscan o configure clamdscan con un directorio de cuarentena. Revise los archivos en cuarentena antes de eliminarlos para evitar la pérdida de datos por falsos positivos.
¿Qué directorios debo escanear en un servidor web?
Céntrate en /var/www (o en las raíces de tu documentación), los directorios de usuario y las ubicaciones de carga/temporales utilizadas por las aplicaciones (por ejemplo, WordPress wp-content/uploads). Excluye rutas del sistema como /proc, /sys y /dev.
¿ClamAV detecta malware de Windows en Linux?
Sí. ClamAV detecta una amplia gama de malware de Windows y multiplataforma. Esto es fundamental para que los servidores de correo y archivos eviten que los archivos infectados se transmitan a los endpoints de Windows.
¿Con qué frecuencia debo programar exploraciones?
Para la mayoría de los servidores, basta con realizar análisis diarios o semanales de los directorios clave, además de análisis casi en tiempo real de las ubicaciones de carga, si es posible. Mantenga FreshClam actualizado cada hora o al menos varias veces al día.
Conclusión
Instalar ClamAV en un servidor Linux es sencillo y añade una capa de fiabilidad a su estrategia de defensa en profundidad. Mantenga las firmas actualizadas, escanee las rutas correctas y registre los resultados. Si prefiere una configuración sin intervención, considere... manageservidor d desde YouStable con ClamAV y las mejores prácticas de seguridad preajustadas para sus cargas de trabajo.