Les paso el siguiente documento que he preparado:

http://criadoindomable.wordpress.com/2007/04/14/greylist-en-sendmail-con-smf-grey/

Luchar contra el spam se hace a veces una tarea muy complicada. 
Permanentemente estas personas enemigas que envían SPAM y son terribles 
enemigos de Internet, se esfuerzan para cambiar sus métodos recurriendo a 
sistemas ingeniosos y complicados evitar para quienes tratamos de hacer de la 
conectividad y de los servicios como el de e-mail algo usable y fluido.

Existen diferentes formas de protegernos de los SPAM, entre los que se 
encuentran las RBL y los sistemas de análisis bayesiano y heurísticos.

Las mejores soluciones anti-spam se basan en la implementación de varias 
soluciones a fin de evitar la mayoría de los spam que llegan al usuario.

Uno de estos métodos que mejor funciona como filtro anterior a que el mail 
llegue al servidor es el denominado Greylist.

Greylist se basa en el uso de las RFC de los sistemas de mail y simplemente 
rechaza a todos los mails que llegan indicándole que la casilla está ocupada 
(error 451) y dejara pasar el mail luego de un tiempo definido.

Dado que los spammers y los virus no pierden tiempo en reenviar los mails, nos 
ahorramos la gran mayoría de estos sin gastar recursos de ancho de banda, 
procesador y memoria del servidor de correo.

Una solución anti-spam de varios frentes podría ser

    RBL -> Greylist -> Anti-SPAM

Con lo cual podemos llegar a eliminar más del 99% de los SPAM que llegan al 
usuario, siendo el greylist responsable de casi el 80% de este filtrado.

Existen muchas soluciones de greylisting para diversos servidores de correo. 
La que usaremos en este documento es una solución para Sendmail, siendo ese 
el servidor de mail más extendido del mundo.

Para el sistema Sendmail se realiza el filtrado por intermedio de Milter (que 
es una API que permite realizar filtrado de mail)

A partir de un programa denominado smf-grey podremos tener los benefisios de 
greylisting en nuestro sendmail .

Este sistema, según indica su web, es simple, liviano y facil de implementar.

Aquí una lista de las posibilidades que brinda:

    * external editable configuration file;
    * whitelist by an IP address (in CIDR notation);
    * whitelist by a PTR (reverse DNS) record;
    * whitelist by an envelope sender e-Mail address;
    * whitelist by an envelope recipient e-Mail address;
    * whitelists auto reloading;
    * scalable and tunable fast in-memory greylist/autowhitelist engine;
    * autowhitelisted records reloading and regular dumping;
    * SMTP AUTH support;
    * RFC-2821 standard compliance;
    * Greylisting results header builder.

La configuración estaá muy bien explicada en el archivo README, pero la 
comento aquí igualmente:

Lo primero es descargar el programa desde:

http://prdownloads.sourceforge.net/smfs/smf-grey-2.1.0.tar.gz?download

Para poder instalarlo, se requiere las bibliotecas de desarrollo de milter, en 
debian es tan simple como hacer:

    # apt-get install libmilter-dev

Luego de haber instalado está biblioteca, se podra descomprimir el programa 
smf-grey, compilarlo e instalarlo.

Para compilar e instalar hay que hacer como root:

    # make
    # make install

Quedara instalado

Para esto es necesario que el Sendmail instalado haya sido compilado con las 
API’s Milter.

En caso de que no se tengá compilado senmail con Milter, leer:

http://www.sendmail.org/doc/sendmail-current/libmilter/docs/

Lugo de haber compilado e instalado smf-grey, se tendrá que tocar el archivo

/etc/mail/smfs/smf-grey.conf

para configurar las WhiteList y los tiempos que se usaran para rechazar los 
mails o meterlos dentro de la lista auto generada de White List.

El smf-grey quedara instalado en /usr/local/sbin/smf-grey.

smf-grey funciona como demonio y tiene que estar levantado antes que sendmail, 
se podrá utilizar alguno de los ejemplos para el init.d que se encuentran el 
los fuentes del programa.

En Debian se puede  realizar directamente copiando y modificando el 
archivo /etc/init.d/skeleton:

Como root:

    cp  /etc/init.d/skeleton /etc/init.d/smf-grey

Editar /etc/init.d/smf-grey con el editor preferido y cambiar el contenido de 
las cariables de entorno DAEMON, NAME y DESC para que queden de la siguiente 
forma:

    DAEMON=/usr/local/sbin/smf-grey
    NAME=smf-grey
    DESC=”Greylist for Sendmail”

Luego usar la herramienta udpate-rc.d para actualizar los Run Level’s:

    update-rc.d /usr/local/sbin/smf-grey start 19 2 3 4 5 . stop 19 0 1 6 .

Nota: Se usa 19 dado que sendmail arranca en 20 en Debian. De esta forma nos 
aseguramos que inicie antes que sendmail. La opción por defecto de 
update-rc.d es 20.

Ahora hay que cambiar el archivo /etc/mail/sendmail.mc para agregar las 
siguientes lineas:

    define(`confMILTER_MACROS_HELO’, confMILTER_MACROS_HELO`, {verify}’)dnl
    INPUT_MAIL_FILTER(`smf-grey’, `S=unix:/var/run/smfs/smf-grey.sock, 
T=S:30s;R:30s’)dnl

Compilar el .cf de sendmail de la siguiente manera:

    # cd /etc/mail; make

Iniciar el smf-grey

    # /etc/init.d/smf-grey start

Reiniciar el sendmail

    # /etc/init.d/sendmail restart

Con esto será sufiente y se podrá contar con el filtrado.

En el syslog aparecerán los datos del sistema si es que está funcionando ;)

De esta forma se podrá contar con un sistema de greylist para sendmail de una 
forma muy rápida y sacarnos de encima más del 80% del spam sin hacer mucho 
esfuerzo.


Saludos.-
-- 
Sebastián D. Criado - scriado{en}ciudad.com.ar
L.U.G.Ro - http://www.lugro.org.ar
GNU/Linux Registered User # 146768
-------------------------------------------------------------------
"Si el Universo fuera un programa estaría hecho en C, y correría sobre
un sistema UNIX"
                                                        Anónimo.

Attachment: pgpaJaln9s0LV.pgp
Description: PGP signature

Responder a