ClamAV antivirus en Linux

En las últimas semanas, y debido a la sensación de inseguridad que reina en el ambiente, me he vuelto a encontrar con el tema recurrente de Antivirus para Linux.

Por contextualizar, comentar que estas conversaciones surgen en entornos no técnicos, con familiares y  amigos. En este contexto vuelven a surgir las preguntas de siempre:

¿Existen virus para Linux?

Si. No hay que extenderse en la respuesta. Se debe tener claro que existen virus para Linux.

Por si alguien se quiere entretener está el ejemplo de Symbiote.

¿Hay antivirus para Linux?

Si. Hay soluciones muy buenas para satisfacer esta necesidad. 

En este artículo no voy a hacer publicidad a ninguna solución comercial. Me voy  a centrar en redactar un paso a paso de instalación y configuración de ClamAV.

 

¿Qué es ClamAV?

ClamAV

ClamAV es un kit de herramientas antivirus de código abierto (GPLv2), diseñado especialmente para el escaneo de correo electrónico en puertas de enlace de correo. Proporciona una serie de utilidades que incluyen un demonio multiproceso flexible y escalable, un escáner de línea de comandos y una herramienta avanzada para actualizaciones automáticas de la base de datos de virus. El núcleo del paquete es un motor antivirus disponible en forma de biblioteca compartida. 
 
Una vez entendido el párrafo anterior podemos hacernos a la idea de que ClamAV no es un antivirus tradicional. Sin embargo es una opción muy buena para montar en tu sistema Linux de escritorio, por ejemplo Debian y sus variantes (Ubuntu).

¿Cómo se instala ClamAV?

El proceso de instalación de ClamAV en Linux no es complicado pero requiere de algo de experiencia con la instalación de software en Linux. De las diversas alternativas voy a explicar como instalarlo usando el gestor de paquetes apt. Para ello ejecutamos en un terminal:

~$ sudo apt update 
~$ sudo apt install -y clamav clamav-daemon
 
Al finalizar tendremos instalado clamav-daemon (clamd) y clamav-freshclam:
  • clamav-daemon: es el servicio responsable de realizar los análisis en busca de virus. No se inicia tras la instalación. Para iniciarlo ejecutar:
~$ sudo systemctl start clamav-daemon
  • clamav-freshclam: es el servicio responsable de mantener actualizada la base de datos de firmas de virus. Este queda iniciado tras la instalación. Se puede comprobar ejecutando:
~$ systemctl status clamav-freshclam

¿Necesito configurar algo más?

Por ahora se ha instalado el motor de antivirus y el servicio de actualización de la base de datos de firmas de virus. Para personalizar los parámetros de configuración de ClamAV necesitamos editar los ficheros de configuración, normalmente ubicados en /etc/clamav.
  • clamd.conf: Configuración el motor antivirus
  • freshclam.conf: Configuración del servicio de actualización de la base de datos de firmas de virus.
 
Recuerda que si cambias la configuración deberás reiniciar los servicios, por ejemplo:
 
~$ systemctl restart clamav-freshclam
~$ systemctl restart clamav-daemon

¿Cómo puedo realizar un escaneo bajo demanda?

Si necesitas escanear un directorio concreto, por ejemplo una memoria USB, puedes usar la herramienta clamscan. Podemos ejecutar $ clamscan -h para ver la ayuda.
 
Si la línea de comandos no es lo tuyo, instala ClamTK, una interfaz gráfica que te ayuda a manejar ClamAV. Se puede instalar desde el gestor de software o ejecutando el comando:
 
 ~$ sudo apt install clamtk
 
 
Una vez instalado queda disponible como el resto de aplicaciones, y al lanzarlo obtendremos una simple interfaz gráfica para interactuar con ClamAV.
 
clamTk

 

Protección en tiempo real

On-Access scanning es como ClamAV denomina la funcionalidad de escaneo en tiemo real.

 
Configuramos clamonacc editando el fichero clamd.conf. Añdiendo las siguientes propiedades:

OnAccessIncludePath /home/usuario/Descargas
OnAccessIncludePath /home/usuario/Documentos
OnAccessIncludePath /home/usuario/Escritorio
OnAccessExcludePath /home/usuario/mi-secure-dir
OnAccessPrevention yes
OnAccessExcludeUname clamv
OnAccessExcludeUname root
 

OJO: Cuidado con los directorios que se incluyen para escanear en tiempo real, puede afectar gravemente al rendimiento del equipo.
 
Podemos lanzar el escaneo en tiempo real ejecutando: 
 
~$ sudo clamonacc --fdpass

Esto lanza el proceso y lo deja ejecutando en segundo plano. Pero al apagar el equipo se dejará de ejecutar. 

Habilitar un servicio para el escaneo en tiempo real

Para tener activo siempre el escaneo en tiempo real podemos habilitar un servicio. Pare ello crearemos un fichero llamado clamonacc.service en el directorio  /etc/systemd/system/ (recuerda que necesitarás hacer sudo para crear y editar).
 
 El contenido del fichero puede quedar tal que así:
   [Unit]

   Description=ClamAV On Access Scanner

   Requires=clamav-daemon.service

   After=clamav-daemon.service syslog.target network.target


   [Service]

   Type=simple

   User=root

   ExecStartPre=/bin/bash -c "while [ ! -S /var/run/clamav/clamd.ctl ]; do sleep 1; done"

   ExecStart=clamonacc --fdpass --move=/home/usuario/cuarentena/


   [Install]

   WantedBy=multi-user.target
   
  
Una vez creado se habilita el servicio e iniciarlo:
 
~$ sudo systemctl enable clamonacc 
~$ sudo systemctl start clamonacc
 

Puedes comprobar la actividad de ClamAV para comprobar que todo ha ido bien.

¿Dónde puedo comprobar la actividad de ClamAV?

toda la actividad se queda registrada en los ficheros de logs, en el directorio /var/log/clamav.

Comentarios