Hablar de la importancia de proteger el acceso WP-Admin de WordPress es hablar de seguridad y de la importancia que tiene reducir los niveles de exposición de un sitio web a posibles ataques, ya sean manuales (realizados por personas) o automáticos (realizados por scripts -pueden ser lanzados manualmente a discreción-) que acaban afectando la estabilidad de un sitio web.
Cuando se utiliza reCAPTCHA (dos veces CAPTCHA WordPress) lo que se hace es limitar los ataques a bots y scripts automáticos que no son capaces de pasar el test de Turing que implica un formulario de reCAPTCHA two (re) Completely Automated Public Turing test to tell Computers and Humans Apart (prueba de Turing completamente automática y pública para diferenciar computadoras (ordenadores) de humanos) dificultando el éxito de obtención de credenciales mediante ataques automatizados usando diccionarios.
Si bien no es la solución al 100% de los problemas de seguridad en WordPress (o mejor dicho de inseguridad) que afectan habitualmente al formulario de acceso de WordPress del dashboard, la implementación de reCAPTCHA en formularios de acceso dificulta el éxito de ataques de esta naturaleza mitigándolos por la imposibilidad de que un script o bot pueda resolverlos.
Tabla de contenidos
Proteger el acceso a wp-admin cambiando la ruta de acceso
En otro artículo del blog explicaba cómo modificar wp-login-php o wp-admin sustituyéndolo por otra palabra que no sea común o habitual para reducir con ello las peticiones a admin-ajax.php y en consecuencia evitar los intentos automatizados de ataques de diccionario o automáticos al formulario de acceso de WordPress.
Esto se hace habitualmente con plugins, aunque hay otras formas de ofuscar el login para que no sea blanco de intentos de ataques aleatorios buscando credenciales vulnerables, fáciles de deducir, en sitios WordPress.
Para este caso voy a mostrarte otro plugin, llamado Protect WP Admin y que se limita a realizar el cambio de wp-login-php o de wp-admin por la palabra de ruta que tu quieras de manera que no sea intuitiva ni deducible, y además redirecciona con una redirección 301 a quienes invoquen https://tu-dominio/wp-login-php o https://tu-dominio/wp-admin hacia https://tu-dominio/, lo que sería la página principal de tu web (home) sin posibilidad de que vean el formulario de acceso al dashboard de WordPress.
Haz clic en la imagen para acceder al plugin en WordPress.org
El plugin no tiene mucho misterio y las configuraciones se militan a pedirte el nombre que tendrá el fragmento de URL que sustituirá a “wp-admin”. Adicionalmente permite cambiar el logo de WordPress del formulario de login por uno tuyo, pero no es relevante para lo que nos ocupa.
- Permite definir la URL de inicio de sesión, el tramo relativo a wp-admin.
- Escoger la imagen del formulario de inicio de sesión.
- Permite el acceso al dashboard utilizando ID (identificadores) múltiples, separados por comas.
- Restringe el acceso al dashboard a “invitados”.
- Establecer colores de fondo y de texto para el inicio de sesión.
La versión “de pago” de este plugin cuenta con algunas funcionalidades adicionales como activar un rastreador de inicio de sesión, personalizar la URL a la que serán redireccionados los accesos a wp-admin, o marcar un número limitado de intentos de acceso, entre otras opciones.
La configuración la puedes ver en la siguiente imagen, doinde indicas la palabra que va a sustituir a las nativas de acceso de WordPress, así como el cambio del logo nativo de WordPress.
Con este sencillo procedimiento, mediante el uso de un plugin, puedes conseguir que tu formulario de acceso al panel de administración de WordPress reduzca el impacto de peticiones y de esta manera relajar también un poco el tráfico no deseado automatizado hacia tu web.
Ahora, en este ejemplo, solo será posible acceder al formulario de login de WordPress escribiendo en la url del dominio la palabra correcta en sustitución de wp-login-php o wp-admin.
De lo contrario se aplicará la redirección 301 que llevará al bot, script o usuario a la portada del sitio web una y otra vez.
Proteger el acceso a wp-admin utilizando reCAPTCHA
Otro método es proteger el formulario de acceso al dashboard de WordPress mediante CAPTCHA utilizando un plugin de captcha en WordPress para implementar No Captcha reCAPTCHA de manera que los bots o scripts automáticos que buscan formularios para “reventar el acceso” de forma automática, tengan obligatoriamente que pasar el “test de Turing” algo que solo un humano debería poder hacer.
En este ejemplo hago uso del plugin Login No Captcha reCAPTCHA que permite añadir de forma muy sencilla, en la caja del formulario de acceso al panel de administración de WordPress, debajo, otra caja con el tickbox que debe marcar quien trate de acceder, que sea humano naturalmente.
Claro que este método no está exento de que un usuario malintencionado marque dicha casilla para pasar el test y luego trate de lanzar ataques de diccionario contra el formulario para tratar de adivinar las credenciales de acceso, pero aquí ya entrarían en juego las medidas de mitigación que el proveedor de Hosting interponga para estos intentos de ataque.
Haz clic en la imagen para acceder al plugin en WordPress.org
Ten en cuenta que este plugin no evita los intentos de ataque de fuerza bruta, sino que simplemente se asegura de que estos no tengan éxito.
La configuración del plugin requiere que previamente generes tus claves “pública” y “privada” de CAPTCHA en la herramienta de Google para que luego le pases esos datos al plugin de manera que funcione.
Las llaves pública y privada las puedes crear desde Google reCAPTCHA.
En la imagen puedes ver como ejemplo un dominio para que el se activa reCAPTCHA v2 (recomendado v3) para posteriormente al envío de esta petición, obtener las claves pública y privada que han de añadirse a la configuración del plugin.
Con estos pasos deberías tener el plugin debidamente configurado para que cuando se muestre el formulario de login aparezca debajo el test de Turing con el reCAPTCHA de Google.
Si ahora tratas de acceder con tus credenciales de administrador al dashboard de WordPress, tendrás que marchar el tickbox del reCAPTCHA, además de escribir tu usuario y contraseña de acceso.
>Con este sencillo paso estás aplicando una “capa extra” de seguridad para reducir el impacto no deseado sobre “admin-ajax.php” y que todo quede un poco más seguro.
Conclusiones
Añadir protecciones adicionales para que nadie que no tenga los datos de acceso, es bastante sencillo si tienes claro exactamente qué es lo que quieres proteger y buscas el método de menor impacto para tu web, sobre todo que no se convierta en un malabar que acabe dejándote fuera de tu propio panel de administración por configuraciones incorrecta.
Ya sea reCAPTCHA, “palabras de paso”, sustitución de parte de la URL de acceso al formulario, o restringiendo por IPs en el archivo .htaccess, lo importante es que tomes medidas para evaluar hasta qué punto pequeñas acciones acaban dando resultados importantes.
Si quieres ver qué intentos de acceso se suceden contra tu formulario de login de WordPress, no tienes más que instalar el plugin WP Cerber Security y evaluar durante un tiempo el tráfico en tu sitio y principalmente aquel que el propio plugin frena porque lo detecta como tráfico malicioso contra wp-admin o wp-login.php y por defecto sencillamente lo bloquea.
La seguridad pasiva es parte importante de todo el conjunto de seguridad, tanto el que aplica tu proveedor de Hosting como el que tú deberías aplicar para tu propia tranquilidad, no con hacer “copias de seguridad de WordPress” está todo solucionado. 😉
También te puede interesar:
¿Te ha resultado útil este artículo?
Miembro del equipo de soporte técnico de Webempresa.
Coordinador de contenidos en el Blog y en Youtube.
Soporte técnico en CiberProtector. Teacher en Webempresa University