Defensas contra ataques a su servidor web

De Wiki de la Comunidad Mandriva

Contenido

Trucos anti Spam

Si tienes un blog que usa APXS (la versión modula de Apache incluida en Mandriva Linux), hay tres técnicas para bloquear spam usando Apache: Directivas apache, reglas .htaccess y mod_security.

Directivas Apache

Se puede definir una variable de entorno en Apache para bloquear el acceso a un atacante basándose en palabras clave contenidas en dicha variable.

Primero, tiene que añadir una línea que defina la variable de entorno basada en palabras clave:

SetEnvIfNoCase Referer ".*(keyword1|keyword2|keyword\.com|etc.).*" BadReferrer

Después hay que dar acceso a dicha variable de entorno:

#Site settings
<Directory "/var/www/html/directory">
    allow from all
    deny from env=BadReferrer
</Directory>

Ahora, cuando alguien quiera entrar en tu web usando una referencia que contenga una palabra clave prohibida, obtendrán un error de acceso 403.

Reglas .htaccess

Simplemente, añada líneas como las siguientes a un fichero .htaccess e inclúyalo en el directorio principal de la web.

RewriteCond %{HTTP_REFERER} ^(.*).keyword1(.*)$ [OR]
RewriteCond %{HTTP_REFERER} ^(.*).key(.*)-word(.*)$ [OR]
RewriteCond %{HTTP_REFERER} ^(.*)keyword2(.*) [OR]
RewriteCond %{HTTP_REFERER} ^(.*)keyword3.(.*) [OR]
RewriteCond %{HTTP_REFERER} ^(.*)keyword.com(.*) [OR]
RewriteCond %{HTTP_REFERER} ^http://(www\.)?keyword4.*$
RewriteRule .* http://www.thispagecannotbedisplayed.com/ [R,L]

mod_security

Este es un método comúnmente usado por su efectividad y por las posibilidades casi ilimitadas contra los visitantes problemáticos.

Añade una línea dentro del fichero /etc/httpd/conf.d/82_mod_security.conf como esta:

SecFilterSelective "HTTP_REFERER" "(keyword1|keyword2|key\.word\.3|etc)" "deny,log,status:403"

para prohibir el acceso. También puede cambiar "status:403" a "redirect:http://127.0.0.1" para redireccionarlo a la máquina local atacante. Incluso puede devolver el golpe redireccionando a una dirección sin sentido como 192.168.52.142 de manera que se vuelvan locos esperando un mensaje de "timeout".

También, para webs que sufren ataques especialmente serios, se les puede redireccionar a ellos mismos, dándoles de su propia medicina.

Para bloquear spam del tipo "comentarios", añada una línea como sigue:

SecFilterSelective "POST_PAYLOAD" "(keyword1|keyword2|key\.word\.3|etc)" "deny,log,status:403"
Herramientas personales