Sendmail + Amavis + ClamAv - Como
1.- Sendmail ya funcionando.
2.- Obtener ClamAv de:
http://www.konarski.edu.pl/~zolw/
o de
3.- Obtener Amavis perl 11>> de:
4.- Verificar si tenemos el siguiente software y en su caso instalarlo:
o perl (obviously)
o virus scanner software (obviously)
o file
A file command which understands the -b option is required, e.g. the
one from ftp://ftp.astron.com/pub/file/
o arc
o bunzip2 (part of the bzip2 package)
o lha (version 1.14g or later!)
o unarj
o uncompress (standard on Unix and Unix-like systems)
o unrar
o unzoo
Para verificar:
-rpm -q paquete o -dpkg -s paquete o debconf, yast, linuxconf, etc.
Para instalar:
-rpm -i paquete o -dpkg -i paquete o debconf, yast, linuxconf, etc.
Para encontrarlos (si no los tiene tu distro) ver referencias en:
o usar
*No es necesario pero si deseable instalar todos los compresores.
4.- Modulos de Perl para amavis-perl :-P.
IO-stringy
Syslog
MailTools
MIME-Base64
MIME-tools version 5.313 or better (!!)
Convert-UUlib
Convert-TNEF 0.06 or better (!!)
Compress-Zlib
Archive-Tar
Archive-Zip
libnet
Se pueden obtener todos de www.cpan.org
Si se tiene instalado el modulo CPAN la cosa es tan facil como:
perl -MCPAN -e shell
E irle indicando uno a uno:
install Unix::Syslog
install Convert::UUlib
install Convert::TNEF
install Compress::Zlib
install Archive::Tar
install Archive::Zip
install G/GB/GBARR/MailTools-1.15.tar.gz
install MIME::Tools
install Bundle::libnet
Ok Con esto tenemos lo necesario para comenzar.
5.- Instalar el Scanner de virus (el programa encargado de buscar y encontrar virus en archivos).
Usaremos el ClamAv por sus caracteristicas (GPL, C)
Las siguientes instrucciones fueron tomadas y tradcidas del manual incluido con el ClamAv.
Suponemos que tienes acceso root.
Si estas instalando por primera vez, tienes que agregar a tu sistema un nuevo grupo y un nuevo usuario(clamav):
# groupadd clamav
# useradd -g clamav -s /bin/false -c "Clam Antivirus" clamav
Por favor no le pongas contraseña a esta cuenta. Debe ser un usuario normal sin privilegios. No lo agreges a ningun grupo especial.
Despues de esto extrae los archivos, configura y compila:
$ tar zxpvf clamav-x.yz.tar.gz
$ cd clamav-x.yz $ ./configure; make
$ su -c "make install"
¡Eso es todo !
Prueba:
Ok. Hagamos algunas pruebas.
Intenta scanear recursivamente el directorio de las fuentes de clamAv:
$ clamscan -r -l scan.txt clam-x.yz
Deberiamos encontrar un virus en el archivo clam.x.yz/eicar.com.
Puedes checarlo en el archivo creado: scan.txt
Soporte para AmaViS-perl:
Lo primero que necesitas es amavis-perl-11.tar.gz, lo puedes obtener de http://amavis.org, luego:
$ tar zxpvf amavis-perl-11.tar.gz
$ cp clam-x.yz/support/amavis/clamavis.patch amavis-perl-11
$ cd amavis-perl-11
$ patch -p1 < clamavis.patch
$ find . -exec touch 01010000 {} \;
Ahora por favor efectua una instalación normal de Amavis.
Consejo: Amavis usara clamscan con las opciones tipicas, lo cual esta bien para la mayoria de los sistemas. Si quieres agregar otras opciones (ej. descompresion, limites) por favor edita el archivo /usr/sbin/amavis despues de la instalación).
Por favor lee el manual del clam.
El autor de clamAv y del manual del cual traduje lo anterior es:
Tomasz Kojm <zolw@konarski.edu.pl>
6.- Instalación de Amavis-perl-11:
Suponemos que sendmail ya esta instalado y que existe /etc/sendmail.cf
(o /etc/mail/sendmail.cf)
Yo opte por la configuraciónmanual, pero existe también la via de m4.
Los pasos , son los siguientes:
1) Copia el archivo /etc/sendmail.cf a /etc/sendmail.orig.cf
2) Cambiar a mano sendmail.cf:
a) Abre /etc/sendmail.cf en tu editor favorito
b) Cambia el directorio de la cola (queue) a:
QueueDirectory=/var/spool/mqamavis
c) Cambia el archivo de estado (status) a:
StatusFile=/var/log/amavis.st
d) Cambia el conjunto de reglas 0 (rule set 0) a:
R$* $: $>Parse0 $1 initial parsing
R<@> $#local $: <@> special case error msgs
R$* $: $>98 $1 handle local hacks
R$* $#amavis $:$1
#R$* $: $>Parse1 $1 final parsing
Ten cuidado con los tabuladores. Aquí esta el codigo de nuevo, en lugar de [tab] prseiona la tecla tab :-)
R$*[tab][tab]$: $>Parse0 $1[tab][tab]initial parsing
R<@>[tab][tab]$#local $: <@>[tab][tab]special case error msgs
R$*[tab][tab]$: $>98 $1[tab][tab]handle local hacks
R$*[tab][tab]$#amavis $:$1
#R$*[tab][tab]$: $>Parse1 $1[tab][tab]final parsing
Agrega la nueva definicion de mailer:
Mamavis, P=/usr/sbin/amavis, F=mlsACDFMS5:/|@qhP, S=0, R=0
T=DNS/RFC822/X-Unix,
A=amavis $f $u
3)Ejecuta:
./configure --enable-relay --enable-sendmail --with-warnrecip=/home/amavis-perl-11/amavis/notify/recip
make
make check
make install
*Nota: Puedes agregar mas opciones al ./configure. Lee el INSTALL de amavis.
4) Crea el directorio /var/spool/mqamavis con los mismos permisos que
/var/spool/mqueue pero el propietario y el grupo deben se amavis.
*Nota: Yo los deje con root : root y funciona.
5) Reinicia sendmail:
killall -HUP sendmail
o si usas SuSE Linux:
rcsendmail restart
Listo, sendmail ya tiene soporte de amavis y clamscan para detectar correos infectados.
Solo resta que hagas pruebas enviando y recibiendo correos con archivos adjuntos infectados.
Como prueba puedes usar el archivo /home/clamav-0.14/test/eicar.com que NO es un virus, y sirve para probar tu sistema antivirus.
Si todo funciona el postmaster y el usuario que envio el archivo con virus reciben un correo notificandoles VIRUS IN YOUR MAIL (VIRUS EN TU CORREO).
Con lo cual la alarma esta funcionando.
Precuacion con la cola de correo:
Al parecer amavis tiene problemas de correo que se queda atorado en la cola cuando el envio no se puede realizar la primera vez, y ya no lo vuelve a intentar enviar.
Para corregir esto podemos hacer lo siguiente:
/usr/sbin/sendmail -C /etc/sendmail.orig.cf -q
via cron
Otra solucion es:
/usr/sbin/sendmail -q5m -C /etc/mail/sendmail.orig.cf
En este caso la cola de correo se vacia cada 5 minutos. Una buena idea es agregar esta segunda opcion al archivo de inicio de sendmail en /etc/init.d/sendmail
Por ejemplo:
# For amavis processing of stuck mails in original
# queue [greynoso - 070502]
SENDMAIL_AMAVIS="-q30m -C /etc/sendmail.orig.cf"
. /etc/rc.status
rc_reset
case "$1" in
start)
echo -n "Initializing SMTP port. (sendmail)"
startproc /usr/sbin/sendmail $SENDMAIL_ARGS
rc_status -v
#
# For amavis processing of stuck mails in original
# queue [greynoso - 070502]
/usr/sbin/sendmail $SENDMAIL_AMAVIS
....
Etc.
Con esto ya no debe haber problemas de correo atorado :-)
Auto-Actualizacion con FreshClam:
En tu cron agrega:
#Actualizacion dB Clam[Erick Lopez 2k2/07/16]
#45 1 * * * /usr/local/bin/freshclam| /usr/bin/mail -s 'Actualizacion antivirus' virusalert
Con lo cual corre el freshclam a la 1:45 am y te envia un mail con el status de la base de datos de virus.
Auto-Actualizacion con oav-update:
Actualmente existe otra opcion para actualizar la base de datos de virus (la cual recordemos es la de Open Antivirus ), esta opcion es mas flexible que el freshclam, aunque al parecer (no la he probado aun) requiere mas configuacion.
Dicha opcion es el oav-update que puedes conseguir en:
http://packages.debian.org/testing/utils/oav-update.html
Erick Ivaán López Carreón
Creditos:
Gerardo Reynoso Cobos <greynoso@technitrade.com> Solucion al problema de correo pegado a la cola de amavis.