Antivirus en Linux: cuándo hace falta y cómo usar ClamAV

Linux también puede recibir malware. Eso no significa que todos los ordenadores necesiten la misma protección ni que instalar un antivirus resuelva cualquier problema de seguridad. No es lo mismo utilizar Ubuntu para trabajar, compartir archivos con usuarios de Windows o mantener un servidor que recibe adjuntos y documentos de otras personas.

En un ordenador personal empezaría por una distribución con soporte, las actualizaciones y el origen de los programas. Si además queremos revisar archivos concretos, ClamAV permite analizarlos sin subirlos a una web. Vamos a ver qué aporta, cómo utilizarlo y qué no debemos interpretar a partir del resultado.

Tux con un escudo frente a amenazas informáticas

¿Ubuntu o Linux Mint necesitan antivirus?

No hay una respuesta única para todos los usos. En un escritorio personal, instalar un analizador y olvidarnos del resto no sería mi primera medida. Hay riesgos que un análisis de archivos no resuelve, como dar nuestra contraseña a una web falsa, reutilizar credenciales o ejecutar un script desconocido con sudo.

Un caso diferente es recibir archivos de otras personas y enviarlos después a un ordenador con Windows. Aunque un ejecutable no pueda infectar nuestro Linux de la misma manera, podemos acabar distribuyendo un archivo dañino. Aquí revisar la carpeta antes de compartirla sí tiene una función concreta.

En un servidor de correo o de subida de documentos también puede tener sentido integrar un análisis en el flujo de entrada. No basta con instalar un paquete. Hay que decidir qué archivos se examinan, qué ocurre si el análisis falla y qué hacemos con una detección. El coste de memoria y tiempo importa cuando varias personas suben archivos a la vez.

Separaría, por tanto, la pregunta en dos: si necesitamos analizar los archivos que manejamos y si necesitamos protección del equipo en tiempo real. Son necesidades relacionadas, pero no idénticas.

Qué es ClamAV y cuáles son sus límites

ClamAV es un conjunto de herramientas libre para detectar malware, especialmente utilizado en el análisis de correo y archivos. Tiene un analizador de terminal, un servicio para recibir peticiones de análisis y una utilidad que actualiza las firmas.

No es una suite de seguridad que configure por nosotros el navegador, las cuentas y todos los permisos del sistema. Para una comprobación puntual podemos utilizar clamscan, sin mantener activo el servicio clamd.

ClamAV puede detectar amenazas de distintos sistemas operativos. Su utilidad en Linux no se limita a encontrar malware diseñado para Linux, pero tampoco debemos convertirlo en una garantía de que cualquier documento desconocido es seguro.

La exploración de una carpeta ocurre cuando ejecutamos el comando. No implica que todos los archivos nuevos se estén vigilando desde ese momento. El análisis al acceder a archivos requiere una configuración diferente de ClamAV, con sus servicios, permisos y exclusiones. No lo activaría de golpe sobre todo el sistema para una primera prueba.

Instalar ClamAV en Ubuntu, Debian o Linux Mint

Utilizamos los paquetes de nuestra distribución, en lugar de un instalador descargado de una web de antivirus genérica. Abrimos la terminal:

sudo apt update
sudo apt install clamav clamav-freshclam

clamav aporta el analizador y clamav-freshclam actualiza las firmas. Después comprobamos la versión:

clamscan --version

La salida identifica el motor y, cuando hay una base de firmas cargada, su información. Si acabamos de instalarlo, la primera descarga de firmas puede tardar. No intentamos analizar antes de que exista una base utilizable.

En instalaciones con systemd podemos revisar el actualizador:

systemctl status clamav-freshclam --no-pager
journalctl -u clamav-freshclam -n 30 --no-pager

No necesitamos que el servicio esté instalado con ese mismo nombre en todas las distribuciones. Aquí estamos comprobando el paquete de Debian y Ubuntu. Los mensajes permiten distinguir una descarga en curso de un error de conexión o de configuración.

Si el actualizador está funcionando, dejamos que termine. Si no hay ningún proceso FreshClam activo y queremos hacer una actualización puntual, ejecutamos:

sudo freshclam

Si aparece un error de bloqueo del registro o de la base de datos, comprobamos primero si ya hay otra instancia actualizando. No eliminamos el bloqueo a ciegas ni lanzamos varias descargas seguidas. La documentación de FreshClam explica su funcionamiento y configuración.

Si recibimos un error HTTP 429, hemos alcanzado un límite de descargas y conviene esperar, no reintentarlo en un bucle. Para otros errores revisamos también que el motor siga soportado. El proyecto mantiene una guía de problemas del actualizador.

Analizar un archivo o una carpeta sin borrarlos

