Instalación y uso de ClamAV


Introducción.
Acerca de ClamAV.

  • ClamAV es un conjunto de herramientas antivirus, libre y de código fuente abierto, que tiene las siguiente características:
  • Distribuido bajo los términos de la Licencia Publica General GNU versión 2.
  • Cumple con las especificaciones de familia de estándares POSIX (Portable Operating System Interface for UNIX o interfaz portable de sistema operativo para Unix).
  • Exploración rápida.
  • Detecta más de 720 mil virus, gusanos, troyanos y otros programas maliciosos.
  • Capacidad para examinar contenido de archivos ZIP, RAR, Tar, Gzip, Bzip2, MS OLE2, MS Cabinet, MS CHM y MS SZDD.
  • Soporte para explorar archivos comprimidos con UPX, FSG y Petite.
  • Avanzada herramienta de actualización con soporte para firmas digitales y consultas basadas sobre DNS.
URL: http://www.clamav.net/


Equipamiento lógico necesario.
Creación del usuario para ClamAV.

De modo predeterminado, en los paquetes RPM basados sobre los disponibles para Fedora™, el usuario para ClamAV se asigna a través de los mandatos fedora-groupadd y fedora-useradd el UID y GID 4 en el sistema. A fin de prevenir un conflicto de UID/GID con otros usuarios y grupos de sistema, se recomienda crear previamente al grupo y usuario correspondientes para ClamAV.
Primero genere el grupo clamav:
groupadd -r clamav
Luego genere el usuario clamav:
useradd -r -s /sbin/nologin  -M -d /var/lib/clamav  -c 'Clamav Antivirus' -g clamav clamav 
Instalación a través de yum.

Si utiliza CentOS o Red Hat™ Enterprise Linux, puede utilizar el el almacén YUM de Alcance Libre para servidores en producción, descargando el archivo http://www.alcancelibre.org/al/server/AL-Server.repo dentro del directorio/etc/yum.repos.d/:
wget -N http://www.alcancelibre.org/al/server/AL-Server.repo -O /etc/yum.repos.d/AL-Server.repo
Examine el contenido del archivo /etc/yum.repos.d/AL-Server.repo:
vi /etc/yum.repos.d/AL-Server.repo

El contenido debe ser el siguiente:
[AL-Server] name=AL Server para Enterprise Linux $releasever mirrorlist=http://www.alcancelibre.org/al/el$releasever/al-server gpgcheck=1 gpgkey=http://www.alcancelibre.org/al/AL-RPM-KEY
Salga del editor de texto y ejecute lo siguiente para instalar lo necesario:
yum -y install clamav clamav-update
Procedimientos.
SELinux y ClamAV.
ALDOS, CentOS 6 y Red Hat™ Enterprise Linux 6 y versiones posteriores de éstos.

Se requiere habilitar dos políticas para permitir un funcionamiento normal. Ejecute lo siguiente:
setsebool -P antivirus_use_jit 1
setsebool -P antivirus_can_scan_system 1
La política antivirus_use_jit permite a ClamAV utilizar el compilador JIT basado sobre LLVM (Low Level Virtual Machine), el cual es utilizado para extender las capacidades de detección de virus al compilar Bytecode.

La política antivirus_can_scan_system permite a ClamAV poder realizar la verificación todo lo que se encuentre en el sistema de archivos.
CentOS 5 y Red Hat™ Enterprise Linux 5.

