# rm-rf.es

Securizar el acceso a wp-admin de WordPress

Seguridad Unix TCP WrappersSiguiendo un poquito con la temática WordPress hoy quería tratar el tema de la securización del acceso a la zona de administración. Tiene lógica que al tratarse de la puerta de entrada a toda la gestión de nuestro sitio queramos tenerla lo más securizada posible.

Por defecto, la entrada a la zona de administración (ejemplo.com/wp-admin/) tiene un sistema de autenticación interno de WordPress que funciona contra la base de datos. El administrador, por defecto accede con el usuario «admin», si dejamos este valor por defecto, el atacante ya tiene el punto de partida para intentar acceder. Por este motivo se recomienda:

Una vez que nuestro usuario administrador está securizado, lo mejor es proceder a añadir una segunda capa de autenticación para la ruta wp-admin, de modo que lo primero que se encuentre el atacante sea la barrera de autenticación básica de Apache, y en el hipotético caso de que la sobrepasara tuviera que enfrentarse también a la de WordPress.

Lo que hacemos entonces es crear, vía el fichero .htaccess dentro de la carpeta «wp-admin» una capa de autenticación. Creamos el fichero con el siguiente contenido:

AuthName "Acceso restringido"
AuthUserFile /home/foo/bar/.htpasswd
AuthType basic
require user miusuario

Nota importante: El fichero .htpasswd, que contendrá los usuarios y passwords con acceso autorizado, debe ubicarse fuera de la ruta pública del sitio web. Podemos añadir los usuarios al mismo desde línea de comandos con el comando htpasswd:

# htpasswd -cb /home/foo/bar/.htpasswd  miusuario mipassword

En este ejemplo, nos generaría el fichero .htpasswd siguiente:

# cat .htpasswd
miusuario:ktRS/8rW/AFm3as3l0/Y

Si no disponéis de un equipo Unix con el comando htpasswd, podéis usar cualquiera de las webs que permiten generar este fichero a través de asistentes.

Con estos dos ficheros ya tenemos una nueva capa de autenticación para acceder a la administración de WordPress. En el caso de que utilicemos las funcionalidades Ajax de la administración de WordPress se recomienda añadir también lo siguiente al fichero .htaccess del directorio «wp-admin»:

<Files admin-ajax.php>
    Order allow,deny
    Allow from all
    Satisfy any 
</Files>

Y finalmente, si tras realizar estos cambios recibimos un error 404 al acceder a la administración o un bucle «Too many redirects error», añadimos la siguiente línea al fichero .htaccess principal del sitio (ojo, al principal, no al de wp-admin):

ErrorDocument 401 default

Existen otras opciones, como modificar el nombre del directorio «wp-admin» para dificultar aún más su exposición a ataques, no obstante con lo comentado en esta entrada debería ser suficiente para tener seguro nuestro acceso a la administración.

Salir de la versión móvil