El spam en los blogs es un problema que acaba afectando de alguna forma a todos los que administramos servidores. En WordPress hay estupendos plugins para evitar el spam como Akismet y que funcionan muy bien, pero siempre funcionan después de que el spam ya ha entrado en el blog con el consiguiente consumo de ancho de banda, cpu, memoria y espacio en disco. Evidentemente para un sólo blog no es un problema pero cuando tienes muchos con mucho tráfico y está entrando continuamente spam en todos ellos puede acabar siendo un problema.
En Stop Forum Spam han creado una lista de spammers a nivel mundial que puedes consultar descargando un fichero con las ips, emails o nombres de usuario utilizados o a través de una api que puedes consultar libremente desde cualquier aplicación que desarrolles.
En mi caso para ahorrar tiempo y ancho de banda he creado una entrada en el cron que diariamente descarga las ips bloqueadas durante las ultimas 24 horas y las bloquea directamente.
Ejemplo con iptables
. /usr/bin/wget -O /tmp/listed_ip_1.zip http://www.stopforumspam.com/downloads/listed_ip_1.zip; /usr/bin/unzip /tmp/listed_ip_1.zip -d /tmp/; for i in $(/bin/cat /tmp/listed_ip_1.txt); do /sbin/iptables -A INPUT -s $i -j DROP; done; /bin/rm /tmp/listed_ip_1.* |
y si utilizas el firewall apf
. /usr/bin/wget -O /tmp/listed_ip_1.zip http://www.stopforumspam.com/downloads/listed_ip_1.zip; /usr/bin/unzip /tmp/listed_ip_1.zip -d /tmp/; for i in $(/bin/cat /tmp/listed_ip_1.txt); do /usr/local/sbin/apf -d $i; done; /bin/rm /tmp/listed_ip_1.* |
Espero que os sea útil.
[Actualización]
Acabo de encontrar un plugin para wordpress que utiliza esta lista junto con otras dos:
http://wordpress.org/extend/plugins/stop-spammer-registrations-plugin/