ClamAV es un buen antivirus libre. Y es muy bueno disponer de la última versión y de la base de datos de firmas actualizada.
En este post vamos a ver el proceso de compilar ClamAV 0.103.1 en una Debian 10. Esto sirve prácticamente para todas las distros con la diferencia de que suplir las dependencias será diferente.
En su momento hice unos scripts para bajar, compilar y configurar clamav en diferentes distribuciones. Es algo que estoy pensando en automatizar en un futuro generando paquetes RPM, DEB, …. porque disponer de clamav en tus sistemas es muy interesante.
Dicen que en GNU+Linux apenas existen virus
El tema es que clamAV no es el típico antivirus al uso. No es para montártelo en tu PC de escritorio aunque por poder puedes hacerlo (yo lo hago). Es un antivirus más orientado a montarlo en servidores.
Y si, en GNU+Linux existen programas y por tanto posibles virus. Decir que no existen es absurdo porque es falso.
¿Existen menos que en otros sistemas operativos? Si. Muchísimos menos que por ejemplo en Windows de Microsoft.
No obstante al final es buena cosa disponer de una herramienta para comprobar si un archivo es un virus o no. Clamav nos servirá por tanto para disponer de esa herramienta y poder adaptarla a nuestros servicios (archivos que se suben por ejemplo a un servidor, email, los archivos de un wordpress que suben los usuarios, …).
Instalar las dependencias
Se pueden suplir/instalar (como root) así:
# apt install -y wget gcc g++ make libxml2-dev gawk libcurl4-openssl-dev libltdl7 libmspack0 libtfm1 xml2 openssl libssl-dev zlib1g-dev libpng-dev libjson-c-dev libbz2-dev libpcre2-dev libncurses-dev libmilter1.0.1 libmilter-dev build-essential check libclamav-dev
Descargar y compilar
Esto podemos realizarlo así:
$ wget https://www.clamav.net/downloads/production/clamav-0.103.1.tar.gz
$ tar xfvz clamav-0.103.1.tar.gz
$ cd clamav-0.103.1/
$ ./configure --sysconfdir=/etc
$ make -j$(nproc)
# make install
# mv /etc/freshclam.conf.sample /etc/freshclam.conf
# mv /etc/clamd.conf.sample /etc/clamd.conf
# sed -i -e "s/^Example/#Example/" /etc/freshclam.conf
# sed -i -e "s/^Example/#Example/" /etc/clamd.conf
# ldconfig
Luego podemos ejecutar ya freshclam por primera vez. Freshclam nos servirá para descargar las bases de datos de firmas, es decir, para mantener actualizado el antivirus.
# freshclam
Cuando lo hacemos por primera vez se descargará las bases de datos (daily, main y bytecode).
Luego ya cada día pues se han de ir actualizando utilizando freshclam. Aquí se puede ver como por ejemplo otro día al realizar la actualización se descarga solamente las del día:
Y normalmente si lo lanzamos y andamos al día veremos algo así como lo siguiente:
Virus de prueba – El eicar
Para realizar una prueba podemos usar el virus de prueba eicar. En realidad es un archivo que contiene en su interior lo siguiente:
X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
$ wget "http://www.eicar.org/download/eicar.com.txt" -O /tmp/eicar.bin
$ clamscan /tmp/eicar.bin
Con clamscan se pueden realizar comprobaciones de directorios o archivos específicos. Lo malo es que clamscan a diferencia de clamdscan tendrá que levantar las firmas de bichos cada vez que lo lanzas. Esto por tanto es buena idea para algo concreto pero mala si estás escaneando en paralelo diferentes archivos que la gente sube a algún sitio. Eso te puede tumbar la máquina porque cargará en memoria las firmas por cada proceso de escaneo.
Directorios importantes
- Bases de datos de las firmas del antivirus: /usr/local/share/clamav/
- Configuración freshclam: /etc/freshclam.conf
Sobre la base de datos
Aquí dejé algo de información de como descomprimir la base de datos de clamav: 56k.es/fanta/descomprimir-la-base-de-datos-del-antivirus-clamav-aplicando-magias/
Saludos cordiales.