Vamos a tratar aquí un tanto de forma un tanto independiente este asunto. Y es que el antivirus ClamAV (Clam AntiVirus) ahora se instala en Mandriva 2006 por defecto. Se trata de un antivirus GPL que nos permite realizar escaneos desde la línea de comandos (o usando klamav). El actualizador de la base de virus es el demonio denominado freshclam, y en Mandriva se instala con el mismo paquete clamav. Para realizar el refrescamiento de la base de datos del antivirus se conectará con los mirrors oficiales indicados en database.clamav.net. Ojo, cuando vayamos a restringir el tráfico de paquetes deberemos permitir la salida hacia el puerto 80 de las direcciones de los mirrors señaladas, así como la entrada de los paquetes de respuesta. Para ver esas ips hacemos:
[pepe@acer ~]$ dig database.clamav.net
......................................
database.clamav.net. 60 IN CNAME db.local.clamav.net.
db.local.clamav.net. 4938 IN CNAME db.eu.rr.clamav.net.
db.eu.rr.clamav.net. 540 IN A 217.115.136.166
db.eu.rr.clamav.net. 540 IN A 62.210.153.202
db.eu.rr.clamav.net. 540 IN A 81.223.20.171
db.eu.rr.clamav.net. 540 IN A 130.59.10.35
db.eu.rr.clamav.net. 540 IN A 152.66.249.135
db.eu.rr.clamav.net. 540 IN A 193.165.254.12
db.eu.rr.clamav.net. 540 IN A 193.239.17.68
db.eu.rr.clamav.net. 540 IN A 194.77.146.139
db.eu.rr.clamav.net. 540 IN A 195.85.130.84
db.eu.rr.clamav.net. 540 IN A 195.228.75.149
db.eu.rr.clamav.net. 540 IN A 212.162.12.159
db.eu.rr.clamav.net. 540 IN A 213.186.196.225
En el archivo de configuración /etc/freshclam.conf nos encontramos, por ejemplo, que se se actualizará 24 veces al día. Podemos mirar los registros en /var/log/clamav/freshclam.log.
Para analizar los virus que puedan contener los correos que pasen por nuestro servidor de correo sólo necesitaremos instalar el servicio clamd, para que esté a la escucha y listo en cuanto sea llamado. Comprobemos que está ya todo:
# rpm -qa "clam*"
clamav-db-0.88-0.1.20060mdk
clamav-0.88-0.1.20060mdk
clamd-0.88-0.1.20060mdk
# /etc/init.d/clamd status
clamd (pid 2808) está corriendo...
# /etc/init.d/freshclam status
freshclam (pid 2831) está corriendo...
Se me olvidaba ..., para poder analizar los ficheros comprimidos necesita los correspondientes descompresores, claro. En este repositorio encontramos unarj, unace y unrar.
En Mandriva 2006 cuando instalamos amavisd-new, también se instala SpamAssassin:
# urpmi amavisd-new
Para satisfacer las dependencias, se instalarán los siguientes :
amavisd-new-2.3.2-5mdk.noarch
..................................
spamassassin-3.0.4-3.2.20060mdk.i586
¿Está todo bien? (S/n) s
# /etc/init.d/amavisd start
Iniciando amavisd: [OK]
¿Qué es Amavisd-new? Pues es un interfaz entre el servidor postfix y los filtros de contenidos, que en nuestro caso son: ClamAV (antivirus) y SpamAssassin (antispam). Ya tomamos medidas a nivel de smtp para combatir el correo basura, ahora las tomamos a nivel de contenido: spamassassin analizará el contenido del correo para determinar si se trata de spam o no. Téngase en cuenta de que es capaz de aprender, de tal modo que le podemos pasar correos para que los identifique como spam (o al contrario). Veamos brevemente cómo funciona el proceso de filtrado del correo:
[root@web ~]# netstat -puta
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 *:smtp *:* LISTEN 2932/master
tcp 0 0 web.iesdelgadohernand:10025 *:* LISTEN 2783/amavisd (master)
tcp 0 0 web.iesdelgadohernand:10026 *:* LISTEN 2932/master
Ahí tenemos los puertos y procesos a la escucha. El proceso:
Hasta ahora no hemos tocado ningún fichero. Vamos a configurar lo imprescindible. En /etc/clamd.conf descomentamos la línea siguiente, para que al encontrarse un virus se lance un mensaje de alerta:
VirusEvent /usr/local/bin/send_sms 123456789 "VIRUS ALERT: %v"
Ahora señalo las líneas tocadas en /etc/amavisd/amavisd.conf:
#Es claro:
$mydomain = 'iesdelgadohernandez.es'; # a convenient default for other settings
$myhostname = 'web.iesdelgadohernandez.es'; # must be a fully-qualified domain name!
# Los mensajes con virus no se entregan al destinatario, van a parar al siguiente directorio de cuarentena:
$QUARANTINEDIR = '/var/spool/amavis/virusmails';
# Los correos identificados y marcados como spam se dejarán pasar: el destinatario los recibirá así y podrá filtrar y eliminar como quiera.
$final_spam_destiny = D_PASS;
# Avisamos con un envío al remitente de que envía un correo con un adjunto prohibido, un virus o una cabecera malformada:
$warnbadhsender = 1;
$warnvirusrecip = 1;
$warnbadhrecip = 1;
#Alertas enviadas y a quién:
$virus_admin = "virusalert\@$mydomain"; # notifications recip.
$mailfrom_notify_admin = "virusalert\@$mydomain"; # notifications sender
$mailfrom_notify_recip = "virusalert\@$mydomain"; # notifications sender
$mailfrom_notify_spamadmin = "spam.police\@$mydomain"; # notifications sender
$mailfrom_to_quarantine = ''; # null return path; uses original sender if undef
No olvidemos los alias para que las notificaciones de que se están recibiendo virus lleguen al administrador. En /etc/postfix/aliasesañadimos lo que sigue:
virusalert: root
spam.police : root
# newaliases
# /etc/init.d/postfix restart
Terminando postfix: [ OK ]
Iniciando postfix: [ OK ]
# /etc/init.d/clamd restart
Stopping Clam AntiVirus Daemon: [ OK ]
Starting Clam AntiVirus Daemon: [ OK ]
# /etc/init.d/amavisd restart
Shutting down amavisd: [ OK ]
amavisd stopped
Iniciando amavisd: [ OK ]