[LUG.ro] Greylist en Sendmail con smf-grey
Sebastián D. Criado
lugro@lugro.org.ar
Sat, 14 Apr 2007 16:03:43 -0300
--nextPart4980818.HNqt6A93X5
Content-Type: text/plain;
charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline
Les paso el siguiente documento que he preparado:
http://criadoindomable.wordpress.com/2007/04/14/greylist-en-sendmail-con-sm=
f-grey/
Luchar contra el spam se hace a veces una tarea muy complicada.=20
Permanentemente estas personas enemigas que env=C3=ADan SPAM y son terrible=
s=20
enemigos de Internet, se esfuerzan para cambiar sus m=C3=A9todos recurriend=
o a=20
sistemas ingeniosos y complicados evitar para quienes tratamos de hacer de =
la=20
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=20
encuentran las RBL y los sistemas de an=C3=A1lisis bayesiano y heur=C3=ADst=
icos.
Las mejores soluciones anti-spam se basan en la implementaci=C3=B3n de vari=
as=20
soluciones a fin de evitar la mayor=C3=ADa de los spam que llegan al usuari=
o.
Uno de estos m=C3=A9todos que mejor funciona como filtro anterior a que el =
mail=20
llegue al servidor es el denominado Greylist.
Greylist se basa en el uso de las RFC de los sistemas de mail y simplemente=
=20
rechaza a todos los mails que llegan indic=C3=A1ndole que la casilla est=C3=
=A1 ocupada=20
(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=20
ahorramos la gran mayor=C3=ADa de estos sin gastar recursos de ancho de ban=
da,=20
procesador y memoria del servidor de correo.
Una soluci=C3=B3n anti-spam de varios frentes podr=C3=ADa ser
RBL -> Greylist -> Anti-SPAM
Con lo cual podemos llegar a eliminar m=C3=A1s del 99% de los SPAM que lleg=
an al=20
usuario, siendo el greylist responsable de casi el 80% de este filtrado.
Existen muchas soluciones de greylisting para diversos servidores de correo=
=2E=20
La que usaremos en este documento es una soluci=C3=B3n para Sendmail, siend=
o ese=20
el servidor de mail m=C3=A1s extendido del mundo.
Para el sistema Sendmail se realiza el filtrado por intermedio de Milter (q=
ue=20
es una API que permite realizar filtrado de mail)
A partir de un programa denominado smf-grey podremos tener los benefisios d=
e=20
greylisting en nuestro sendmail .
Este sistema, seg=C3=BAn indica su web, es simple, liviano y facil de imple=
mentar.
Aqu=C3=AD 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=C3=B3n esta=C3=A1 muy bien explicada en el archivo README, p=
ero la=20
comento aqu=C3=AD 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=20
debian es tan simple como hacer:
# apt-get install libmilter-dev
Luego de haber instalado est=C3=A1 biblioteca, se podra descomprimir el pro=
grama=20
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 la=
s=20
API=E2=80=99s Milter.
En caso de que no se teng=C3=A1 compilado senmail con Milter, leer:
http://www.sendmail.org/doc/sendmail-current/libmilter/docs/
Lugo de haber compilado e instalado smf-grey, se tendr=C3=A1 que tocar el a=
rchivo
/etc/mail/smfs/smf-grey.conf
para configurar las WhiteList y los tiempos que se usaran para rechazar los=
=20
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 sendma=
il,=20
se podr=C3=A1 utilizar alguno de los ejemplos para el init.d que se encuent=
ran el=20
los fuentes del programa.
En Debian se puede realizar directamente copiando y modificando el=20
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=20
las cariables de entorno DAEMON, NAME y DESC para que queden de la siguient=
e=20
forma:
DAEMON=3D/usr/local/sbin/smf-grey
NAME=3Dsmf-grey
DESC=3D=E2=80=9DGreylist for Sendmail=E2=80=9D
Luego usar la herramienta udpate-rc.d para actualizar los Run Level=E2=80=
=99s:
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 no=
s=20
aseguramos que inicie antes que sendmail. La opci=C3=B3n por defecto de=20
update-rc.d es 20.
Ahora hay que cambiar el archivo /etc/mail/sendmail.mc para agregar las=20
siguientes lineas:
define(`confMILTER_MACROS_HELO=E2=80=99, confMILTER_MACROS_HELO`, {veri=
fy}=E2=80=99)dnl
INPUT_MAIL_FILTER(`smf-grey=E2=80=99, `S=3Dunix:/var/run/smfs/smf-grey.=
sock,=20
T=3DS:30s;R:30s=E2=80=99)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=C3=A1 sufiente y se podr=C3=A1 contar con el filtrado.
En el syslog aparecer=C3=A1n los datos del sistema si es que est=C3=A1 func=
ionando ;)
De esta forma se podr=C3=A1 contar con un sistema de greylist para sendmail=
de una=20
forma muy r=C3=A1pida y sacarnos de encima m=C3=A1s del 80% del spam sin ha=
cer mucho=20
esfuerzo.
Saludos.-
=2D-=20
Sebasti=C3=A1n D. Criado - scriado{en}ciudad.com.ar
L.U.G.Ro - http://www.lugro.org.ar
GNU/Linux Registered User # 146768
=2D------------------------------------------------------------------
"Si el Universo fuera un programa estar=C3=ADa hecho en C, y correr=C3=ADa =
sobre
un sistema UNIX"
An=C3=B3nimo.
--nextPart4980818.HNqt6A93X5
Content-Type: application/pgp-signature
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
iD8DBQBGISWa8hmHQ8ZCg0IRAmwNAJsFLbDxfIFF4pqQlpKIbKEtNQ6GTACggKYr
gV8LC+sXtmpZkbJEVfgmBUg=
=GReN
-----END PGP SIGNATURE-----
--nextPart4980818.HNqt6A93X5--