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-release
Instala mailx para usar el comando mail en CentOS 7:
yum -y install mailx
Nota: 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.gz
Ve al directorio maldetect e instala ejecutando el script install.sh como root:
cd maldetect-1.5
./install.sh
Crea 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.maldet
Recomendaciones 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-devel
Actualiza 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.zip
Escanea 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.9466
SCANID = 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/ 5
5 = ú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

Mostrar extensiones de archivo en Windows 10

Quitar programas de Windows obstinados

Corregir unidades de red no reconectadas en Windows

Usar Google Maps con Siri en iPhone

Instalar LMD y ClamAV en CentOS 7
