Configurando Greylite para bloquear SPAM en Qmail

Greylite es un filtro de spam de código abierto que funciona del lado del servidor de excepcional eficacia y sin falsos positivos. Se implementa un innovador sistema de filtrado que es fruto de dos años de investigación sobre el comportamiento de los spammers.

Greylite es una solución sostenible: no aumenta la carga en su sistema (de hecho, la mejora), y el rendimiento no se degrada con el tiempo.
Greylite funciona como un envoltorio transparente SMTP. Esto lo hace compatible con cualquier servidor SMTP y requiere un proceso de configuración trivial con un mínimo de intrusión en el sistema existente. Cuando en el servidor se ejecuta qmail, puede ser integrado directamente en su cadena de ucspi.

El primer paso que debemos realizar es bajar la última versión de greylite desde la siguiente página:
http://www.greylite.net/download.html

# cd /usr/local/src/
# wget -c http://www.greylite.net/downloads/releases/greylite/greylite-3.0pre2.tar.bz2
# rm *.tar.bz2

Extraemos el contenido del archivo que descargamos:

# tar xjvf greylite-VERSION.tar.bz2
# cd greylite-VERSION

Y compilamos, con soporte de Mysql y con soporte de geoip

# make all install WITH_MYSQL=yes WITH_GEOIP=yes

Una vez que lo tengamos compilado vamos a configurar la instalación con Mysql. Y eso lo logramos editando el archivo que se encuentra en: /usr/local/src/greylite-3.0pre2/scripts/

# vim /usr/local/src/greylite-3.0pre2/scripts/greylite-mysql.sql

Modificamos la contraseña del usuario que se creará con dicho script, que se encuentra en la tercera linea y posteriormente corremos el script para que se cree el usuario de MySQL, la base de datos y las tablas necesarias.

# mysql > /usr/local/src/greylite-3.0pre2/scripts/greylite-mysql.sql -u root -p

Editamos el archivo que se encarga de mandar los correos, localizado en: /var/qmail/supervise/qmail-smtpd/run y modificamos las lineas:

/usr/local/bin/tcpserver -v -R -l "$LOCAL" \ -x /etc/tcp.smtp.cdb -c "$MAXSMTPD" \ -u "$QMAILDUID" -g "$NOFILESGID" 0 smtp \ /var/qmail/bin/qmail-smtpd 2>&1

Y agregamos el siguiente comando:

/usr/local/bin/tcpserver -v -R -l "$LOCAL" \ -x /etc/tcp.smtp.cdb -c "$MAXSMTPD" \ -u "$QMAILDUID" -g "$NOFILESGID" 0 smtp \ <strong>/usr/local/bin/greylite</strong> /var/qmail/bin/qmail-smtpd 2&gt;&amp;1

Reiniciamos el servicio de qmail:

# qmail restart

Ahora procedemos a editar es archivo /etc/tcm.smtp, y agregamos las siguientes lineas:

:allow,DBRESOURCE=":greylite:pass_de_mysql:greylite::/var/run/mysqld/mysqld.sock",GREYLIST="",SUSPICION="/etc/greylite/suspicion.conf",QMAILQUEUE="/var/qmail /bin/qmail-scanner-queue.pl"

Con lo cual le estamos indicando que use greylite para verificar IP’s y le pasamos el password de mysql para el usuario greylite. Ahora regeneramos las el archivo de reglas de tcpserver:

# tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp &lt; /etc/tcp.smtp

Y checamos que las reglas se hallan guardado de manera correcta:

# tcprulescheck /etc/tcp.smtp.cdb

Qué nos debe de regresar algo parecido a esto: rule :

set environment variable DBRESOURCE=:greylite:pass_de_mysql:greylite::/var/run/mysqld/mysqld.sock set environment variable GREYLIST= set environment variable SUSPICION=/etc/greylite/suspicion.conf set environment variable QMAILQUEUE=/var/qmail/bin/qmail-scanner-queue.pl allow connection

Probamos que greylite funcione de manera correcta, con el comando telnet, el cual nos debe de regresar un error 400 (4xx) la primera vez que lo hagamos, despues de 30 segundos se puede intentar de nuevo y de esta manera verificar que la IP no es SPAM.

# telnet my.server.com 25 Trying 1.2.3.4...
Connected to my.server.com.
Escape character is '^]'.
220 my.server.com ESMTP
HELO asd 250 my.server.com
MAIL FROM: 250 ok
RCPT TO: 451 qqt failure (#4.3.0) -- or -- 452 insufficient system storage

Y ya podremos verificar en mysql las IP’s verificadas y las IP’s pendientes por verificar desde MySQL.

This entry was posted in How-to, MySQL, SPAM and tagged , , , , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">