El uso del archivo .htaccess como firewall puede evitarnos ataques y además ahorrar recursos de hosting.
CONTENIDO DE LA ENTRADA
- Explicación de 6G FIREWALL
- ¿Y si mi hosting no permite editar el archivo .htaccess? …
- Reglas htaccess de 6G Firewall 2016
Hoy os presentamos las reglas de seguridad para el archivo .htaccess creadas por perishablepress.com, conocidas como 6G Firewall o 6G Blacklist.
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.
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
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;?)/?$ RedirectMatch 403 (?i)(\{0\}|\(/\(|\.\.\.|\+\+\+|\\\"\\\") RedirectMatch 403 (?i)(~|`|<|>|:|;|,|%|\\|\s|\{|\}|\[|\]|\|) RedirectMatch 403 (?i)/(=|\$&|_mm|cgi-|etc/passwd|muieblack) RedirectMatch 403 (?i)(&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> |