Para un archivo concreto indicamos su ruta entre comillas:

clamscan -- "/ruta/al/archivo.zip"

Sustituimos esa ruta por la del archivo que queremos revisar. No hace falta ejecutarlo con sudo si nuestro usuario puede leerlo.

Para una carpeta y sus subcarpetas utilizamos --recursive. En este ejemplo la carpeta se llama Compartido y está dentro de nuestra carpeta personal:

clamscan --recursive --infected --log="$HOME/analisis-clamav.log" -- "$HOME/Compartido"

--infected reduce la salida a las detecciones, además del resumen. --log guarda el informe en el archivo indicado. Como no hemos añadido ninguna acción de eliminación o traslado, el análisis no borra los documentos.

Si nuestra carpeta tiene otro nombre, lo cambiamos en el comando. Es mejor empezar por los archivos que realmente queremos revisar que escanear / entero. Así evitamos recorrer discos montados, carpetas del sistema o enormes colecciones que no tenían relación con el problema.

Al terminar miramos el resumen y los errores. Un resultado sin detecciones no es igual a un análisis donde algunos archivos no se pudieron leer o se omitieron por límites de tamaño. Tampoco un archivo cifrado queda comprobado sólo porque el antivirus haya leído su contenedor.

Podemos consultar el código de salida inmediatamente después del análisis, antes de ejecutar otro comando:

echo $?

Según el manual de clamscan, 0 significa que no encontró virus, 1 que encontró una detección y 2 que se produjo algún error. Es una información adicional al informe, no un certificado de seguridad del archivo.

Qué hacer si aparece una detección

Primero no abrimos ni ejecutamos el archivo. Miramos su ruta, el nombre de la detección y de dónde procede. Un ejecutable inesperado dentro de una descarga no plantea la misma situación que una alerta en un archivo de prueba de un proyecto.

No recomiendo añadir --remove para que borre automáticamente todo lo que encuentre. Los falsos positivos existen y podríamos perder un documento importante. Conviene conservar el informe y decidir después si aislamos el archivo, pedimos otra copia al remitente o investigamos el caso.

Tampoco subiría un contrato, una factura o un archivo de trabajo confidencial a un analizador público sin revisar qué hace con las muestras. Analizar localmente evita enviar el archivo, pero reportar una muestra a un servicio externo es una operación diferente. Incluso la política de envío de muestras de ClamAV indica que conserva los archivos enviados.

Si sospechamos que alguien ha accedido al sistema, un análisis limpio no demuestra que lo haya abandonado. Habrá que revisar cuentas, accesos, servicios expuestos y la forma de recuperar un entorno de confianza. Un antivirus no cambia contraseñas robadas ni corrige por sí solo la aplicación que permitió entrar.

Sophos y ESET: cuidado con las guías antiguas

Hay tutoriales que siguen recomendando Sophos Anti-Virus para Linux como una descarga gratuita actual. Ese producto se retiró en julio de 2023. No lo instalaría siguiendo una receta antigua.

También terminó el soporte de ESET NOD32 Antivirus para Linux Desktop, como recoge la página de fin de vida de ESET. ESET tiene otras soluciones para Linux, pero no debemos confundirlas con el antiguo producto doméstico ni asumir que tienen la misma licencia o los mismos requisitos.

Si una empresa nos exige una solución de protección, revisamos su producto actual, la compatibilidad con nuestra distribución y la política de la organización. No elegimos sólo por una lista de marcas publicada hace años.

Lo que mantendría antes que un escaneo rutinario

Mantendría el sistema y el kernel actualizados, instalaría programas desde fuentes fiables y conservaría copias separadas de los datos. En Linux Mint podemos empezar por esta guía de copias de seguridad.

También revisaría las extensiones del navegador y los programas que tienen acceso a nuestros documentos. Dar permisos amplios a una aplicación no se vuelve inocuo porque utilicemos Linux. Cuando se trate de una aplicación Flatpak, podemos revisar sus permisos con Flatseal.

Un cortafuegos controla conexiones, no analiza los archivos que descargamos. Y una sincronización con la nube puede propagar un borrado en vez de funcionar como una copia independiente. Cada herramienta debe resolver su parte del problema.

Para revisar una descarga o una carpeta compartida, ClamAV es una opción útil y concreta. Para proteger todo el ordenador, necesitamos mirar también cómo instalamos, actualizamos y guardamos los datos. Si te aparece una detección, puedes comentar el nombre y el mensaje, sin adjuntar aquí el archivo sospechoso ni documentos privados.

Sergio Almela

Senior Software Engineer con más de diez años de experiencia. Escribo sobre Linux, software libre, backend, arquitectura, rendimiento, testing e IA aplicada al desarrollo.

Ver todas las entradas de Sergio Almela →