Proteger el acceso a la administración de WordPress

Por: Pablo Velasco,
Últ. act. 23 de diciembre del 2020

A la hora de aumentar la seguridad de tu WordPress un elemento fundamental será proteger el acceso a la administración. Ten en cuenta que esta es la puerta de entrada a modificar cualquier contenido de tu web.

Si un usuario consigue conectarse a la administración de WordPress con un usuario con los privilegios adecuados podrá añadir, modificar o eliminar lo que se antoje. Incluso puede insertar código oculto que sirva para otros fines, como redirigir tu web a otra o enviar correos desde ella.

Existen una serie de prácticas recomendables con las que puedes poner mucho más difícil el acceso a la administración de WordPress a los hackers. Aquí vamos a ver diferentes métodos y consejos, todos ellos muy fáciles de aplicar, gracias a los cuales mejorarás drásticamente la seguridad del acceso al wp-admin de WordPress.

Por supuesto, no será necesario que apliques todo lo que aquí voy a explicar, ya que algunos métodos sirven para conseguir los mismos fines.

¡Vamos allá!

Utilizar una contraseña segura

Vale, ya se que esto es evidente, pero es quizá lo más importante. A lo largo de muchos años ofreciendo servicios de soporte para WordPress me he encontrado en multitud de ocasiones con clientes que utilizaban claves extremadamente sencillas muy fáciles de obtener.

Me refiero a claves tipo 12345, juan1980, el nombre de la web seguido de números o similares. Cualquier robot o programa que se encargue de probar claves podrá acceder a la administración en pocos segundos. Te lo garantizo.

La clave recomendable a utilizar debería tener al menos 16 caracteres y contener letras minúsculas y mayúsculas, letras y otros caracteres especiales (paréntesis, coma, porcentaje, etc.).

Un ejemplo de clave segura podría ser la siguiente: Qp1$9Od^aq$V5QZ!Nsf

Ahora estarás pensando: «¿Y cómo quieres que recuerde yo esa clave?». La respuesta sería que no hace falta recordarla, y en su lugar utilices un gestor de contraseñas.

¿Buscas hosting para tu web?

Hemos analizado las mejores opciones. Revisa nuestro artículo para descubrir el mejor hosting en España.

Aprovecha nuestros descuentos en la contratación:

Usar un gestor de contraseñas para guardar los datos de acceso a WordPress

Un gestor de contraseñas es una herramienta que sirve para almacenar el usuario y contraseña de las distintas páginas que requieran de acceso. La mayor parte de ellas disponen de extensiones para navegadores, por lo que luego el proceso de acceso será automático y más cómodo que tener que teclear el usuario y contraseña.

La principal ventaja es que podrás utilizar contraseñas tan complicadas como quieras para acceder a servicios como el correo, redes sociales o la administración de WordPress, ya que no tendrás que recordarlas.

Solo deberás memorizar una única contraseña: la que se usa para acceder al propio gestor de contraseñas. Por supuesto, esta deberá ser segura.

Gracias a este sistema podrás evitar otro vicio muy común, consistente en utilizar la misma contraseña para distintas páginas. Ten presente que si alguien consigue esa contraseña podrá acceder a todas las webs donde la hayas utilizado.

Los gestores de contraseñas más conocidos y usados son 1Password y LastPass. También me parece muy recomendable Ciberprotector, ya que incluye herramientas de seguridad adicionales, como una VPN.

Cuando empieces a usar un gestor de contraseñas te preguntaras cómo habías podido vivir sin él.

No utilizar el usuario admin como administrador de WordPress

Para que alguien pueda acceder a la administración de tu WordPress, además de la contraseña tendrá que saber tu nombre de usuario o correo electrónico. El nombre de usuario admin es el que se suele usar por defecto en WordPress, por lo que suele ser utilizado por las herramientas de hackeo para lanzar ataques por fuerza bruta.

Durante el proceso de instalación de WordPress llegarás a un paso donde te solicitará el nombre de usuario.

nombre de usuario para acceder a la administración de wordpress

Aquí es donde debes evitar poner el usuario admin. En su lugar puedes poner un nombre como pedro, adminmiweb, etc.

Si ya tiene un usuario con el nombre admin, no podrás modificarlo. Existen diversos métodos para arreglar esto. Uno muy sencillo sería que crearas un nuevo usuario con privilegios de administrador. Una vez hecho esto deberás cerrar la sesión actual e iniciar sesión con el nuevo usuario. A continuación elimina el usuario admin.

Si habías creado contenidos asociados a ese usuario (lo más probable es que sea así) te preguntará si quieres atribuir estos contenidos a un nuevo usuario. Deberás seleccionar el nuevo usuario que has creado.

Elegir un servicio de hosting que ofrezca seguridad adicional

