Añadir antivirus Clamav para analizar archivos y entornos Docker, usando un Docker Compose

Tiempo de lectura: 3 minutos

ClamAV es un programa de código abierto diseñado para detectar virus, malware y otras amenazas en sistemas operativos Unix y Linux. Su nombre es una abreviatura de «Clam Antivirus». Aunque se originó en el entorno Linux, también es compatible con otros sistemas operativos, incluidos Windows y macOS.

Aquí hay algunos aspectos clave sobre ClamAV:

  1. Motor de Escaneo: ClamAV utiliza un motor de escaneo de virus que se actualiza regularmente con nuevas definiciones de virus. Este motor es capaz de identificar y eliminar diversos tipos de malware, incluidos virus, troyanos, gusanos y otros tipos de software malicioso.
  2. Código Abierto: ClamAV es un proyecto de código abierto, lo que significa que su código fuente está disponible para que cualquiera lo examine, modifique y distribuya. Esto permite a la comunidad de usuarios contribuir al desarrollo y mejora continua del software.
  3. Uso Común en Servidores de Correo: ClamAV es conocido por su uso común en servidores de correo electrónico para escanear adjuntos y mensajes en busca de malware. Puede integrarse con servidores de correo para proporcionar una capa adicional de seguridad.
  4. Detección de Amenazas en Tiempo Real: ClamAV puede operar en tiempo real, escaneando archivos y directorios a medida que se crean o modifican. Esto es particularmente útil para la detección temprana de amenazas.
  5. Compatibilidad con Docker: ClamAV se ha empaquetado en contenedores Docker, como el que has mencionado (tiredofit/clamav), lo que facilita su implementación en entornos de contenedores.
  6. Configuración y Personalización: ClamAV es altamente configurable y puede adaptarse a diferentes necesidades de escaneo. Permite establecer reglas específicas y configurar la frecuencia de actualización de las definiciones de virus.

Es importante tener en cuenta que ClamAV, aunque es una herramienta valiosa para la detección de amenazas, no es la única medida de seguridad necesaria. Se recomienda utilizar varias capas de seguridad, como firewalls, actualizaciones regulares del sistema operativo y otros programas de seguridad, para proporcionar una protección más completa contra las amenazas en línea.

Ahora vamos a aprender cómo podemos implementarlo usando Docker Compose.

Crea un archivo llamado docker-compose.yml en el directorio de tu elección. Puedes hacerlo con tu editor de texto favorito. Aquí hay un ejemplo básico:

version: '3'
services:
  clamav:
    image: tiredofit/clamav
    restart: always
    volumes:
      - /path/to/your/html:/data/html:ro
      # Agrega otros volúmenes según sea necesario

Asegúrate de cambiar /path/to/your/html a la ruta real en tu servidor que deseas escanear.

Paso 2: Iniciar los Servicios

Abre una terminal en el mismo directorio que tu archivo docker-compose.yml y ejecuta el siguiente comando para iniciar los servicios:

docker-compose up -d

Este comando descargará la imagen de ClamAV, creará el contenedor y lo iniciará en segundo plano.

Paso 3: Acceder al Contenedor

Para ejecutar un escaneo manual, primero necesitas acceder al shell del contenedor. Usa el siguiente comando:

docker exec -it nombre_del_contenedor sh

Sustituye nombre_del_contenedor con el nombre real de tu contenedor ClamAV.

Paso 4: Ejecutar un Escaneo Manual

Dentro del contenedor, utiliza el comando clamscan para realizar un escaneo manual. Por ejemplo, para escanear el directorio /data/html, ejecuta:

clamscan --infected --recursive /data/html

Este comando escaneará de manera recursiva todos los archivos en el directorio /data/html y mostrará los resultados en la terminal.

Paso 5: Salir del Contenedor

Una vez que hayas realizado el escaneo manual, puedes salir del shell del contenedor:

exit

Paso 6: Detener los Servicios

Para detener y eliminar los servicios y contenedores, utiliza el siguiente comando:

docker-compose down

Con estos pasos, has configurado ClamAV en un contenedor Docker y has ejecutado un escaneo manual en un directorio específico. Puedes ajustar la configuración según tus necesidades específicas y agregar más directorios para escanear según sea necesario.

Incluso puedes ejecutar el escaneo desde fuera del contenedor de esta forma:

docker exec clamav clamscan --infected --recursive /data/html /data/html2

Aquí además he incluido 2 directorios por si tuviésemos más añadidos.

Si queremos eliminar los archivos infectados podemos usar este comando:

docker exec clamav clamscan --infected --remove --recursive /data/html /data/html2

*No recomiendo utilizar este comando, ya que elimina directamente los archivos.

Deja un comentario