Como mejorar la seguridad de WordPress con el .htaccess

Autor: | 2017-01-10T13:02:20+00:00 Fecha: 25/05/2016|Categorías: WordPress|Comentarios: 8 comentarios

 

 

Una vez más volvemos a hablar de seguridad de WordPress, sí, esa cuestión técnica a la que últimamente tenemos que darle mucha importancia si queremos conservar nuestro WordPress en perfecto funcionamiento.

wordpress seguridadTambién hemos hablado en algunas ocasiones del archivo .htaccess que se usa para forzar determinados comportamientos en un servidor web Apache, de hecho, en los siguientes artículos puedes ver cómo hacer algunas cosas útiles con el .htaccess:

Ahora vamos a ver una serie de trucos o códigos que nos permitirán mejorar la seguridad de nuestra instalación de WordPress usando el .htaccess.
¿Qué quiere decir esto? Que los códigos o snippets que pongamos en este artículo deben ser insertados en el .htaccess siguiendo la colocación especificada para cada uno.

Debes tener en cuenta que un fallo al meter estos códigos en el .htaccess pueden dar lugar a un problema, ya que tu web WordPress puede dejar de cargar literalmente.

Para editar el .htaccess de WordPress simplemente debemos usar el cliente FTP o por SSH desde el servidor, se necesita un editor de texto para editar un archivo .htaccess.

El .htaccess por defecto de WordPress lleva el siguiente contenido (con las URL amigables activadas):

Todos los códigos que vamos a listar a continuación, deben ir después del código que mete de forma nativa WordPress en el .htaccess.

 

Proteger los archivos importantes de WordPress

Con unas simples líneas podemos proteger los archivos importantes de la instalación de posibles accesos externos desde navegadores de visitantes, aunque esto no le sacara acceso al servidor web para realizar cambios en estos archivos desde PHP.

Es importante proteger el wp-config.php, y los archivos PHP.INI (y similares), por otro lado, nunca esta demás ocultar los error_log y hacer que no todo el mundo se los pueda descargar, ya que a veces pueden ir datos relevantes que sirvan para hacer ingeniería inversa y provocar una intrusión en nuestra web.

 

Permitir el acceso al WP-ADMIN a algunas IPS

Si trabajamos en una oficina con IP fija o en nuestra casa tenemos una conexión a Internet con IP fija, podemos usar esta técnica para proteger el WP-ADMIN y el WP-LOGIN de nuestro WordPress forzando a que solo deje entrar a algunas IPs:

Esto también puede hacerse mediante plugins, ya que por ejemplo Wordfence Security lo permite hacer.
Por otro lado, si no tenemos IP fija y tenemos IP dinámica, no se puede realizar este bloqueo ya que perderemos el acceso a la administración del sitio.

 

Prevenir el listado de directorios desde el navegador

Algunos servidores de hosting (no es nuestro caso) permiten listar directorios cuando no se encuentra un index.php o index.html que ejecutar, en esos casos se produce un efecto que se puede traducir en un grave fallo de seguridad, ya que un visitante puede tener acceso a todo el contenido de los archivos del sitio web.

Con el siguiente código (simple) puedes hacer que muestre un 403 o 404 directamente, en lugar de listar los archivos y carpetas que hay en el hosting.

 

Bloquear la ejecución de PHP en UPLOADS

La carpeta UPLOADS solo debería contener archivos multimedia, ya que para eso se ha diseñado, además, el problema viene cuando se ocultan archivos PHP en formato “imagen” para que no sea fácil distinguirlos a simple vista.

Con el código anterior en el .htaccess podemos hacer que desde el exterior no se puedan ejecutar archivos .php en la carpeta UPLOADS ni en ninguna de sus subcarpetas, ya que en la mayoría de las infecciones de WordPress que tratamos en Raiola Networks, el problema viene por eso precisamente.

 

Mejorar la seguridad del WP-INCLUDES

Como hemos explicado en el artículo donde hablábamos de la estructura de archivos de WordPress, el WP-INCLUDES es una carpeta que necesita WordPress para funcionar y que nunca recibe modificaciones, simplemente incluye librerías necesarias para que WordPress funcione correctamente.

Con el código anterior puedes hacer que desde el exterior la carpeta WP-INCLUDES sea completamente impenetrable.
Una modificación muy útil que debería implementarse de forma nativa en el .htaccess por defecto de WordPress.

 

Bloquear el hot linking en WordPress

El hot link puede ser un problema grave si te enlazan una imagen desde un sitio con mucho tráfico, ya que a pesar de que la mayoría de los webmasters no se lo imagina, puede llegar a saturar el servidor sin poder reaccionar lo suficientemente rápido.
Podemos bloquear el hotlink fácilmente con él .htaccess.

El código anterior debemos adaptarlo al sitio web donde implementemos el código.
De todas formas, si sufres hotlinking en tu web, es muy posible que necesites algo más potente o un CDN para bloquear todas las peticiones.

 

Bloquear IPS atacantes

Puedes bloquear cualquier IP atacante o IP que te esté dando problemas desde el archivo .htaccess, el método es bastante simple y el código que debes implementar en el .htaccess también es simple.
Lo único que debes hacer es detectar exactamente que IPs te están causando problemas.

Como hemos dicho al principio del artículo, ya hemos hablado de esto en otro artículo, para bloquear países enteros desde el .htaccess de WordPress.

Podemos detectar IPs atacantes desde los logs, si no entiendes el error_log o access_log de tu hosting o servidor, contacta con tu proveedor o tu administrador de sistemas.

 

Bloquear user-agents o bots atacantes

No solo podemos bloquear IPs con él .htaccess, también podemos bloquear determinados user-agents, lo que significa que podemos bloquear fácilmente bots o determinados navegadores o dispositivos.

Para usar este método debemos saber lo que hacemos, ya que algunos bots emulan otros user-agents con el fin de despistar en los logs y camuflarse a la vista del que revisar los logs.
Evidentemente el código anterior es necesario adaptarlo a nuestras necesidades en base a lo que necesitemos bloquear.

 

Personalizar los errores 404 con el .htaccess

A veces los errores 404, errores 403 y errores 500 en WordPress ofrecen resultados que no son los adecuados o pueden dar lugar a problemas debido a una sobrecarga.
Si bloqueas un ataque, y esto empieza a dar 404, esto va a consumir recursos del hosting o servidor al devolver los errores.

Con este código podemos personalizar y hacer que la pagina 404 y similares sea un HTML que no consuma recursos al mostrarse, ideal cuando un ataque satura los recursos de nuestro servidor y redireccionamos las peticiones a error 404 (por ejemplo, al bloquear el hotlinking del que hemos hablado anteriormente).

Mi nombre es Alvaro Fontela, soy consultor Wordpress y blogger activo desde hace años. Co-Fundador de Raiola Networks, escribiendo sobre Wordpress en este blog día tras día.

Utilizamos cookies propias y de terceros para obtener información estadística, mostrar publicidad personalizada a través del análisis de tu navegación, así como para interactuar en redes sociales. Si continúas navegando, consideramos que aceptas nuestra Política de cookies. ACEPTAR

Aviso de cookies