Defensas contra ataques a su servidor web
De Wiki de la Comunidad Mandriva
Tabla de contenidos |
[editar] 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.
[editar] 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.
[editar] 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]
[editar] 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"