Para que SELinux permita al mandato clamscan funcionar normalmente para verificar archivos, ejecute lo siguiente:
setsebool -P clamscan_disable_trans 1
Para que SELinux permita al mandato freshclam funcionar normalmente para actualizar la base de datos de firmas digitales, ejecute lo siguiente:
setsebool -P freshclam_disable_trans 1
Configuración de Freshclam.
Freshclam es el programa utilizado para descargar y mantener actualizada la base de datos de virus y otros programas malignos.
El archivo /etc/freshclam.conf de los paquetes distribuidos por Alcance Libre ya incluye las modificaciones necesarias para permitir el funcionamiento del mandato freshclam. Sin embargo, si se utilizan paquetes para Fedora, es necesario editar este archivo y comentar o eliminar la línea 9, que incluye simplemente la palabra inglesa Example y que de otro mod impediría utilizar el mandato freshclam:
## ## Example config file for freshclam ## Please read the freshclam.conf(5) manual before editing this file.
## # Comment or remove the line below.
# Example
El archivo /etc/sysconfig/freshclam de los paquetes distribuidos por Alcance Libre ya incluye las modificaciones necesarias para permitir la actualización automática de la base de datos de ClamAV. Si se utilizan paquetes de Fedora y a fin de mantener actualizada la base de datos de firmas digitales, es necesario editar el archivo /etc/sysconfig/freshclam con el objeto de permitir las actualizaciones automáticas:
### !!!!! REMOVE ME !!!!!! ### REMOVE ME: By default, the freshclam update is disabled to avoid ### REMOVE ME: network access without prior activation # FRESHCLAM_DELAY=disabled-warn # REMOVE ME
Como root puede actualizar inmediatamente la base de datos de firmas ejecutando freshclam sin argumentos:
freshclam
El paquete de clamav-update distribuido por Alcance Libre y el proyecto Fedora™ incluye un guión de actualización automática de la base de datos de ClamAV y que consiste en el archivo /etc/cron.d/clamav-update, el cual se ejecuta cada tres horas a través del servicio crond.


