Tabla de Contenidos
3.6.1 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
Para 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).