Configurando Apache para evitar SpamBots
Friday, 27 April 2018
Inicio | Documentacion | Software | Acerca de

Documentación y Software
Inicio
Documentacion
Software
Acerca de


Los spammers hacen uso de unas herramientas llamadas Spam-Bots que se dedican a "navegar" por las páginas de Internet recopilando direcciones de e-mail para luego enviarles spam.

En el siguiente truco, vamos a configurar el servidor web Apache para que deniege la entrada a los Spam-Bots, y no puedan "robar" las direcciones e-mail.

Los pasos a seguir son muy sencillos. El único fichero que debemos tocar es la configuración del Apache. En Debian ese fichero es /etc/apache/httpd.conf.

* Primer paso: cargar el módulo setenvif

Este módulo cambia variables de entorno según unas condiciones. Para cargarlo pondremos esto:

LoadModule setenvif_module /usr/lib/apache/1.3/mod_setenvif.so

La anterior ruta al módulo debe ser la que tenga cada uno. Arriba he puesto la estándar de Debian.

* Luego, en cualquier parte del fichero (preferiblemente fuera de un VirtualHost), ponemos lo siguiente:

<IfModule mod_setenvif.c>
  SetEnvIfNoCase User-Agent "email.?(magnet|reaper|siphon|harvest|collect|wolf)" spam_bot
  SetEnvIfNoCase User-Agent "floodgate" spam_bot
  SetEnvIfNoCase User-Agent "web(bandit|snake|collector|mole|miner|weasel)" spam_bot
  SetEnvIfNoCase User-Agent "cherry.?picker" spam_bot
  SetEnvIfNoCase User-Agent "extractor.?pro" spam_bot
  SetEnvIfNoCase User-Agent "^crescent" spam_bot
  SetEnvIfNoCase User-Agent "nicerspro" spam_bot
  SetEnvIfNoCase User-Agent "ZyBorg" spam_bot
  SetEnvIfNoCase User-Agent "Indy Library" spam_bot
  SetEnvIfNoCase User-Agent "Internet Explore 5.x" spam_bot
  SetEnvIfNoCase User-Agent "larbin" spam_bot
  SetEnvIfNoCase User-Agent "VoilaBot" spam_bot
  SetEnvIfNoCase User-Agent "Baiduspider" spam_bot
  SetEnvIfNoCase User-Agent "zeus.*webster" spam_bot
  SetEnvIfNoCase User-Agent "telesoft" spam_bot
  SetEnvIfNoCase User-Agent "NEWT ActiveX" spam_bot
  SetEnvIfNoCase User-Agent "Microsoft URL Control" spam_bot
  SetEnvIfNoCase User-Agent "MicrosoftPrototypeCrawler.*" spam_bot
  SetEnvIfNoCase User-Agent "DeepIndex" spam_bot
  SetEnvIfNoCase User-Agent "NPBot" spam_bot
  SetEnvIfNoCase User-Agent "Mail_Sweeper" spam_bot
  SetEnvIfNoCase User-Agent "ASPseek" spam_bot
  SetEnvIfNoCase User-Agent "BlogBot" spam_bot
  SetEnvIfNoCase User-Agent "sitecheck\.internetseer\.com.*" spam_bot
  SetEnvIfNoCase User-Agent "NetNose-Crawler" spam_bot
  SetEnvIfNoCase User-Agent "MSNBOT" spam_bot
  SetEnvIfNoCase User-Agent "LinkWalker" spam_bot
  SetEnvIfNoCase User-Agent "Atomz" spam_bot
  SetEnvIfNoCase User-Agent "FlickBot" spam_bot
  SetEnvIfNoCase User-Agent "FrontPage" spam_bot
  SetEnvIfNoCase User-Agent "efp@gmx\.net" spam_bot
  SetEnvIfNoCase User-Agent "imagefetch" spam_bot
  SetEnvIfNoCase User-Agent "LINKS ARoMATIZED" spam_bot
  SetEnvIfNoCase User-Agent "mister pix" spam_bot
  SetEnvIfNoCase User-Agent "MSIECrawler" spam_bot
  SetEnvIfNoCase User-Agent "PersonaPilot" spam_bot
  SetEnvIfNoCase User-Agent "Sqworm" spam_bot
  SetEnvIfNoCase User-Agent "SurveyBot" spam_bot
  SetEnvIfNoCase User-Agent "TurnitinBot" spam_bot
  SetEnvIfNoCase User-Agent "vayala" spam_bot
  SetEnvIfNoCase User-Agent "^(autoemailspider|Bullseye|ecollector|fastlwspider|.*LWP|Digger|Microsoft.URL|Mozilla/3.|Mozilla/2.01|Mozilla.*NEWT|SurfWalker)" spam_bot
</IfModule>

Con estas directivas lo que haces es poner a "true" la variable "spam_bot" si el User-Agent es cualquiera de los programas de los spammers. Conforme vayan apareciendo más spam-bots se pueden ir añadiendo a este bloque.

* Por último, vamos a denegar el acceso. Para ello ponemos esto:

<Location /*>
   Order Allow,Deny
   Allow from all
   Deny from env=spam_bot
</Location>

en la configuración general o dentro de los VirtualHost. Con esto lo que hacemos es denegar el acceso a todos los clientes que hayan puesto la variable spam_bot a true.

Una vez que hemos terminado de configurar, guardamos el fichero y reiniciamos el servidor web (/etc/init.d/apache restart en Debian).

* Vamos a probar que funciona.

Desde una máquina remota conectamos mediante telnet a nuestra IP por el puerto 80:

telnet mi.servidor.web 80
Trying xx.xx.xx.xx...
Connected to servidor.web.com.
Escape character is '^]'.
GET / HTTP/1.0<INTRO>
User-Agent: email-siphon<INTRO>
<INTRO>
HTTP/1.1 403 Forbidden
Date: Fri, 04 Apr 2003 18:31:57 GMT
[...]
Connection closed by foreign host.

OK, nos ha dado un error 403, que es acceso prohibido :)
  Last modified: Thu, 22 December 2016  Contenidos © ServiTux Servicios Informáticos