Instalar ClamAV en FreeBSD

Clamav es un antivirus de software libre, y de código abierto (GPL) compuesto por un conjunto de herramientas antivirus para sistemas UNIX, diseñado especialmente para el análisis de correo electrónico. Proporciona una serie de utilidades que incluye un demonio multi-hilo flexible y escalable, un escáner de línea de comandos y una herramienta avanzada para la actualización de las bases automáticas.

16-Mar-2016

En este módulo veremos cómo instalar ClamAV en nuestro sistema FreeBSD. Es el momento de añadir una capa de protección a nuestro servidor, instalando uno de los antivirus más potentes e importantes para los sistemas UNIX (Clamav), aunque también está disponible para otras plataformas como: Windows, GNU/Linux, Solaris o MAC OS.

Logo ClamAV

Clamav es un antivirus de software libre, y de código abierto (GPL) compuesto por un conjunto de herramientas antivirus para sistemas UNIX, diseñado especialmente para el análisis de correo electrónico. Proporciona una serie de utilidades que incluye un demonio multi-hilo flexible y escalable, un escáner de línea de comandos y una herramienta avanzada para la actualización de las bases automáticas.

Como se indica en su página oficial https://www.clamav.net/  ‘ClamAV® es un motor antivirus de código abierto para la detección de virus, troyanos, otras amenazas de tipo malware’.

El primer objetivo de Clamav fue combatir el correo electrónico malware, por lo que su uso en servidores de correo está muy extendido. Gracias a la colaboración de empresas, universidades y otras compañías dispone de una extensa red de servidores de distribución y actualización de las bases de datos de firmas.

Actualmente se encuentra en su versión 0.99.1 de marzo de 2016, disponible desde la web de descargas de la página oficial https://www.clamav.net/downloads.

Características principales

  • Escaneo rápido.
  • Compatible con la protección en tiempo real (para Linux y FreeBSD).
  • Detecta más de 1 millón de virus, gusanos y troyanos, incluyendo virus de tipo macro de Microsoft Office, el malware para móviles y otras amenazas.
  • Permite a los escritores de firmas de ClamAV  crear y distribuir las rutinas de detección muy complejas y de forma remota mejorar la funcionalidad del escáner.
  • Escaneo de la gran mayoría de archivos comprimidos conocidos: zip, rar, 7zip, arj, tar, gpio, gzip, bz2, etc.
  • Escaneo de archivos ejecutables en formato portable de 32 y 64 bits comprimidos.
  • Soporta la mayoría de formatos correo.
  • Soporta otros formatos especiales de archivo como: html, rtf, pdftnef, ficheros encriptados con CryptFF y  ScrEnc
  • Actualizador de base de datos avanzado con soporte para actualizaciones de secuencias de comandos, firmas digitales y DNS basadas en consultas de base de datos de versión.

Instalar ClamAV

Instalar el paquete clamav

Una vez que hemos iniciado sesión en nuestro servidor y nos hemos convertido en administrador por medio del comando ‘su’, utilizaremos el instalador de paquetes pkg para realizar la instalación del paquete clamav de la última versión disponible en el repositorio de FreeBSD.

# pkg install clamav
Updating FreeBSD repository catalogue...
Fetching meta.txz: 100%    944 B   0.9kB/s    00:01
Fetching packagesite.txz: 100%    5 MiB   2.8MB/s    00:02
Processing entries: 100%
FreeBSD repository update completed. 24687 packages processed.
The following 6 package(s) will be affected (of 0 checked):

New packages to be INSTALLED:
    clamav: 0.99
    unzoo: 4.4_2
    arc: 5.21p
    lha: 1.14i_6
    arj: 3.10.22_4
    json-c: 0.12_2

The process will require 12 MiB more space.
    4 MiB to be downloaded.
    
Proceed with this action? [y/N]: y

