Proteger el panel de administración de WordPress

Métodos para proteger el panel de administración del CMS.

Para garantizar la seguridad del panel de administración de WordPress, es importante tener en cuenta no solo los métodos de protección basados en software, sino también la infraestructura en la que está alojado el sitio. Tanto si usas web hosting, un VPS o un servidor dedicado, una configuración adecuada del servidor y la aplicación de medidas de seguridad ayudan a minimizar los riesgos. En este artículo repasaremos los principales métodos para proteger el panel de administración de WordPress, aplicables a cualquier tipo de alojamiento.

Para proteger el panel de administración de WordPress puedes:

  • Establecer restricciones de acceso por dirección IP

  • Añadir Google reCAPTCHA al formulario de inicio de sesión para dificultar el ataque de fuerza bruta de contraseñas

  • Cambiar la dirección de la página de inicio de sesión en el panel de administración

  • Instalar autorización adicional mediante .htaccess + .htpasswd

Las ventajas de los métodos anteriores radican en que ofrecen un mínimo sencillo e indispensable de seguridad para WordPress.

Si necesitas una solución integral para proteger el sitio, puedes recurrir al uso de plugins especializados:


RESTRICCIÓN DE ACCESO POR DIRECCIÓN IP

Restringir el acceso al sitio desde la dirección IP 111.111.111.111 en .htaccess:

<FilesMatch  "^(wp-login|wp-config)\.phpquot;>
  Order deny,allow
  Deny from all
  Allow from 111.111.111.111.111 
</FilesMatch>

Restringir el acceso al sitio desde todas las direcciones excepto 111.111.111.111:

Order Deny,Allow
Deny from all
Allow from 111.111.111.111

Puedes consultar cómo restringir el acceso mediante Nginx aquí.

PROTEGER EL PANEL DE ADMINISTRACIÓN CONTRA ATAQUES DE FUERZA BRUTA

Un método sencillo de instalar y eficaz contra los ataques de fuerza bruta de contraseñas es el plugin Login Lockdown.

Descarga el plugin Login Lockdown desde el repositorio oficial de WordPress.org.

Su funcionamiento se basa en que, al alcanzar un número determinado de intentos de acceso fallidos, la dirección IP se añade a la lista negra y el acceso al sitio queda bloqueado. Puedes utilizar este plugin en cualquier tipo de sitio:

  • Instala el plugin Login Lockdown
  • Los ajustes del plugin se encuentran en https://example.com/wp-admin/options-general.php?page=loginlockdown.php.

No es obligatorio configurar el plugin, pero si lo deseas puedes introducir tu propia configuración:

file

Ajustes del plugin Login Lockdown

  • Max Login Retries — Número máximo de intentos de inicio de sesión fallidos tras los cuales se bloquea el acceso desde esa IP. Por defecto, se permiten 3 intentos.
  • Retry Time Period Restriction (minutes) — Período de tiempo durante el cual se permite cometer el número de errores indicado (por defecto, 5 minutos). Si fallas la contraseña 2 veces, debes esperar 5 minutos; de lo contrario, podrías quedar bloqueado.
  • Lockout Length (minutes) — Duración del bloqueo de acceso al sitio en minutos. Por defecto, el acceso por IP se bloquea durante 60 minutos.
  • Lockout Invalid Usernames? — Si se debe aplicar el filtro de Login LockDown también a los intentos de inicio de sesión con un nombre de usuario inexistente. Por defecto: no.
  • Mask Login Errors? — WordPress normalmente muestra mensajes distintos al usuario según si está intentando acceder con un nombre de usuario no válido o con uno válido pero una contraseña incorrecta. Activar esta opción ocultará el mensaje en caso de que el intento de inicio de sesión falle.
  • Show Credit Link? — Si mostrar o no el enlace a la página de Login Lockdown en la página de inicio de sesión. Por defecto está visible, pero puede desactivarse.

Al iniciar sesión, veremos que el sitio está protegido:

file

PROTEGER EL PANEL DE ADMINISTRACIÓN CON CAPTCHA

El plugin Google Captcha (reCAPTCHA) es una solución de seguridad que protege los formularios de tu sitio WordPress del spam, permitiendo que los usuarios reales superen el captcha fácilmente. Puede utilizarse en formularios de inicio de sesión, registro, recuperación de contraseña, comentarios, los principales formularios de contacto y muchos otros.

Instala el plugin Google Captcha (reCAPTCHA)

Ve a los ajustes del plugin en http://example.com/wp-admin/admin.php?page=google-captcha.php

file

Regístrate en Google reCAPTCHA, añade tu sitio, obtén las claves e introdúcelas en los campos que se muestran en la captura de pantalla.

Al iniciar sesión y en el formulario de comentarios, veremos que se ha añadido la verificación captcha.

file

CÓMO OCULTAR LA DIRECCIÓN DEL PANEL DE ADMINISTRACIÓN CAMBIÁNDOLA

WPS Hide Login es un plugin que te permite cambiar de forma sencilla y segura la URL de la página de inicio de sesión por cualquier valor que desees. No renombra ni modifica físicamente los archivos del núcleo, ni añade reglas de reescritura: simplemente intercepta las solicitudes de página y funciona en cualquier sitio WordPress.

Instala el plugin WPS Hide Login

A continuación, en los ajustes del plugin en http://example.com/wp-admin/options-general.php#whl-page-input, especifica la nueva dirección de acceso al panel de administración de WordPress y guarda los cambios.

file

PROTEGER EL PANEL DE ADMINISTRACIÓN CON AUTORIZACIÓN ADICIONAL

file

El proceso consta de dos pasos.

.htaccess En primer lugar, creamos el archivo .htaccess en el directorio del sitio que queremos proteger con contraseña. Como estamos hablando del área de administración de WordPress, creamos el archivo en la carpeta /wp-admin.

AuthType Basic
AuthName
AuthName "Protected Area"
#Ruta al archivo con usuarios y contraseñas .htpasswd
AuthUserFile /home/f45454/mysite.com/public_html/wp-admin/.htpasswd
require valid-user
  • AuthName
    • Nombre de la autenticación. El mensaje se mostrará en el cuadro de introducción de usuario y contraseña. Además, puedes simplemente modificar este mensaje para restablecer las contraseñas guardadas en los navegadores.
  • AuthUserFile
    • Ruta absoluta en el servidor al archivo con usuarios y contraseñas (es decir, .htpasswd). Para conocerla, utiliza la función PHP getcwd() (Get Current Working Directory).

.htpasswd Un archivo con usuarios y contraseñas en el formato usuario:contraseña. La contraseña debe estar en forma cifrada.

Ejemplo:

admin:$apr1$7C3cBu2Z$0ulE5W3hyDTNCCGYaJHlu.

¿Necesitas ayuda?Nuestros ingenieros te ayudarán gratuitamente con cualquier pregunta en minutosContáctanos