Una de las medidas para prevenir ataques de fuerza bruta en WordPress es protegiendo el inicio de sesión con contraseña usando HTTP Basic Authentication. Esta capa de seguridad se configura directamente en el servidor web, Apache2 por ejemplo. Este método permite proteger con contraseña el acceso a determinadas áreas de un servidor, archivos o carpetas, previamente a la ejecución de PHP. Al no ejecutar PHP, el consumo de recursos del servidor es mucho menor y el colapso es más difícil. Por esta razón es una manera más eficaz que usar un plugin.
Un ataque de fuerza bruta a WordPress consiste en multitud de intentos de iniciar sesión, multitud de peticiones al archivo wp-login.php
. Esto puede hacer que el servidor colapse por una sobrecarga de tráfico. Para evitarlo podemos proteger el archivo wp-login.php
usando HTTP Basic Authentication.
En este artículo se explica cómo configurar Apache2 para proteger wp-login.php
con contraseña. La idea es la misma para cualquier servidor web.
Proteger el archivo wp-login.php con contraseña en Apache
La siguiente configuración hay que añadirla al archivo principal de configuración de Apache o al del virtual host:
<Directory "/ruta/a/raiz/de/wordpress"> <Files "wp-login.php"> AuthType Basic AuthName "Acceso restringido" AuthUserFile /ruta/a/htpasswd/configfile Require user username </Files> </Directory>
Previamente hay que generar la contraseña para el username, como se explica en este otro tutorial de voragine.net.
Seguridad adiciona: proteger el directorio wp-admin
Para más seguridad se puede proteger además todo el directorio wp-admin
y crear una excepción para el archivo admin-ajax.php
.
<Directory "/ruta/a/raiz/de/wordpress/wp-admin"> AuthType Basic AuthName "Acceso restringido" AuthUserFile /ruta/a/htpasswd/configfile Require user username <Files "admin-ajax.php"> Order allow,deny Allow from all Satisfy any </Files> </Directory>
Tras modificar la configuración solo queda reiniciar Apache:
service apache2 restart
Hay más maneras de evitar ataques de fuerza bruta, pero éste es uno de los más eficaces y más sencillo de poner en marcha.