Utilizar .htaccess como firewall

El uso del archivo .htaccess como firewall puede evitarnos ataques y además ahorrar recursos de hosting.

 
Usar el htaccess como firewall
 

CONTENIDO DE LA ENTRADA

 

 

 

Hoy os presentamos las reglas de seguridad para el archivo .htaccess creadas por perishablepress.com, conocidas como 6G Firewall o 6G Blacklist.

 
Perishable Press | htaccess Firewall
 

Se trata de una potente lista negra que comprueba todas las peticiones URL por medio de unas cuidadosas directivas de .htaccess.

Al contrario que los plugins, el .htaccess no utiliza memoria, ni recursos para PHP o MYSQL, con lo cual ahorramos recursos que serán destinados al tráfico legítimo de nuestro sitio web.

No es necesaria ninguna configuración, simplemente añadir al .htacces y listo!  (no hemos de sustituir el contenido de htaccess, sino añadir las reglas de 6G Firewall al contenido existente)

 

Pulsa aquí para ir directo a las reglas de 6G Firewall para htaccess

 
Este conjunto de reglas protegen nuestro sitio contra una amplia variedad de solicitudes maliciosas, bad bots, robots de spam, ataques XSS, Exploits y otras solicitudes …

 

¿Y si mi hosting no me permite editar el archivo .htaccess? …


Es necesario que en nuestro servidor de hosting esté habilitado el archivo .htaccess y su edición, puesto que algunos proveedores de hosting bloquean el sitio si se implementan algunas reglas en el .htaccess.

Por ejemplo, en el hosting compartido de Arsys no se puede tocar el .htaccess, y si lo tocas que sea con mucho cuidado, porque prácticamente no dejan añadir nada realmente útil, y si lo haces y grabas el archivo, tu sitio será bloqueado “por seguridad”. Vamos, que intentas optimizar tu tráfico y tu servidor filtrando las visitas de algunos referers y bots spammeros, y resulta que el hosting te bloquea y tienes que perder tu tiempo para que vuelvan a habilitar tu sitio (quitando esas reglas que hayas añadido claro).

En fin, como he comentado muchas veces, uno de los mejores hostings compartidos es Webempresa. Implementan unas políticas de seguridad impresionantemente efectivas, y además se les puede pedir cualquier personalización.

Sea cual sea tu hosting, comprueba antes de nada si te permite editar el htaccess y añadir ciertas reglas antes de añadir las reglas del Firewall  6G de Perishable Press.
 
 

En el caso de que tu hosting no permita la edición del fichero .htaccess, o no permita añadir ciertas reglas en él, y estés utilizando WordPress, existe una alternativa muy buena, y es el plugin

BBQ: Block Bad Queries

 
BBQ-block bad queries-WP Firewall
 
Se trata de un plugin de los creadores de 6G Firewall 2016, preparado específicamente para sitios WordPress que no pueden utilizar el htaccess como firewall.

 

Y dicho todo esto, os dejamos con el 6G FIREWALL/BLACKLIST 2016

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# 6G FIREWALL/BLACKLIST
# @ https://perishablepress.com/6g/
 
# 6G:[QUERY STRINGS]
<IfModule mod_rewrite.c>
	RewriteEngine On
	RewriteCond %{QUERY_STRING} (eval\() [NC,OR]
	RewriteCond %{QUERY_STRING} (127\.0\.0\.1) [NC,OR]
	RewriteCond %{QUERY_STRING} ([a-z0-9]{2000}) [NC,OR]
	RewriteCond %{QUERY_STRING} (javascript:)(.*)(;) [NC,OR]
	RewriteCond %{QUERY_STRING} (base64_encode)(.*)(\() [NC,OR]
	RewriteCond %{QUERY_STRING} (GLOBALS|REQUEST)(=|\[|%) [NC,OR]
	RewriteCond %{QUERY_STRING} (<|%3C)(.*)script(.*)(>|%3) [NC,OR]
	RewriteCond %{QUERY_STRING} (\\|\.\.\.|\.\./|~|`|<|>|\|) [NC,OR]
	RewriteCond %{QUERY_STRING} (boot\.ini|etc/passwd|self/environ) [NC,OR]
	RewriteCond %{QUERY_STRING} (thumbs?(_editor|open)?|tim(thumb)?)\.php [NC,OR]
	RewriteCond %{QUERY_STRING} (\'|\")(.*)(drop|insert|md5|select|union) [NC]
	RewriteRule .* - [F]
</IfModule>
 
# 6G:[REQUEST METHOD]
<IfModule mod_rewrite.c>
	RewriteCond %{REQUEST_METHOD} ^(connect|debug|delete|move|put|trace|track) [NC]
	RewriteRule .* - [F]
</IfModule>
 
# 6G:[REFERRERS]
<IfModule mod_rewrite.c>
	RewriteCond %{HTTP_REFERER} ([a-z0-9]{2000}) [NC,OR]
	RewriteCond %{HTTP_REFERER} (semalt.com|todaperfeita) [NC]
	RewriteRule .* - [F]
</IfModule>
 
# 6G:[REQUEST STRINGS]
<IfModule mod_alias.c>
	RedirectMatch 403 (?i)([a-z0-9]{2000})
	RedirectMatch 403 (?i)(https?|ftp|php):/
	RedirectMatch 403 (?i)(base64_encode)(.*)(\()
	RedirectMatch 403 (?i)(=\\\'|=\\%27|/\\\'/?)\.
	RedirectMatch 403 (?i)/(\$(\&amp;)?|\*|\"|\.|,|&amp;|&amp;amp;?)/?$
	RedirectMatch 403 (?i)(\{0\}|\(/\(|\.\.\.|\+\+\+|\\\"\\\")
	RedirectMatch 403 (?i)(~|`|<|>|:|;|,|%|\\|\s|\{|\}|\[|\]|\|)
	RedirectMatch 403 (?i)/(=|\$&amp;|_mm|cgi-|etc/passwd|muieblack)
	RedirectMatch 403 (?i)(&amp;pws=0|_vti_|\(null\)|\{\$itemURL\}|echo(.*)kae|etc/passwd|eval\(|self/environ)
	RedirectMatch 403 (?i)\.(aspx?|bash|bak?|cfg|cgi|dll|exe|git|hg|ini|jsp|log|mdb|out|sql|svn|swp|tar|rar|rdf)$
	RedirectMatch 403 (?i)/(^$|(wp-)?config|mobiquo|phpinfo|shell|sqlpatch|thumb|thumb_editor|thumbopen|timthumb|webshell)\.php
</IfModule>
 
# 6G:[USER AGENTS]
<IfModule mod_setenvif.c>
	SetEnvIfNoCase User-Agent ([a-z0-9]{2000}) bad_bot
	SetEnvIfNoCase User-Agent (archive.org|binlar|casper|checkpriv|choppy|clshttp|cmsworld|diavol|dotbot|extract|feedfinder|flicky|g00g1e|harvest|heritrix|httrack|kmccrew|loader|miner|nikto|nutch|planetwork|postrank|purebot|pycurl|python|seekerspider|siclab|skygrid|sqlmap|sucker|turnit|vikspider|winhttp|xxxyy|youda|zmeu|zune) bad_bot
	<limit GET POST PUT>
		Order Allow,Deny
		Allow from All
		Deny from env=bad_bot
	</limit>
</IfModule>
 
# 6G:[BAD IPS]
<Limit GET HEAD OPTIONS POST PUT>
	Order Allow,Deny
	Allow from All
	# uncomment/edit/repeat next line to block IPs
	# Deny from 123.456.789
</Limit>