Uso básico de clamscan.
Antes de realizar los ejemplos, cambie a un usuario regular. Ejemplo:
su -l fulano
Se asume un escenario donde existe el directorio ~/Descargas y que éste tiene algunos archivos para experimentar. Genere el directorio ~/Descargas ejecutando lo siguiente:
mkdir -p ~/Descargas/
Descargue el archivo de pruebas test2.zip —totalmente inofensivo— ejecutando lo siguiente:
wget http://www.alcancelibre.org/linux/secrets/test2.zip  -P ~/Descargas/
Para revisar un archivo sospechoso de estar infectado, ejecute clamscan con la ruta del archivo como argumento. Ejemplo:
clamscan ~/Descargas/test2.zip
La salida puede ser similar a la siguiente:
/home/fulano/Descargas/test2.zip: ClamAV-Test-Signature FOUND ----------- SCAN SUMMARY ----------- Known viruses: 3019169 Engine version: 0.97.8 Scanned directories: 0 Scanned files: 1 Infected files: 1 Data scanned: 0.00 MB Data read: 0.00 MB (ratio 0.00:1) Time: 6.438 sec (0 m 6 s)
Para realizar al revisión de un directorio y todo su contenido, ejecute clamscan con la opción -r. Ejemplo:
clamscan -r ~/Descargas
La salida puede ser similar a la siguiente:
/home/fulano/Descargas/Pantallazo-2.png: OK /home/fulano/Descargas/es1.pdf: OK /home/fulano/Descargas/Pantallazo.png: OK /home/fulano/Descargas/Pantallazo-3.png: OK /home/fulano/Descargas/Pantallazo-1.png: OK /home/fulano/Descargas/es_mx.zip: OK /home/fulano/Descargas/aletras.oxt: OK /home/fulano/Descargas/test2.zip: ClamAV-Test-Signature FOUND /home/fulano/Descargas/amonedamx.oxt: OK ----------- SCAN SUMMARY ----------- Known viruses: 3019169 Engine version: 0.97.8 Scanned directories: 1 Scanned files: 9 Infected files: 1 Data scanned: 127.01 MB Data read: 190.76 MB (ratio 0.67:1) Time: 40.026 sec (0 m 40 s)
Genere un directorio que será utilizado como cuarentena:
mkdir -p ~/.clamav/viruses
Para especificar que los archivos infectados sean movidos a un directorio de cuarentena, ejecute clamscan con la opción --move especificando un directorio que servirá como cuarentena.
clamscan --move=/home/fulano/.clamav/viruses    -r ~/Descargas
La salida puede ser similar a la siguiente:
/home/fulano/Descargas/Pantallazo-2.png: OK /home/fulano/Descargas/es1.pdf: OK /home/fulano/Descargas/Pantallazo.png: OK /home/fulano/Descargas/Pantallazo-3.png: OK /home/fulano/Descargas/Pantallazo-1.png: OK /home/fulano/Descargas/es_mx.zip: OK /home/fulano/Descargas/aletras.oxt: OK /home/fulano/Descargas/test2.zip: ClamAV-Test-Signature FOUND /home/fulano/Descargas/test2.zip: moved to '/home/jbarrios/.clamav/viruses/test2.zip' /home/fulano/Descargas/amonedamx.oxt: OK ----------- SCAN SUMMARY ----------- Known viruses: 3019169 Engine version: 0.97.8 Scanned directories: 1 Scanned files: 9 Infected files: 1 Data scanned: 127.01 MB Data read: 190.76 MB (ratio 0.67:1) Time: 40.026 sec (0 m 40 s)
Descargue nuevamente el archivo de pruebas test2.zip ejecutando lo siguiente:
wget http://www.alcancelibre.org/linux/secrets/test2.zip    ~/Descargas
Para especificar que los archivos infectados sean eliminados, ejecute de nuevo clamscan pero la opción --remove con el valoryes y la opción -r con la ruta del directorio a examinar como argumento. Cabe señalar que esta opción debe ser utilizada con precaución. Ejemplo:
clamscan --remove=yes    -r ~/Descargas
La salida puede ser similar a la siguiente:
/home/fulano/Descargas/Pantallazo-2.png: OK /home/fulano/Descargas/es1.pdf: OK /home/fulano/Descargas/Pantallazo.png: OK /home/fulano/Descargas/Pantallazo-3.png: OK /home/fulano/Descargas/Pantallazo-1.png: OK /home/fulano/Descargas/es_mx.zip: OK /home/fulano/Descargas/aletras.oxt: OK /home/fulano/Descargas/test2.zip: ClamAV-Test-Signature FOUND /home/fulano/Descargas/test2.zip: Removed. /home/fulano/Descargas/amonedamx.oxt: OK ----------- SCAN SUMMARY ----------- Known viruses: 3019169 Engine version: 0.97.8 Scanned directories: 1 Scanned files: 9 Infected files: 1 Data scanned: 127.01 MB Data read: 190.76 MB (ratio 0.67:1) Time: 40.026 sec (0 m 40 s)
Descargue nuevamente el archivo de pruebas test2.zip ejecutando lo siguiente:
wget http://www.alcancelibre.org/linux/secrets/test2.zip    ~/Descargas
Si se desea que clamscan haga la revisión de un directorio pero que sólo se muestre la información de los archivos infectados, ejecute clamscan con la opción --infected.
clamscan --infected    -r ~/Descargas
La salida puede ser similar a la siguiente:
/home/fulano/Descargas/test2.zip: ClamAV-Test-Signature FOUND ----------- SCAN SUMMARY ----------- Known viruses: 3019169 Engine version: 0.97.8 Scanned directories: 1 Scanned files: 9 Infected files: 1 Data scanned: 127.01 MB Data read: 190.76 MB (ratio 0.67:1) Time: 40.026 sec (0 m 40 s)
Para que clamscan guarde la información de su actividad en un archivo de bitácora en lugar de mostrar ésta en la salida estándar, utilice la opción --log especificando como argumento la ruta de un archivo para almacenar la bitácora de actividad. Ejemplo:
clamscan --log=/home/usuario/clamscan.log    --infected  --remove=yes -r ~/Descargas


Comentarios:

@