A veces pensamos que planear una buena defensa, más alla de instalar un plugin, es complicado.
Pero nada más lejos de la realidad.
Proteger un blog con htaccess es sencillo, con unos pequeños trucos que te quiero presentar, y veras que luego solo consiste en ¡copiar y pegar!
Vale, proteger un blog con htaccess será sencillo, pero ¿que es?
¿En serio? ¿No me lees? Vale que últimamente haya escrito menos, pero justo el último articulo habla sobre como acelerar un blog usando el fichero .htaccess, y en el te explico que es y hace ese fichero.
Pues te resumo.
.htaccess es un fichero de configuración especial, normalmente en el root de tu servidor web, y es usado por apache o nginx (el software de tu servidor web), para poder gestionar tus directorios, accesos, redirecciones, etc…
¿ya te suena más para que sirve?
El caso es que no vale solo para acelerar nuestro sitio web, o para las redirecciones.
Podemos usarlo para protegernos de ataques.
¿Te interesa saber como?
Te presento mis trucos para defenderme con htaccess
Partimos de la base de que un fichero .htaccess típico suele contener este código:
# BEGIN WordPress RewriteEngine On RewriteBase / RewriteRule ^index.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php< [L] # END WordPress
Aparte de lo que añadieras para mejorar la velocidad de carga. Pero ya sabes que cualquier cosa que añadas, va al final, y sobre todo tras el comentario #END WordPress.
¡Ah! y realiza tus copia de seguridad antes.
Truco #1. Protege el fichero wp-config.php
Ya sabes que el fichero wp-config se encuentra en el directorio raíz de tu wordpress, y contiene datos muy importantes, como la conexión a la base de datos.
Aunque no es un fichero accesible o visible desde fuera, no esta de más un poco de protección extra.
Añade este código a tu fichero .htaccess, para prevenir accesos no deseados.
order allow,deny deny from all
Truco #2. Previene la exploración de directorios.
Como WordPress es tan popular, todo el mundo conoce la estructura de directorios que tiene.
Por tanto, siempre puedo probar por ejemplo a entrar en www.tudominio.com/wp-content/plugins
Y si tengo suerte y no esta protegido, me listará todos los plugins que tienes, siendo fácil averiguar si alguno es vulnerable.
Asi que para prevenir, usa este código en tu fichero.
# directory browsing Options All -Indexes
Truco #3. Acceder solo al panel de admin desde tu IP
No soy muy amigo de este truco, ya que solo podrás acceder desde esa IP, y a veces se necesita acceder desde un tablet o dispositivo móvil por ejemplo, pero si siempre trabajas en tu blog desde casa o la oficina, esta es una foma eficaz de protegerlo.
Además hoy en día, si tienes por ejemplo ADSL y telefonía IP, tu IP será fija, aunque no la hayas contratado asi.
Para hacer esto usaremos este truco:
order deny,allow allow from 255.255.255.255 deny from all
Por supuesto sustituye 255.255.255.255 por tu propia ip. La puedes averiguar en cualesmiip.com
Truco #4. Protege el fichero .htaccess
No es de locos que despues de gastar tu tiempo protegiendo a fondo tu blog configurando el fichero .htaccess al final lo dejemos sin proteger.
Con este truco pararas cualquier intento de localziar un fichero que empiece por «hta».
order allow,deny deny from all satisfy all
Truco #5. Usa la lista 5G
Pues la lista 5G es una sencilla lista para el fichero .htaccess que bloquea una serie de usos malintencionados ya detectados.
Aunque evidentemente debería actualizarse, de por si ya nos va quitando algo, y además va muy bien con WordPress.
Aqui te dejo la lista:
# 5G BLACKLIST/FIREWALL (2013) # @ http://perishablepress.com/5g-blacklist-2013/ # 5G:[QUERY STRINGS] RewriteEngine On RewriteBase / RewriteCond %{QUERY_STRING} ("|%22).*(<|>|%3) [NC,OR] RewriteCond %{QUERY_STRING} (javascript:).*(;) [NC,OR] RewriteCond %{QUERY_STRING} (<|%3C).*script.*(>|%3) [NC,OR] RewriteCond %{QUERY_STRING} (\|../|`|='$|=%27$) [NC,OR] RewriteCond %{QUERY_STRING} (;|'|"|%22).*(union|select|insert|drop|update|md5|benchmark|or|and|if) [NC,OR] RewriteCond %{QUERY_STRING} (base64_encode|localhost|mosconfig) [NC,OR] RewriteCond %{QUERY_STRING} (boot.ini|echo.*kae|etc/passwd) [NC,OR] RewriteCond %{QUERY_STRING} (GLOBALS|REQUEST)(=|[|%) [NC] RewriteRule .* - [F] # 5G:[USER AGENTS] # SetEnvIfNoCase User-Agent ^$ keep_out SetEnvIfNoCase User-Agent (binlar|casper|cmsworldmap|comodo|diavol|dotbot|feedfinder|flicky|ia_archiver|jakarta|kmccrew|nutch|planetwork|purebot|pycurl|skygrid|sucker|turnit|vikspider|zmeu) keep_out Order Allow,Deny Allow from all Deny from env=keep_out # 5G:[REQUEST STRINGS] RedirectMatch 403 (https?|ftp|php):// RedirectMatch 403 /(https?|ima|ucp)/ RedirectMatch 403 /(Permanent|Better)$ RedirectMatch 403 (=\'|=\%27|/\'/?|).css()$ RedirectMatch 403 (,|)+|/,/|{0}|(/(|...|+++|||\"\") RedirectMatch 403 .(cgi|asp|aspx|cfg|dll|exe|jsp|mdb|sql|ini|rar)$ RedirectMatch 403 /(contac|fpw|install|pingserver|register).php$ RedirectMatch 403 (base64|crossdomain|localhost|wwwroot|e107_) RedirectMatch 403 (eval(|_vti_|(null)|echo.*kae|config.xml) RedirectMatch 403 .well-known/host-meta RedirectMatch 403 /function.array-rand RedirectMatch 403 );$(this).html( RedirectMatch 403 proc/self/environ RedirectMatch 403 msnbot.htm)._ RedirectMatch 403 /ref.outcontrol RedirectMatch 403 com_cropimage RedirectMatch 403 indonesia.htm RedirectMatch 403 {$itemURL} RedirectMatch 403 function() RedirectMatch 403 labels.rdf RedirectMatch 403 /playing.php RedirectMatch 403 muieblackcat # 5G:[REQUEST METHOD] RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK) RewriteRule .* - [F] # 5G:[BAD IPS] Order Allow,Deny Allow from all # uncomment/edit/repeat next line to block IPs # Deny from 123.456.789 # 5G:[WordPress] RedirectMatch 403 /$& RedirectMatch 403 (?i)/&(t|title)= RedirectMatch 403 (?i)/.(bash|git|hg|log|svn|swp|tar) RedirectMatch 403 (?i)/(1|contact|i|index1|iprober|phpinfo|phpspy|product|signup|t|test|timthumb|tz|visit|webshell|wp-signup).php RedirectMatch 403 (?i)/(author-panel|class|database|manage|phpMyAdmin|register|submit-articles|system|usage|webmaster)/?$ RedirectMatch 403 (?i)/(=|_mm|cgi|cvs|dbscripts|jsp|rnd|shadow|userfiles)
¡Esto es todo por hoy!
Espero que estos trucos te sirvan para hacer de tu web un lugar más seguro.
Usar todos los recursos a tu alcance es necesario para alejar a hackers y malware.
¿Estas probando estas técnicas? ¿Qué tal te fue?
Los comentarios están cerrados.