Cuando vayas a elegir un servicio de hosting para tu WordPress es importante que este cuente con herramientas de seguridad, como un WAF (Firewall), sistemas de backup automático, etc.

Algunos ofrecen medidas de seguridad extra para proteger el acceso a la administración de WordPress. Por ejemplo, en el caso de Webempresa se bloquea la IP del usuario que intenta acceder a la administración si pone los datos incorrectos una serie de veces consecutivas. Con esto se consiguen parar los ataques de fuerza bruta, consistentes en ir probando cientos de contraseñas de forma consecutiva. Además, también bloquea por defecto los intentos de acceso a la administración de WordPress desde países de habla no hispana, que es desde donde se producen la gran mayoría de los ataques.

Todas estas medidas de seguridad las puedes implementar por medio de plugins, pero si ya lo incluye el hosting por defecto te ahorrarás instalarlos.

Proteger el directorio wp-admin de WordPress con un prelogin

Una forma muy eficaz de añadir una capa extra de seguridad a la administración de WordPress sería añadiendo una petición de usuario y contraseña adicional antes de poder acceder al directorio wp-admin.

Esto se puede conseguir mediante código y es compatible con la mayoría de los servicios de hosting. Aquí voy a explicar cómo añadir este prelogin de forma sencilla desde cPanel y Plesk, los paneles de control de hosting más populares.

Proteger un directorio con contraseña desde cPanel

Una vez que te encuentres en el panel de control cPanel tendrás que pulsar en la opción Privacidad del directorio (el nombre puede cambiar según la empresa de hosting) que hay en el apartado ARCHIVOS.

proteger directorio con contraseña en cpanel

Aquí deberás ir pulsando sobre los iconos de la carpeta hasta localizar el directorio wp-admin de administración del WordPress que quieres proteger. Una vez localizado pulsa en su nombre.

¿Necesitas ayuda con tu WordPress?

Con nuestros servicios para WordPress podemos resolver cualquier tipo de incidencia que se te presente:

Ver los servicios para WordPress

proteger directorio wp-admin con prelogin

Se cargan 2 formularios, uno encima del otro. En el primero deberás activar la casilla La contraseña protege este directorio. En el campo Escriba un nombre para el directorio protegido se pondrá el texto que se mostrará cuando se cargue el prelogin. Puedes poner algo como «Acceso restringido». Una vez hecho esto pulsa en el botón Guardar.

proteger administración wordpress con prelogin

Verás un texto indicando que se han establecido los permisos con éxito. Pulsa en el enlace Volver.

establecer proteccion adicional de wp-admin

Volverás a la página anterior. Ahora hay que rellenar el formulario inferior donde podrás indicar el usuario y contraseña que se solicitará para acceder al directorio wp-admin de WordPress. Una vez que lo hayas hecho pulsa en el botón Guardar que verás al final.

usuario y contraseña adicional para acceder a la administración de wordpress

¡Listo! Ya tienes el directorio wp-admin protegido con una contraseña adicional.

Proteger un directorio con contraseña desde Plesk

En Plesk el sistema es parecido. Una vez que hayas seleccionado la web tendrás que pulsar en Directorios protegidos con contraseña.

proteger directorio con contraseña en plesk

En la siguiente pantalla pulsa en Añadir directorio protegido.

añadir directorio protegido

Aquí verás un primer formulario. En el campo Nombre del directorio deberás poner /wp-admin. Si tu WordPress carga desde un subdirectorio, por ejemplo miweb.com/web1, deberás especificar el directorio así: /web1/wp-admin. En el campo Nombre del área protegida tienes que indicar el texto que se mostrará en el prelogin. Puedes poner algo como «Acceso restringido». Finalmente pulsa en el botón Aceptar.

proteger directorio wp-admin con plesk

Volverás a la página anterior, pero esta vez verás que en la parte inferior ya se muestra el directorio /wp-admin. Pulsa sobre él para añadir la contraseña.

restringir acceso a administración wordpress

Aquí simplemente tendrás que pulsar en el enlace Añadir un usuario.

añadir un usuario de prelogin en plesk

Llegamos al paso final, donde deberás indicar el usuario y contraseña que se solicitará antes de cargar el directorio wp-admin de administración de WordPress.

añadir usuario y contraseña para proteger administración de wordpress

Resolver problemas tras la activación del prelogin en WordPress

Si todo ha ido bien, cuando accedas al directorio wp-admin de tu WordPress comprobarás que se carga una ventana emergente como la siguiente, donde habrá que introducir el usuario y contraseña que habías configurado.

usar prelogin en la administración de wordpress

Una vez que pongas los datos correctos ya podrás acceder a la administración de WordPress con normalidad, donde te solicitará sus propios datos de acceso.

Sin embargo, es posible que se muestre un error como el siguiente:

