Instalar Linux Malware Detect (LMD) con ClamAV en CentOS 7
Objetivo principal
Instalar LMD y ClamAV para escanear y poner en cuarentena malware en servidores Linux (entornos de hosting compartido).
Variantes de búsqueda relacionadas
- instalar lmd clamav centos 7
- linux malware detect clamscan guía
- maldet con clamav configuración correo
- escanear directorio web con maldet
Prerrequisitos
- CentOS 7 actualizado
- Privilegios de root (o sudo con privilegios completos)
- Conexión a Internet para descargar paquetes y firmas
Paso 1 - Instalar el repositorio EPEL y mailx
Instala el repositorio EPEL (Extra Packages for Enterprise Linux) y el paquete mailx con yum. mailx se usa para que LMD pueda enviar informes por correo.
yum -y install epel-releaseInstala mailx para usar el comando mail en CentOS 7:
yum -y install mailxNota: si tu sistema usa firewalld o políticas de correo saliente, verifica que permita conexiones SMTP salientes o configura un relay.
Paso 2 - Instalar Linux Malware Detect (LMD)
Linux Malware Detect no está en los repositorios de CentOS/EPEL, por lo que se instala desde el origen.
Descarga y extrae LMD:
cd /tmp
wget http://www.rfxn.com/downloads/maldetect-current.tar.gz
tar -xzvf maldetect-current.tar.gzVe al directorio maldetect e instala ejecutando el script install.sh como root:
cd maldetect-1.5
./install.shCrea un enlace simbólico al comando maldet en /bin/ para facilitar su uso:
ln -s /usr/local/maldetect/maldet /bin/maldet
hash -r
ALT: Pantalla mostrando la instalación y contenido del directorio maldetect
Paso 3 - Configurar Linux Malware Detect (LMD)
LMD se instaló en ‘/usr/local/maldetect/‘. Edita el archivo de configuración conf.maldet con tu editor preferido:
cd /usr/local/maldetect/
vim conf.maldetRecomendaciones de configuración clave (líneas referenciales según versión):
- Habilitar alertas por correo (cambia a “1”):
email_alert="1"- Especifica la dirección de correo donde recibirás los informes (reemplaza con tu correo):
email_addr="[email protected]"- Usar ClamAV como motor predeterminado para escaneos (alto rendimiento en grandes conjuntos de archivos):
scan_clamscan="1"- Habilitar cuarentena automática durante el escaneo:
quarantine_hits="1"- Habilitar limpieza basada en inyecciones detectadas (si procede):
quarantine_clean="1"Guarda y cierra el archivo.
Important: revisa otras opciones del archivo como excluded_paths, scan_clamscan_flags y alert_smtp si necesitas usar autenticación SMTP o puertos diferentes.
Paso 4 - Instalar ClamAV
Instala ClamAV (disponible en EPEL) y las librerías de desarrollo si piensas compilar integraciones:
yum -y install clamav clamav-develActualiza las bases de firmas de ClamAV con freshclam:
freshclam
ALT: Salida del comando freshclam actualizando las definiciones de virus de ClamAV
Si freshclam falla, revisa conectividad DNS y que el demonio o timer tenga permisos para escribir en /var/lib/clamav.
Paso 5 - Probar LMD y ClamAV
Haremos un escaneo manual con maldet sobre el directorio web ‘/var/www/html/‘ y usaremos muestras de prueba EICAR para validar la detección.
Descarga las muestras EICAR (ejemplo de prueba, no maliciosas):
cd /var/www/html
wget http://www.eicar.org/download/eicar.com.txt
wget http://www.eicar.org/download/eicar_com.zip
wget http://www.eicar.org/download/eicarcom2.zipEscanea el directorio web con maldet:
maldet -a /var/www/html
ALT: Ejecución del comando maldet mostrando progresos del escaneo
En la salida verás que LMD utiliza ClamAV como motor y, si hay detecciones, que se han movido a cuarentena.
Consulta el informe del escaneo (reemplaza SCANID por el mostrado en tu salida):
maldet --report 161008-0524.9466SCANID = 161008-0524.9466 aparece en la salida de Maldet.