Fetching clamav-0.99.txz: 100%    3 MiB   1.7MB/s    00:02
Fetching unzoo-4.4_2.txz: 100%   16 KiB  16.7kB/s    00:01
Fetching arc-5.21p.txz: 100%   49 KiB  50.3kB/s    00:01
Fetching lha-1.14i_6.txz: 100%   34 KiB  34.9kB/s    00:01
Fetching arj-3.10.22_4.txz: 100%  223 KiB 227.9kB/s    00:01
Fetching json-c-0.12_2.txz: 100%   38 KiB  38.7kB/s    00:01
Checking integrity... done (0 conflicting)
[1/6] Installing unzoo-4.4_2...
[1/6] Extracting unzoo-4.4_2: 100%
[2/6] Installing arc-5.21p...
[2/6] Extracting arc-5.21p: 100%
[3/6] Installing lha-1.14i_6...
[3/6] Extracting lha-1.14i_6: 100%
[4/6] Installing arj-3.10.22_4...
[4/6] Extracting arj-3.10.22_4: 100%
[5/6] Installing json-c-0.12_2...
[5/6] Extracting json-c-0.12_2: 100%
[6/6] Installing clamav-0.99...
===> Creating users and/or groups.
Creating group 'clamav' with gid '106'.
Using existing group 'mail'.
Creating user 'clamav' with uid '106'.
Adding user 'clamav' to group 'mail'.
[6/6] Extracting clamav-0.99: 100%

NOTA: Aunque la última versión disponible en la web oficial es la 0.99.1 de marzo de 2016, en el momento de preparar la documentación la versión que nos ofrece el repositorio de FreeBSD es la 0.99 de diciembre de 2015, lo cual no supone ningún problema para nuestras necesidades.

Descargar y actualizar los ficheros de firmas

Después de la instalación de clamAV, ejecutamos el comando freshclam para proceder la instalación de los paquetes de firmas disponibles en la red de repositorios de ClamAV.

Estos paquetes están formados por tres ficheros main.cvd, daily.cvd y bytecode.cvd que almacenan la información sobre las firmas de virus disponibles.

# freshclam
ClamAV update process started at Wed Mar 16 09:49:31 2016
WARNING: Your ClamAV installation is OUTDATED!
WARNING: Local version: 0.99 Recommended version: 0.99.1
DON'T PANIC! Read http://www.clamav.net/support/faq
Downloading main.cvd [100%]
main.cvd updated (version: 55, sigs: 2424225, f-level: 60, builder: neo)
Downloading daily.cvd [100%]
daily.cvd updated (version: 21464, sigs: 1878899, f-level: 63, builder: neo)
Downloading bytecode.cvd [100%]
bytecode.cvd updated (version: 274, sigs: 49, f-level: 63, builder: anvilleg)
Database updated (4303173 signatures) from database.clamav.net (IP: 193.1.193.64)
WARNING: Clamd was NOT notified: Can't connect to clamd through /var/run/clamav/clamd.sock: No such file or directory

Al ejecutarlo se nos advertirá que no tenemos instalada la última versión, pero que no es motivo para alertarse. Se iniciará el proceso de descarga de los ficheros de firmas en nuestro sistema indicándonos la versión y la cantidad de firmas que controlan. Este proceso puede demorarse un tiempo ya que tiene que descargar los ficheros de firmas disponibles (main.cvd, daily.cvd y bytecode.cvd) en los servidores de clamAV.

También se nos mostrará una advertencia al final del proceso, indicándonos de que no se ha podido notificar de los cambios al servicio clamad (demonio del antivirus), lo cual es normal ya que todavía no hemos establecido los procesos automáticos en el arranque del sistema (estos pasos se muestran en el siguiente apartado).

Configurar la autocarga de clamd y freshclam en el arranque del sistema

Tras la instalación y actualización de los archivos de firmas, tendremos que editar el archivo /etc/rc.conf y agregar las líneas que nos permitan cargar el antivirus y el servicio de actualizaciones en cada inicio del sistema.

Añadiremos las líneas, guardaremos los cambios y saldremos del editor.

clamav_freshclam_enable="YES"  # Servicio de actualizaciones automáticas
clamav_clamd_enable="YES"      # Demonio del antivirus