reparar error de bucle de redireccionamiento

Esto puede ocurrir debido a la forma que tiene la cuenta de hosting o el propio WordPress de procesar los errores. Para solucionarlo edita el archivo .htaccess que verás en el directorio wp-admin (ojo, no lo confundas con el que hay en la raíz de la web). Aquí verás un código como el siguiente:

AuthType Basic
AuthName "Acceso restringido"
AuthUserFile "/home/nombrecuenta/.htpasswds/public_html/rutaweb/wp-admin/passwd"
require valid-user

Justo encima de dicho código añade la siguiente línea:

ErrorDocument 401 default

Con él se consigue que el error 401 (acceso restringido) se procese con normalidad. Esto debería resolver el error del bucle de redireccionamiento.

Otro tema importante a resolver es que desde el frontal de la web se puede llamar al archivo admin-ajax.php que se encuentra en el directorio wp-admin, para el cual no debería haber restricciones. Para resolver esto edita el archivo .htaccess que hay en el directorio wp-admin y añade el siguiente código al final:

<Files admin-ajax.php>
  Order Allow,Deny
  Allow from All
  Satisfy Any
</Files>

<FilesMatch “\.(css|js|jpg|jpeg|gif|png)$”>
  Order Allow,Deny
  Allow from All
  Satisfy Any
</FilesMatch>

Además del código que permite el acceso al archivo admin-ajax.php he añadido otro código para permitir la carga sin contraseña de imágenes, archivos css y archivos js (javacript).

¿Lo ves complicado? Tranquilo, existen alternativas más sencillas que veremos después.

Limitar el acceso a la administración de WordPress a determinadas IP

Esta es otra alternativa muy eficaz para reforzar la seguridad de la administración de WordPress. Consiste en permitir el acceso al directorio wp-admin únicamente a ciertas IPs. Resulta cómodo ya que así no será necesario introducir nuevas contraseñas como en el método anterior.

Cuando desde tu equipo te conectas a internet, lo haces a través de una determinada IP. Por tanto, si únicamente permites el acceso a wp-admin para tu IP, nadie más podrá entrar en la administración.

Para conseguir esto bastará con añadir un código en el archivo .htaccess (fíjate que lleva un punto al inicio) que hay en el directorio wp-admin. En el caso de que no exista el archivo puedes crearlo. Dentro habrá que añadir el siguiente código al inicio:

order deny,allow
deny from all
allow from <tu_ip>

Aquí tendrás que reemplazar <tu_ip> por la IP pública desde donde te estás conectando. Puedes averiguarla a través de una página como cualesmiip.com.

Sí, por ejemplo, quieres permitir el acceso para las IPs 40.50.60.70 y 12.111.21.56 deberás añadir un código como el siguiente:

order deny,allow
deny from all
allow from 40.50.60.70
allow from 12.111.21.56

Puedes añadir tantas IPs como necesites.

Al igual que lo que vimos en el prelogin, habrá que añadir debajo un código adicional para permitir el acceso al archivo admin-ajax.php y los estáticos desde el frontal de WordPress. Se hace agregando el siguiente código:

<Files admin-ajax.php>
  Order Allow,Deny
  Allow from All
  Satisfy Any
</Files>

<FilesMatch “\.(css|js|jpg|jpeg|gif|png)$”>
  Order Allow,Deny
  Allow from All
  Satisfy Any
</FilesMatch>

Visto esto, hay que tener en cuenta un tema importante antes de utilizar este método de seguridad. En la mayoría de las ocasiones, el servicio que hayas contratado para conectarte a internet te asignará una IP dinámica. Esto significa que la IP pública que tendrás asignada irá cambiando cada cierto tiempo. Si la IP es fija no habrá ese problema.

Una posibilidad para evitar el escollo de la IP dinámica sería conectarse a internet a través de una VPN (red privada virtual). Además de proteger el intercambio de información entre tu equipo y los servidores, normalmente la IP asignada será fija. La herramienta Ciberprotector que había comentado antes dispone de una VPN que podría servir para esto.

Cambiar el nombre del directorio de administración de WordPress con el plugin WPS Hide Login

Hasta ahora hemos revisado métodos para proteger la administración de WordPress sin el uso de plugins. Sin embargo, existen también una buena cantidad de ellos que también sirven para este cometido.

Una buena opción es el plugin WPS Hide Login, muy eficaz y sencillo de configurar. Lo que hace es cambiar el acceso tanto al directorio de admistración de WordPress wp-admin como a la url de inicio de sesión de usuario wp-login.php.

Para instalarlo deberás ir en la administración de WordPress a Plugins > Añadir nuevo. En la caja de búsqueda escribe «WPS Hide Login». Verás que te mostrará el plugin en primer lugar. Ahora pulsa en su botón Instalar ahora. Espera unos segundos a que se instale y, finalmente, pulsa en el botón Activar.

