Volver a Anti-virus

ClamAV

Objetivo

Instalar el paquete antivirus ClamAV. Este puede integrarse posteriormente en sistemas para filtrar e-mails o archivos.

Instalación

root@server:~# apt-get install clamav clamav-docs clamav-daemon clamav-freshclam

Para que ClamAV también pueda verificar archivos comprimidos, deben instalarse algunos paquetes para descomprimir archivos:

root@server:~# apt-get install arc arj bzip2 cabextract lzop nomarch p7zip pax tnef unrar-free unzip zoo

Si usted tiene acceso a los repositorios “non-free”, puede instalar otros paquetes adicionales:

root@server:~# apt-get install lha unrar

Configuración

La actualización de la base de datos de firmas de virus es descargada de Internet por daemon clamav-freshclam 24 veces al día. Esta frecuencia puede modificarse en el archivo /etc/clamav/freshclam.conf:

/etc/clamav/freshclam.conf
# [...]
# Check for new database 24 times a day
Checks 24

# [...]

Si usted utiliza un servidor proxy para acceder a Internet, debe afinar la configuración del siguiente archivo /etc/clamav/freshclam.conf:

/etc/clamav/freshclam.conf
# [...]
# 
HTTPProxyServer proxy.home.lan
HTTPProxyPort 3128

Reiniciar el servicio, para que tenga en cuenta las alteraciones de configuración:

server:~# service clamav-freshclam restart

Después de la instalación, debe realizarse la actualización de la base de datos de firmas de virus.

root@server:~# freshclam
ClamAV update process started at Thu May  9 17:39:08 2013
main.cvd is up to date (version: 54, sigs: 1044387, f-level: 60, builder: sven)
daily.cvd is up to date (version: 17172, sigs: 1229899, f-level: 63, builder: jesler)
bytecode.cvd is up to date (version: 214, sigs: 41, f-level: 63, builder: neo)

Las actualización de esta base en el futuro, se realizarán varias veces por día de forma automática.

Verificación

La distribución Debian ofrece un paquete de archivos de prueba “infectados” con la firma de un virus falso. clamAV debe ser capaz de identificar correctamente estos archivos en la prueba.

Instalar el paquete de prueba:

root@server:~# apt-get install clamav-testfiles

Efectuar la prueba:

root@server:~# clamscan /usr/share/clamav-testfiles/
/usr/share/clamav-testfiles/clam-fsg.exe: ClamAV-Test-File FOUND
/usr/share/clamav-testfiles/clam.arj: ClamAV-Test-File FOUND
/usr/share/clamav-testfiles/clam.ole.doc: ClamAV-Test-File FOUND
#[...]
/usr/share/clamav-testfiles/clam-v3.rar: OK
/usr/share/clamav-testfiles/clam-nsis.exe: ClamAV-Test-File FOUND
/usr/share/clamav-testfiles/clam.exe.rtf: ClamAV-Test-File FOUND
/usr/share/clamav-testfiles/clam.ea06.exe: ClamAV-Test-File FOUND
 
----------- SCAN SUMMARY -----------
Known viruses: 1044387
Engine version: 0.97.8
Scanned directories: 1
Scanned files: 46
Infected files: 44
Data scanned: 12.48 MB
Data read: 6.21 MB (ratio 2.01:1)
Time: 4.380 sec (0 m 4 s)

La lista indica los archivos buscados y la firma del falso “virus” encontrado (ClamAV-Test-File FOUND). El sumario indica que la firma de virus fue encontrada en los 46 archivos verificados.

También se puede probar el daemon clamdscan:

root@server:~# clamdscan /usr/share/clamav-testfiles/
/usr/share/clamav-testfiles/clam.pdf: ClamAV-Test-File FOUND
/usr/share/clamav-testfiles/clam.chm: ClamAV-Test-File FOUND
/usr/share/clamav-testfiles/clam.sis: ClamAV-Test-File FOUND
#[...]
/usr/share/clamav-testfiles/clam_IScab_int.exe: ClamAV-Test-File FOUND
/usr/share/clamav-testfiles/clam.bin-le.cpio: ClamAV-Test-File FOUND
/usr/share/clamav-testfiles/clam.exe.rtf: ClamAV-Test-File FOUND
 
----------- SCAN SUMMARY -----------
Infected files: 44
Time: 1.048 sec (0 m 1 s)

Ahora el antivirus está listo para ser usado manualmente y ser integrado en otros sistemas y servicios.

También puede eliminarse el paquete de pruebas:

root@server:~# apt-get remove clamav-testfiles
SugerenciaPara la detección de virus, puede utilizarse los comandos clamscan y clamdscan. Pero, la segunda forma clamdscan es mucho más veloz, porque al ser un daemon, ya está presente en la memoria. Al contrario, cuando se ejecuta el comando clamscan, el sistema primero lee el disco (ver los tiempos de ejecución de un comando y el otro, en los ejemplos de comentados arriba).

Referencias