Sendmail + Amavis + ClamAv - Como

1.- Sendmail ya funcionando.

2.- Obtener ClamAv de:

http://clamav.elektrapro.com/

http://www.konarski.edu.pl/~zolw/

o de

http://freshmeat.net

3.- Obtener Amavis perl 11>> de:

www.amavis.org

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:

www.amavis.org

o usar

www.google.com/linux ;-)

*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

www.fsl.org.mx

Creditos:

Gerardo Reynoso Cobos <greynoso@technitrade.com> Solucion al problema de correo pegado a la cola de amavis.