instalar plugin wps hide login

Para configurarlo vete a Ajustes > Generales. Estos son los ajustes generales de WordPress, pero ahora en la parte inferior se mostrará un nuevo apartado creado por el plugin WPS Hide Login.

Aquí verás 2 campos: en URL de acceso podrás indicar la url que se usará para conectarse con la administración de WordPress, tanto al directorio wp-admin, como a wp-login.php. Por defecto pone el valor login, pero te recomiendo cambiarlo por otro algo más complicado, tipo loginadmin, zonaprivada o similar.

En el campo URL de redirección podrás indicar la url a la que se redirijirá al usuario que trate de conectarse a la administración con las urls habituales, que ya no serían válidas gracias al plugin. Puedes dejar el valor 404 (página no encontrada), dejarlo vacío para que vaya a la página de inicio de tu WordPress o llevarlo a una página concreta.

cambiar url de acceso a la administración de wordpress

No te olvides de guardar los cambios una vez que hayas configurado las URLs.

Como puedes ver, este sistema es muy efectivo, ya que la dirección de acceso predeterminada a la administración ya no será válida, y así los intrusos no podrán forzar accesos por fuerza bruta.

Si experimentas cualquier tipo de problema con el plugin, simplemente puedes desactivarlo para volver al estado habitual de acceso a la administración de WordPress.

Limitar los intentos de conexión a la administración de WordPress con el plugin WPS Limit Login

Antes había comentado un sistema muy utilizado de hackeo: el ataque por fuerza bruta. Consiste en ir probando cientos de contraseña de acceso hasta dar con la adecuada. Se trata de un sistema muy efectivo, especialmente cuando se están usando contraseñas no seguras.

Una forma de evitar este tipo de ataques sería limitando el número de intentos fallidos de acceso a la administración de WordPress, de forma que al llegar a una cierta cantidad se bloquee al usuario o robot que esté intentando entrar.

Esto se puede conseguir fácilmente con el plugin WPS Limit Login.

El proceso de instalación será el habitual. Entra en Plugins > Añadir nuevo y escribe «WPS Limit Login» en la caja de búsqueda. Cuando te cargue el plugin pulsa en Instalar ahora y, una vez instalado, pulsa en Activar.

instalar plugin wps limit login en wordpress

Una vez hecho esto podrás acceder a la configuración del plugin desde Ajustes > WPS Limit Login. En la primera pestaña se podrán establecer los parámetros principales.

limitar accesos a la administración de wordpress

En primer lugar podrás establecer el número de intentos permitidos a la administración de WordPress dentro de un intervalo de tiempo configurable. Lo del intervalo tiene sentido, ya que los ataques por fuerza bruta se hacen de forma consecutiva.

A continuación puedes establecer las horas que pasarán hasta restablecer el número de intentos de acceso.

Después puedes aplicar un bloqueo por un tiempo mayor si se producen un cierto número de bloqueos consecutivos, ya que esto suele ser señal de ataque. Además, ofrece la opción de que recibas un correo cuando se ha producido un cierto número de bloqueos desde una determinada IP, por si fuera necesario tomar medidas adicionales.

Los valores que vienen por defecto ya me parecen adecuados, por lo que los puedes dejar como están.

Debajo verás una opción para mostrar el enlace de acreditación. Veo recomendable no activar esta acción, ya que así evitas dar pistas a un posible atacante sobre el plugin que estás utilizando para limitar los accesos.

Dentro de la pestaña Lista Blanca podrás indicar un listado de IPs o rangos de IPs que nunca se verán afectadas por el límite de acceso. Será útil si tu conexión a la administración de WordPress la haces siempre desde la misma IP. Así evitarás bloqueos no deseados.

En la pestaña Lista negra se configura lo contrario. Aquí puedes añadir IPs o rangos de IPs que nunca podrán acceder a la administración de WordPress. Serán bloqueadas directamente. Lo puedes utilizar si detectas intentos continuos de acceso desde una misma IP.

Por último, en la pestaña Registro podrás ver estadísticas de los bloqueos que se han aplicado, lo que te puede servir de guía para ver si estás sufriendo ataques continuos.

Conclusiones

Proteger el acceso a la administración de WordPress es fundamental para evitar disgustos. Por suerte, existen multitud de sistemas para aumentar la seguridad, tal como hemos visto.

Por supuesto, no será necesario que implementes todos los métodos que hemos visto. Con una contraseña realmente segura y algún plugin adicional sería suficiente.

Siempre será recomendable disponer de una sistema de copias de seguridad con el que puedas volver a un estado anterior a un hackeo. Te dará tranquilidad y seguridad en el desarrollo de tu WordPress.

0 comentarios

Enviar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *