Qué hace este módulo #
Un antivirus compara los ficheros de tu servidor con un catálogo de firmas de malware conocido. Si algo coincide, lo marca como infectado para que no siga circulando — por ejemplo, un adjunto malicioso subido a una carpeta pública o un fichero contaminado que llegó por FTP.
El módulo clamav pone el motor ClamAV a tu alcance con un puñado de comandos claros: consulta su estado, escanea la ruta que quieras (un fichero o un árbol entero), decide qué hacer con lo infectado — solo reportarlo, eliminarlo o moverlo a una cuarentena segura de la que puedes restaurar más tarde — y mantén la base de firmas al día con freshclam. La cuarentena aísla el fichero sin borrarlo, así nunca pierdes nada por error.
Un escaneo detecta con la base de firmas que tengas en ese momento. Si hace días que no actualizas, lanza primero imaxe clamav update para no perderte amenazas recientes. Escanear árboles grandes puede tardar y consumir CPU: acota la ruta a lo que de verdad quieras revisar.
Tareas comunes #
Elige lo que quieres hacer. Cada receta trae el comando ya escrito — solo cambia la ruta por la tuya y pulsa Copiar.
1
Ver si ClamAV está listo
Comprueba el motor, el modo y qué antigüedad tienen tus firmas.
Conéctate por SSH a tu servidor y pide el estado general:
$ sudo imaxe clamav status¿Solo te interesa la base de firmas — versión, fecha y ficheros? Usa db:
$ sudo imaxe clamav db2
Escanear una carpeta
Revisa una ruta y quédate con el informe, sin tocar nada.
Analiza un directorio y todo su contenido con --recursive. Por defecto solo reporta: no borra ni mueve nada.
$ sudo imaxe clamav scan /home --recursive¿Solo un fichero suelto? Pásale la ruta directa, sin --recursive:
$ sudo imaxe clamav scan /srv/uploads/factura.pdf3
Escanear y aislar lo infectado
Mueve automáticamente a cuarentena todo lo que dé positivo.
Escanea una ruta y, con --quarantine, aparta cada fichero infectado a la cuarentena en lugar de dejarlo donde está:
$ sudo imaxe clamav scan /srv/uploads --recursive --quarantineSi prefieres eliminar directamente lo infectado en lugar de aislarlo, usa --remove (es irreversible, úsalo con cabeza):
$ sudo imaxe clamav scan /srv/uploads --recursive --remove4
Revisar y restaurar la cuarentena
Mira qué hay aislado y recupera un falso positivo si hace falta.
Lista lo que hay en cuarentena — cada entrada trae su identificador, origen, firma y fecha:
$ sudo imaxe clamav quarantine list¿Era un falso positivo? Restáuralo a su ruta original con el identificador que sale en la lista:
$ sudo imaxe clamav quarantine restore a1b2c3d4Cuando confirmes que todo lo aislado es basura, vacía la cuarentena de forma definitiva:
$ sudo imaxe clamav quarantine purge --yes5
Actualizar las firmas
Descarga las últimas definiciones para detectar amenazas nuevas.
Lanza freshclam para traer la base de firmas más reciente:
$ sudo imaxe clamav updateComprueba después que la base quedó al día con su versión y fecha:
$ sudo imaxe clamav db--removeEliminar borra el fichero sin vuelta atrás, y ningún antivirus está libre de falsos positivos. En la duda, usa siempre --quarantine: aísla igual de bien y te deja restaurar si te equivocaste.
Sinopsis #
imaxe clamav <subcomando> [<ruta>] [--recursive] [--quarantine|--remove] [--json]Los subcomandos que escanean, mueven o eliminan ficheros requieren privilegios de root (usa sudo), porque leen rutas de otros usuarios y escriben en la cuarentena del sistema. Añade --json a cualquier comando para obtener salida legible por máquina, apta para scripting.
Subcomandos #
| Subcomando | Qué hace | Flags relevantes |
|---|---|---|
| status | Estado de ClamAV: engine, modo (daemon/on-demand), freshclam y base de firmas. | --json |
| scan | Escanea una ruta; puede reportar, eliminar o poner en cuarentena lo infectado. | --recursive, --remove, --quarantine, --json |
| update | Actualiza la base de firmas mediante freshclam. | --json |
| db | Información de la base de firmas: versión, fecha y ficheros. | --json |
| quarantine | Gestiona la cuarentena de ficheros infectados (grupo de subcomandos). | list · restore · purge |
El grupo quarantine reúne tres subcomandos:
| Subcomando | Qué hace | Flags relevantes |
|---|---|---|
| quarantine list | Lista los ficheros en cuarentena (origen, firma, fecha). | --json |
| quarantine restore | Restaura un fichero de la cuarentena a su ruta original o a un destino dado. | <id> [<destino>] |
| quarantine purge | Elimina definitivamente todo lo que haya en cuarentena. | --yes |
Argumentos y flags #
| Flag / argumento | Tipo | Por defecto | Descripción |
|---|---|---|---|
| <ruta> req. | path | — | En scan, fichero o directorio a escanear. |
| <id> req. | string | — | En quarantine restore, identificador del elemento en cuarentena (sale en quarantine list). |
| <destino> | path | ruta original | En quarantine restore, ruta a la que restaurar el fichero. Por defecto, su ubicación original. |
| --recursive | bool | false | En scan, escaneo recursivo de directorios. |
| --quarantine | bool | false | En scan, mueve los ficheros infectados a la cuarentena. |
| --remove | bool | false | En scan, elimina los ficheros infectados. Irreversible; excluyente con --quarantine. |
| --yes | bool | false | En quarantine purge, confirma el borrado sin preguntar. |
| --json | bool | false | Emite el resultado como JSON en stdout. Disponible en todos los subcomandos. |
Ficheros y rutas #
| Ruta | Contenido |
|---|---|
| /etc/imaxe/clamav.yml | Configuración del módulo: directorio de cuarentena y rutas excluidas del escaneo. |
| /var/lib/imaxe/clamav/quarantine | Almacén de la cuarentena: aquí se aíslan los ficheros infectados que se pueden restaurar. |
| /var/lib/clamav/ | Base de firmas que mantiene freshclam (definiciones de malware). |
| /var/log/imaxe/clamav.log | Registro estructurado de cada escaneo, cuarentena y actualización. |
Ejemplo de clamav.yml:
quarantine_dir: /var/lib/imaxe/clamav/quarantine
scan:
exclude:
- /proc
- /sysscan.exclude es una lista de rutas que el escaneo omite; por defecto viene vacía.
Códigos de salida y logs #
Cada ejecución devuelve un código que puedes comprobar con echo $? — útil para encadenar en scripts:
Sigue el log en vivo mientras depuras:
$ sudo tail -f /var/log/imaxe/clamav.logResolución de problemas #
| Síntoma | Causa probable | Solución |
|---|---|---|
| Sale INFECTED (código 3) | El escaneo detectó una o más amenazas. | Revisa el informe; vuelve a lanzar scan con --quarantine para aislarlas. |
| Sale UPDATE (código 4) | freshclam no pudo descargar las firmas (red o mirror caído). | Comprueba la salida a Internet del servidor y reintenta clamav update. |
| El escaneo tarda demasiado | La ruta abarca demasiados ficheros o rutas de sistema. | Acota la ruta y excluye lo innecesario con scan.exclude en clamav.yml. |
| Perdí un fichero legítimo | Falso positivo movido a cuarentena por --quarantine. | Localízalo con quarantine list y recupéralo con quarantine restore <id>. |
| El estado marca firmas viejas | Hace tiempo que no se ejecuta freshclam. | Lanza clamav update y verifica con clamav db. |
¿Te atascaste con el módulo ClamAV?
Escríbenos con la salida de «imaxe <módulo> status --json» y te respondemos rápido.