
WordPress es el CMS más popular del mundo, con más de 70 millones de usuarios, pero ¿qué tan segura es su instalación? te muestro cómo proteger tus sitios de WordPress con .htaccess.
Proteger WordPress con .htaccess
WordPress es sin duda el CMS más popular en este momento, eclipsando otras opciones como Joomla y Drupal. Aunque esto es algo bueno para WordPress, ahora tiene una comunidad muy grande y activa que contribuye con plug-ins, temas y correcciones, pero con este crecimiento ahora también tiene sus puntos malos… Cuando algo se vuelve así de grande, la gente encontrará maneras de atacar el CMS en cuestión por cualquier razón que consideren oportuna. Entonces, ¿cómo proteges tu sitio de WordPress?
Plug-ins
Nuestro trabajo como usuarios de WordPress (aparte de contribuir a la comunidad de WordPress) es mantener nuestras instalaciones a salvo de personas que no queremos que accedan a nuestros sitios. Hay numerosos plug-ins para ayudar a reforzar nuestras defensas de WordPress como Login LockDown que registra la dirección IP y la bloquea después de un número determinado de intentos de acceso que ayuda contra los ataques de fuerza bruta.
Otro es el WP Security Scan que comprueba su instalación en busca de vulnerabilidades y sugiere posibles métodos para arreglar cualquier cosa que pueda encontrar.
Uno de los métodos más ignorados para mantener su instalación segura es actualizarla cuando las actualizaciones están disponibles, lo que asegura que todos los últimos parches y correcciones se apliquen a su sitio. (También puedes eliminar los archivos readme.html y license.txt del directorio raíz ya que muestran el número de versión de WordPress que has instalado).
01. Configurando el archivo .htaccess
Aparte de los plug-ins, hay una serie de adiciones que puedes hacer a tu archivo .htaccess que, junto con los plug-ins y las actualizaciones regulares, reforzarán la seguridad de tu sitio y te darán ese nivel extra de protección.
Voy a cubrir algunas de ellas que creo que protegen algunos de los elementos esenciales de tu instalación de WordPress y te mostraré cómo y dónde añadir los fragmentos de código; no tienes que usar todos y cada uno de ellos, sólo lo que creas que te ayudará a asegurar tu sitio.
El típico archivo .htaccess de WordPress se ve similar a esto:
[restrict ]
1 2 3 4 5 6 7 8 9 10 11 12 |
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress |
[/restrict]
Sugeriría que cualquier adición al archivo .htaccess se añada después de # END WordPress.
Esto asegurará que no se rompa ninguna de las funciones .htaccess basadas en WordPress. Antes de hacer cualquier cambio en el archivo .htaccess, recomiendo encarecidamente hacer una copia de seguridad y guardarla en un lugar seguro.
02. Proteger wp-config.php
wp-config.php es el archivo en su directorio raíz que almacena información sobre su sitio así como detalles de la base de datos, este archivo en particular no quisiéramos que cayera en las manos equivocadas.
En su .htaccess añada lo siguiente para evitar cualquier acceso al archivo wp-config.php:
[restrict ]
1 2 3 4 5 6 |
<Files wp-config.php> order allow,deny deny from all </Files> |
[/restrict]
03. El acceso a la administración sólo desde su IP
Puedes limitar quién puede acceder a tu carpeta de administrador por la dirección IP, para ello necesitarías crear un nuevo archivo .htaccess en tu editor de texto y subirlo a tu carpeta wp-admin.
El siguiente fragmento niega el acceso a la carpeta admin a todo el mundo, con la excepción de tu dirección IP, pero ten en cuenta que si tienes una IP dinámica, es posible que tengas que alterar este archivo con regularidad, de lo contrario, ¡se te negará el acceso a ti mismo!
[restrict ]
1 2 3 4 5 |
order deny,allow allow from 202.090.21.1 (reemplace con su dirección IP) deny from all |
[/restrict]
04. Prohibir a los malos usuarios
Si tienes la misma dirección IP tratando de acceder a tu contenido o tratando de forzar tus páginas de administración, puedes prohibir a esta persona el uso de .htaccess con este simple recorte:
[restrict ]
1 2 3 4 5 6 7 |
<Limit GET POST> order allow,deny deny from 202.090.21.1 allow from all </Limit> |
Esta persona ahora no podrá acceder a su sitio. Puedes añadir más replicando la línea de denegación, por ejemplo:
[restrict ]
1 2 3 4 5 6 7 8 |
<Limit GET POST> order allow,deny deny from 202.090.21.1 deny from 204.090.21.2 allow from all </Limit> |
[/restrict]
05. No hay navegación por el directorio
Como WordPress es ahora tan popular, mucha gente conoce la estructura de una instalación de WordPress y sabe dónde buscar para descubrir qué plug-ins puede utilizar o cualquier otro archivo que pueda revelar demasiada información sobre su sitio, una forma de combatirlo es evitar la navegación por los directorios.
[restrict ]
1 2 3 4 |
# directory browsing Options All -Indexes |
[/restrict]
06. Prevenir el acceso al contenido del wp
La carpeta de contenido wp contiene imágenes, temas y plug-ins y es una carpeta muy importante dentro de tu instalación de WordPress, por lo que tiene sentido evitar que personas ajenas a la empresa accedan a ella.
Esto requiere su propio archivo .htaccess que debe ser añadido a la carpeta wp-content, permite a los usuarios ver imágenes, CSS etc… pero protege los archivos PHP importantes:
[restrict ]
1 2 3 4 5 6 7 |
Order deny,allow Deny from all <Files ~ ".(xml|css|jpe?g|png|gif|js)$"> Allow from all </Files> |
[/restrict]
07. Protección de archivos individuales
Hay ciertos archivos que tal vez quieras proteger individualmente en lugar de bloquear toda una carpeta o selección. El fragmento de ejemplo muestra cómo evitarías el acceso al archivo .htaccess y lanzarías un 403 si alguien lo accediera. El nombre del archivo puede cambiarse a cualquier archivo que desees proteger:
[restrict ]
1 2 3 4 5 6 7 |
# Protect the .htaccess <files .htaccess=""> order allow,deny deny from all </files> |
[/restrict]
08. Proteger el .htaccess
Suena loco, ¿no? Pasamos tanto tiempo preocupándonos por si tenemos instalados los plug-ins y fixes adecuados, que pasamos por alto el hecho de que el archivo .htaccess sigue abierto al ataque.
[restrict ]
1 2 3 4 5 6 7 |
<Files ~ "^.*\.([Hh][Tt][Aa])"> order allow,deny deny from all satisfy all </Files> |
[/restrict] Este recorte básicamente impide que alguien vea cualquier archivo de su sitio que empiece por «hta», esto lo protegerá y lo hará algo más seguro.
Hemos cubierto cómo prohibir a los usuarios, evitar que nadie más que tú acceda a tu carpeta de administrador, cómo evitar la navegación por el directorio, cómo proteger tu archivo wp-config.php, cómo proteger tu carpeta de contenido wp, cómo proteger los archivos individuales e incluso cómo proteger tu archivo .htaccess.
Esta lista de fragmentos no se ha agotado en absoluto, hay otras cosas que puedes hacer para proteger tu sitio a través de .htaccess, pero los elementos que he cubierto ayudan a proteger algunos de los archivos y carpetas clave de tu sitio y a mantenerlos alejados de las miradas indiscretas.