ALT: Informe detallado del escaneo mostrando archivos detectados y acciones de cuarentena
Revisa el correo con el informe enviado por LMD:
tail -f /var/mail/root
ALT: Mensaje de correo entregado al usuario root con el informe del escaneo LMD
Deberías ver el cuerpo del mensaje con el resumen del escaneo y la lista de hits.
Paso 6 - Comandos útiles de LMD
- Escanear extensiones específicas (ej. .php):
maldet -a /var/www/html/*.php- Listar todos los informes:
maldet -e list- Escanear archivos creados o modificados en los últimos X días:
maldet -r /var/www/html/ 55 = últimos 5 días.
- Restaurar archivos desde cuarentena (usa el SCANID correspondiente):
maldet -s SCANID
ALT: Comando maldet para restaurar archivos desde el directorio de cuarentena
- Activar monitorización de un directorio (inotify):
maldet -m /var/www/html/- Consultar el log del monitor:
tail -f /usr/local/maldetect/logs/inotify_log
ALT: Registro en tiempo real de inotify usado por maldet para monitorizar cambios
¿Cuándo falla esta solución? (Limitaciones y contraejemplos)
- Malware ofuscado en tiempo de ejecución o cargado por procesos legítimos puede no detectarse por firmas.
- Webshells muy personalizados sin patrones conocidos pueden eludir detección por firmas.
- Si ClamAV o sus firmas no están actualizadas, la tasa de detección disminuye.
- En sistemas con muchos archivos pequeños, el rendimiento puede afectar IO; prueba en entornos de staging antes de producción.
Enfoques alternativos
- Añadir escaneo heurístico con herramientas como YARA para reglas personalizadas.
- Usar soluciones comerciales que incluyen sandboxing para análisis dinámico (cuando el presupuesto lo permite).
- Integrar escaneos en pipelines CI/CD para detectar artefactos maliciosos antes del despliegue.
Mini-metodología de despliegue (rápida)
- Instalar en un servidor de pruebas y validar detecciones con EICAR.
- Afinar conf.maldet: exclusiones, alertas y motor.
- Planificar ventanas de escaneo y monitorización continua.
- Implementar copias de seguridad antes de activar cuarentena automática.
- Revisar alertas y ajustar reglas/firmas.
Checklist por rol
Administrador de sistemas:
- Verificar actualizaciones automáticas de freshclam.
- Configurar alertas por correo y/o integración con SIEM.
- Supervisar uso de CPU/IO durante escaneos.
Proveedor de hosting:
- Definir políticas de cuarentena y restauración.
- Establecer exclusiones para backups y contenidos estáticos.
- Probar restauraciones periódicas.
Desarrollador web:
- Evitar subir archivos ejecutables desde paneles de usuario.
- Validar entradas y controlar permisos de archivos.
Criterios de aceptación
- Freshclam actualiza firmas sin errores.
- maldet -a /ruta/ realiza un escaneo y genera un SCANID.
- Los archivos detectados se mueven a /usr/local/maldetect/quarantine/ (o ruta configurada).
- Se recibe un correo con el resumen del escaneo en la dirección configurada.
Buenas prácticas y seguridad
- No dependas solo de firmas; combina detección por firmas y heurística.
- Mantén actualizados ClamAV y las definiciones (freshclam en cron o systemd timer).
- Limita permisos de escritura en directorios web y aplica SELinux si está disponible.
- Prueba restauraciones antes de necesitarlas en un incidente.
Flujo de decisión rápido (Mermaid)
flowchart TD
A[¿Se detectó malware?] -->|No| B[Registrar evento y continuar]
A -->|Sí| C[¿Es falso positivo?]
C -->|Sí| D[Marcar y excluir regla]
C -->|No| E[¿Se puede restaurar automáticamente?]
E -->|Sí| F[Mover a cuarentena y restaurar si procede]
E -->|No| G[Notificar equipo de respuesta y aislar]Notas de compatibilidad y migración
- CentOS 7 es la plataforma usada en este tutorial; en CentOS 8/RHEL 8+ consulta módulos y nombres de paquetes (dnf y paths pueden variar).
- Si migras a un sistema con systemd, considera crear un servicio/systemd timer para freshclam y scripts de mantenimiento.
Resumen final
LMD junto con ClamAV ofrece una solución práctica para detectar y poner en cuarentena malware en servidores Linux, especialmente en entornos de hosting compartido. Configura alertas, actualiza firmas y complementa con reglas adicionales (YARA/heurística) para mejorar la cobertura.
Referencia
Materiales similares
Podman en Debian 11: instalación y uso
Apt-pinning en Debian: guía práctica
OptiScaler: inyectar FSR 4 en casi cualquier juego
Dansguardian + Squid NTLM en Debian Etch
Arreglar error de instalación Android en SD