Por último reiniciamos el Sistema para continuar con los siguientes pasos de la instalación.

  # reboot

Comprobar que los servicios están en funcionamiento

Para esta tarea realizaremos una comprobación rápida de los procesos que están en ejecución en nuestro sistema.

# ps -axu -c | sort
USER   PID  %CPU %MEM     VSZ    RSS TT  STAT STARTED    TIME COMMAND
clamav 754   0,0 16,8  419920 347680  -  Is   10:04AM 0:00,00 clamd
clamav 757   0,0  0,7   64712  15528  -  Is   10:04AM 0:00,00 freshclam
mysql  541   0,0  0,1   17088   2548  -  Is   10:04AM 0:00,02 sh
mysql  750   0,0 10,8 1214592 223380  -  I    10:04AM 0:00,37 mysqld
root     0   0,0  0,0       0    160  -  DLs  10:04AM 0:00,02 kernel
root     1   0,0  0,0    9476    852  -  ILs  10:04AM 0:00,03 init
root     2   0,0  0,0       0     32  -  DL   10:04AM 0:00,31 cam
root     3   0,0  0,0       0     16  -  DL   10:04AM 0:00,00 sctp_iterator
…
…
…
…
// La primera línea indica que el servicio de clamAV está en funcionamiento
// La segunda línea indica que el servicio de actualizaciones automáticas de clamAV se está ejecutando en segundo plano

Comandos

freshclam

Es la herramienta avanzada de actualización automática de la base de datos de ClamAv. Se puede trabajar en dos modos:

  • Interactivo: desde la línea de comandos
  • Demonio del sistema: trabajando en segundo plano. (es la que hemos activado durante el arranque)
freshclam [opciones]

Como cualquier otro antivirus ClamAV, necesita tener actualizada la información sobre las firmas para la detección de virus.

Aunque tenemos activado el servicio de actualización de firmas en segundo plano al añadir en nuestro fichero rc.conf la línea: (clamav_freshclam_enable="YES"), si deseamos realizar una comprobación de los ficheros de firmas y su actualización sólo tendremos que ejecutar el comando freshclam en cualquier momento.

# freshclam
ClamAV update process started at Wed Mar 16 10:14:03 2016 WARNING: Your ClamAV installation is OUTDATED! WARNING: Local version: 0.99 Recommended version: 0.99.1 DON'T PANIC! Read http://www.clamav.net/support/faq main.cvd is up to date (version: 55, sigs: 2424225, f-level: 60, builder: neo) daily.cvd is up to date (version: 21464, sigs: 1878899, f-level: 63, builder: neo) bytecode.cvd is up to date (version: 274, sigs: 49, f-level: 63, builder: anvilleg)

clamscan

Es el comando que nos permite escanear ficheros, directorios o el sistema completo.

  clamscan [opciones] [archivos|directorios]

Opciones:

-V Mostrar versión actual
-r Scanear los directorios de forma recursiva
-i Sólo mostrar los ficheros infectados
-a Mostrar los nombres de los archivos escaneados
-l nombre_fichero Guardar el informe del escaneo en un fichero
--remove Eliminar ficheros infectados de forma automática. Usar con precaución
--exclude=EXP Excluir del escaneo los ficheros que coincidan con EXP
--include=EXP Incluir en el escaneo sólo los ficheros que coincidan con EXP
--enable-stats Habilitar los informes estadísticos de malware
--max-filesize=#n Los ficheros que superen este tamaño serán ignorados (se pueden utilizar modificadores K, M, G).
--max-scansize=#n La cantidad máxima de datos para escanear para cada archivo contenedor (se pueden utilizar modificadores K, M, G).

Escanear un fichero

# clamscan fichero

Escanear el contenido de un directorio, mostrando sólo los ficheros infectados

# clamscan -r -i /mnt/websapp

Escanear el sistema completo, enviando un informe del análisis al fichero /tmp/análisis.txt

# clamscan -i -r -l /tmp/analisis.txt /

Mostrar la versión de ClamAV

# clamscan –V
ClamAV 0.99/21464/Fri Mar 11 18:31:38 2016