Plugin para qmail
Procedo a “liberar” un plugin que hice hace unos meses para qmail mediante el cuál, se puede realizar un rate limit de los emails que envía una cierta dirección.
El proceso consiste en guardar en una tabla en MySQL las direcciones que qmail va “viendo”. Existe otra tabla en la que se guarda el valor por defecto que se le quiere dar al límite (por ejemplo, 100 mensajes) y si se llega a dicho límite en un rango de tiempo (por defecto, en 1 hora) el mensaje es rechazado a nivel de SMTP temporalmente.
Existe también la posibilidad de poner límites diferentes para determinadas direcciones; por ejemplo, alguna persona que por X razón legítima necesite enviar más correos.
Además, existe una lista blanca para IPs a las cuáles no aplicar dichos límites. Por ejemplo, si tenemos unos relays de entrada.
Qmail debe estar parcheado con SPP para poder usar este plugin. Por ejemplo, el qmail de Plesk viene de serie ya parcheado, por lo que no hay más que copiarlo en /var/qmail/plugins/ y añadirlo en el archivo /var/qmail/control/smtpplugins.
En la siguiente URL puede ser descargado:
Comments(13)
hola Alvaro
Voy a probar tu script.
En teoría esto no sirve para limitar los emails que puede enviar un SCRIPT Via PHP, correcto ?
Creo que he visto un script parecido en
http://www.enderunix.org/spamguard/
¿Que soluciones usas para limitar los envios via php?
Un saludo
Oscar
Efectivamente, los envíos desde PHP se hacen vía qmail-inject en vez de por qmail-smtpd, por lo que no pueden limitarse con este script.
Para controlar esos mensajes (y todos en general), puedes usar un servidor externo a modo de relay de salida.
Publicado en:
http://qmail-spp.sourceforge.net
Hola Alvaro,
Has comentado que un servidor externo en modo de relay para controlar la salida de mensajes… Me he quedado casi igual …
¿porque ayudaría un servidor externo? Tienes alguna referencia que pueda usar para comprenderlo?
¿Qué haces tu para controlarlo desde el propio servidor?
Me refiero sobre todo al envio de mensajes desde scripts php spammers que puedan haber infectado algun dominio y han subido mailers. En hotmail este mes me están fundiendo a bloqueos y no logro encontrar a los scripts malignos.
Estoy usando el Smart Network Data Services de Hotmail para que me dé más información y he encontrado a algun dominio valido que envia mucho email pero a los scripts “malos” nó.
Uso qmail y Plesk y sigo lo que describe en los articulos principalmente para encontrar a los sospechosos.
http://kb.parallels.com/article_22_1711_en.html
http://kb.parallels.com/en/766
Que “protocolo” sigues tú ?
Un abrazo
Oscar
Hola Oscar,
enrutando por un servidor externo todo el tráfico SMTP saliente, todos los mensajes le llegan por qmail-smtpd a dicho servidor, por lo que el 100% de los mensajes salientes pueden ser controlados.
Los artículos que enlazas, dan medidas para detectar esos envíos fraudulentos, sí. El protocolo que seguimos, obviamente, no puede hacerse público por medidas de seguridad.
Un saludo,
Álvaro.
Buenos dias Alvaro
Tienes alguna referencia para ver como se puede enrutar el trafico SMTP Saliente a un servidor externo ?
Lo que no veo claro es como controlas los envios desde scripts php desde ese servidor externo…
No he visto nada parecido en los foros habituales…
A ver si puedes ilustrarnos sin dar los detalles del “protocolo” especifico que sigues para no desvelar el “secreto”.
No es cuestión de secretismos, es cuestión de seguridad.
Respecto a enrutar los mensajes:
http://wiki.qmailtoaster.com/index.php/Smtproutes
Y en el servidor externo, con este plugin por ejemplo, limitas los envíos que puede realizar una cuenta en concreto y por tanto, puedes controlarlos.
Alvaro, solo queria agradecerte y felicitarte, muy bueno tu script y explicacion, me fue de mucha utilidad.
Hola Álvaro,
Soy un usuario de plesk y estoy intentando poner tu script para funcionar, pero tengo una duda.
Que quieres decir como “añadirlo en el archivo /var/qmail/control/smtpplugins.”
Que es lo que debo añadir y como exactamente?
Gracias de ante mano
Un saludo.
Gracias Aldo!
Marcelo, perdona el retraso, en el archivo /var/qmail/control/smtpplugins del qmail instalado por Plesk, tendrás algo como:
[rcpt]
plugins/chkrcptto
plugins/badhelo
Simplemente, debes añadir la línea de rate_from para dejarlo como:
[rcpt]
plugins/chkrcptto
plugins/badhelo
plugins/rate_from
habiendo dejado el script de rate_from en /var/qmail/plugins/ con permisos de ejecución.
Hola,
Lo instalé y veo que genera registros en la tabla rate_frame pero no me funciona la limitación. Por ejemplo, si le pongo para el correo xxx@xxx.com un máximo de 8 correos a enviar (lo doy de alta en rate_from_default), cuando envio desde ese correo mas de 8 mensajes/hora pues me permite seguir enviando. Uso plesk con centos5.
¿Alguna pista?
Gracias!
Vaya ahora me sale esto al enviar un correo: ”
Insecure dependency in “ while running setuid at plugins/rate_from line 158.”
¿pistas?
Hola edu,
¿qué te sale en el archivo /var/log/rate_from.log ? Algún mensaje de REJECT, UPDATE…etc?