WordPress: solución a error de intentos de acceso fallidos

Hoy se nos presentó un pequeño problema en Manzana Virtual. Por alguna razón cada vez que intentamos acceder al escritorio de nuestro blog nos aparecía el mensaje “ERROR: Demasiados intentos de acceso fallidos. Por favor inténtalo de nuevo en 12 horas”. Apagábamos el router, eliminábamos las cookies de nuestro navegador, apagábamos la pc, intentábamos nuevamente desde la misma pc, desde una laptop, desde el ipad, y nada. Simplemente estábamos baneados y sólo nos quedaba esperar 12 horas para que se nos permitiera reintentar el acceso a nuestro propio blog. Intentamos acceder a otro de nuestros blog y allí el problema fue mayor: se nos pedía que intentáramos nuevamente dentro de 23 horas.

bloqueo-limitar-intentos-1

Luego de averiguar un rato caímos en cuenta que el problema se debía a que nuestra instalación de WordPress está configurada para limitar los intentos de acceso a la administración del blog y banear temporalmente a quienes no logren ingresar la contraseña correcta del sistema. Es una utilidad que muchos blogueros agregan a sus portales wordpress mediante un plugin llamado Limit Login Attempts (u otros similares) y que evita que los hackers realicen un ataque masivo a tu blog para dar con su contraseña de acceso mediante ilimitados intentos. En nuestro caso la utilidad ya viene preconfigurada en la instalación que ha hecho nuestro proveedor de hosting (Goddady) por lo que ni siquiera hemos tenido vela en ese entierro.

El problema es que esa utilidad no sólo impide accesos no autorizados de hackers, sino que en ocasiones puede impedir el acceso al propio titular de la cuenta. Obviamente al hacker no le perjudica que un blog le impida el acceso, porque él simplemente se marcha y sigue buscando otros blogs que no estén protegidos. En cambio el titular del blog sí se ve perjudicado porque al ser baneado de su propio portal por 12 a 24 horas estará impedido de postear, de aprobar comentarios, de responder a sus lectores, etc. durante todo el tiempo que el sistema le ha bloqueado.

¿Qué hacer entonces?. ¿Esperar las 12 horas (o el tiempo de bloqueo que el sistema haya fijado) y luego eliminar el plugin?. No parece ser la mejor opción porque el tiempo de espera desespera y porque desactivar la configuración de límite de accesos fallidos desprotegería el blog y la expondría a ciberataques (de hecho como verán en la imagen final de este post nuestro blog ha tenido hasta hoy 5,099 intentos de acceso no autorizados desde IPs ubicados en distintas partes del mundo, incluyendo servidores rusos y chinos, que han probado con nombres de usuarios que felizmente no tenemos como: user, admin, root, test, etc).

Por ende la mejor opción es mantener la limitación de intentos de acceso fallidos pero eliminar el bloqueo temporal que nos ha impuesto el sistema. ¿Se puede?. Claro que sí. Gracias a un post del sitio wpbegginer.com pudimos enterarnos que el titular de la cuenta puede desbloquear el acceso borrando un registro de la base de datos del blog. Eso se logra accediendo a la base de datos mediante phpMyAdmin y efectuando la siguiente consulta SQL:

UPDATE wp_options SET option_value = ” WHERE option_name = ‘limit_login_lockouts’ LIMIT 1;

Partimos de la base de que todo administrador de blogs wordpress sabe cómo acceder al phpMyAdmin (si en tu caso particular no sabes cómo hacerlo puedes solicitar a tu proveedor de hosting que te brinde la dirección, el usuario y la contraseña para acceder a tu phpMyAdmin). Al acceder al sistema deberás ingresar el usuario y contraseña que tu proveedor de hosting debe haberte proporcionado cuando contrataste el servicio.

bloqueo-limitar-intentos-2

Una vez dentro del phpMyAdmin pulsas en el nombre de tu base de datos que aparece en la columna izquierda de la pantalla y luego pulsas en la pestaña “SQL” que aparece en la parte superior derecha.

bloqueo-limitar-intentos-3

Con eso se mostrará un recuadro de texto en el que hay que ingresar la instrucción “UPDATE wp_options SET option_value = ” WHERE option_name = ‘limit_login_lockouts’ LIMIT 1;” (sin las comillas iniciales y finales) y presionar el botón “Continuar”.

bloqueo-limitar-intentos-4

De inmediato podremos leer un mensaje de texto que nos indicará que la consulta duró tantos segundos y que hay 1 fila afectada. Eso significa que el registro de la base de datos ha sido actualizada borrándose el bloqueo del límite de acceso. Así que cerramos la pestaña del phpMyAdmin.

bloqueo-limitar-intentos-5

Acto seguido intentamos nuevamente acceder al blog y ahora ya no nos aparecerá el mensaje de error que nos impedía ingresar. ello nos posibilita introducir el usuario y la contraseña correcta y… listo.

bloqueo-limitar-intentos-6

Una vez dentro del escritorio de nuestro blog WordPress podemos empezar a trabajar como siempre, pero quizás sea mejor modificar algo la configuración de la protección de accesos (esto es opcional y queda a criterio de cada administrador de blog). Para ello hay que ir a la sección Ajustes, y pulsar en la opción “Limitar intentos de inicio de sesión”. Con ello tendremos a la vista valiosa información (por ejemplo, en la imagen se puede advertir que el sistema ha bloqueado 5,099 intentos de acceso no autorizados a nuestro portal, y aunque la imagen no lo muestra esos intentos provienen de sitios rusos, chinos, europeos, americanos, etc). Pero lo importante para nosotros es el recuadro “Bloqueo” porque es allí donde podemos modificar los valores por defecto. Así, para que en oportunidades futuras no tengamos necesidad de esperar de 12 a 24 horas para acceder a nuestro blog, ni de ingresar al phpMyAdmin para eliminar el registro, se puede variar a 5 minutos el bloqueo (por defecto está fijado en 20 minutos) y fijar en 1 hora el incremento del bloqueo en caso de 4 bloqueos consecutivos (por defecto está fijado en 24 horas). ¿Qué se logra con eso? Pues se logra garantizar que los hackers sean impedidos de acceder a nuestro sitio, y que si por error somos nosotros mismos los baneados sólo tendremos que esperar cinco minutos (o en el peor de los caso una hora) para que se nos permita reintentar el acceso.

bloqueo-limitar-intentos-7

Eso es todo amigos. Espero que este tutorial les sirva de algo. Hasta pronto