Seguridad WordPress: proteger el acceso a wp-admin

Uno de los objetivos más importantes para cualquier atacante es el acceso al panel de administración o back-end de nuestro WordPress. Debemos aumentar la seguridad en este punto tratando de protegerlo para mantener nuestra web a salvo de atacantes malintencionados.

Podemos proteger el acceso a wp-admin de varias maneras: mediante reglas en el archivo .htaccess, protegerlo con contraseña a través del archivo .htpasswd, o instalando el plugin Limit Login Attemps.

Proteger wp-admin con .htaccess y .htpasswd

Podemos poner un archivo de apache .htaccess dentro de la carpeta wp-admin, independiente del que tengamos en la raíz del proyecto. Desde este archivo podemos indicar que esta carpeta esté protegida mediante contraseña, apuntando a nuestro archivo .htpasswd, donde guardaremos nuestras credenciales.

Cómo puede observarse podemos establecer un título y tenemos que definir la carpeta donde se guarda nuestro archivo .htpasswd. Ésta ruta debe ser la absoluta de tu servidor, puedes obtenerla con la variable $_SERVER[‘DOCUMENT_ROOT’] de PHP.

Podemos generar un archivo .htpasswd directamente desde consola. Por ejemplo si usas xampp, dirígete desde la consola a /xampp/apache/bin y ejecuta esta línea:

Te habrá generado un archivo .htpasswd con tu usuario y contraseña encriptada, que podrás subir a la ruta que has establecido anteriormente en el .htaccess.

Debemos añadir unas líneas más a nuestro fichero .htaccess que está dentro de wp-admin para que todo siga funcionando correctamente. El API Ajax de WordPress se ejecuta en el archivo wp-admin/admin-ajax-php. Como hemos bloqueado todo el acceso a la carpeta wp-admin, cualquier plugin, tema o widget que utilice el API Ajax, dejará de funcionar, así que vamos a permitir sólo las solicitudes a este archivo en concreto, así como los ficheros css, js e imágenes que también pueden ser utilizadas desde temas, plugins o widgets. El archivo .htaccess completo de nuestro wp-admin quedaría así:

También mediante una regla en el .htaccess podemos limitar el acceso a wp-admin a una IP o IPs concretas. Si dispones de IP fija puedes escribir la siguiente regla:

 

Proteger wp-admin con plugins

Existen varios plugins para limitar o proteger el acceso al wp-admin. Entre ellos podemos encontrar WP htaccess Control, WP htaccess Editor  y Limit Login Attemps.

Los dos primeros te permiten configurar el htaccess para bloquear o limitar el acceso a wp-admin. Limit Login Attemps, te permite configurar el número de intentos de login, así como el tiempo que transcurre para volver a intentarlo. Tiene una versión PRO de pago con más opciones de configuración.

Si te ha gustado, valora este artículo para mejorar la calidad del blog o compártelo en Redes Sociales…
1 Star2 Stars3 Stars4 Stars5 Stars (1 votos, valoración 5,00 sobre 5) Loading...

Web Hosting
  • Pingback: Seguridad Básica y Hacking Ético()

  • Carlos Manuel Díaz Honrado

    Hola una duda.
    En el caso de restringir el acceso mediante IPs, sería necesario habilitar la IP del propio Servidor para que si hubiera plugins, Themes o Widgets que tuvieran que acceder a la API de Ajax pudieran hacerlo?

    Gracias

    • Hola Carlos

      Aunque bloquees el acceso por IP o por usuario/clave, es recomendable que permitas el acceso al archivo admin-ajax.php y a los JS, CSS e imágenes de la carpeta admin:

      Order Allow,Deny
      Allow from All
      Satisfy Any

      Order Allow,Deny
      Allow from All
      Satisfy Any

      • Carlos Manuel Díaz Honrado

        Gracias