1. Instala y activa
En WordPress ve a Plugins → Añadir nuevo → Subir plugin, elige el zip del plugin y actívalo. En el menú aparece la entrada «Hardening», abierta en la pestaña Estado. Todos los interruptores están apagados: el sitio queda como antes.
2. Consulta la pestaña Estado
Las líneas rojas y amarillas dicen qué falta y dónde se remedia. Algunas se resuelven con un interruptor del plugin; otras (HTTPS, un administrador que se llama «admin», la versión de PHP, los permisos de los archivos) se arreglan en WordPress o en el hosting, y la pestaña te dice cómo.
3. Aplica los ajustes recomendados
Un botón activa las protecciones adecuadas para casi todos los sitios. Luego repasa las demás: XML-RPC si usas Jetpack, REST API privada si el sitio tiene formularios o una tienda, comentarios si los usas. Cada interruptor dice qué cambia antes de que lo actives.
4. Activa el segundo factor
Desde tu perfil: enfoca el QR con la app, escribe el primer código y guarda los diez códigos de emergencia. Los demás administradores tienen el periodo de gracia para hacer lo mismo; quien no lo haga, al vencimiento solo podrá abrir el perfil hasta que complete la activación.
5. Verifica Servidor, Registro y Notificaciones
En la pestaña Servidor mira el panel de las cabeceras y la vista previa de las reglas .htaccess, y luego guarda: el plugin las verifica con peticiones al sitio. Activa el registro y elige los eventos que quieres recibir por email, con el email de prueba para comprobar que llegan.
6. Conserva los ajustes
En la pestaña Herramientas descarga el archivo JSON con todos los ajustes y guárdalo con las copias de seguridad. En otro sitio súbelo, lee la vista previa de lo que cambia e importa: los ajustes ligados al sitio (proxy y direcciones) quedan fuera hasta que tú los marques.
wp-config.php: las vías de salida y la clave de los secretos
// Suspends the IP lockouts
define( 'LOBBIT_HARDENING_NO_LOCKOUT', true );
// Suspends the second factor
define( 'LOBBIT_HARDENING_NO_TWO_FACTOR', true );
// No writing of the .htaccess files (the rules are shown to copy by hand)
define( 'LOBBIT_HARDENING_NO_HTACCESS', true );
// Own key for the secrets of the second factor, to set before the users enable it
define( 'LOBBIT_HARDENING_KEY', '...' );
WP-CLI: el segundo factor de un usuario, los ajustes
wp lobbit-hardening two-factor status <user>
wp lobbit-hardening two-factor reset <user>
wp lobbit-hardening settings export lobbit-hardening.json
wp lobbit-hardening settings import lobbit-hardening.json --dry-run
PHP: un plugin para el segundo factor que el plugin no conoce
add_filter( 'lobbit_hardening_two_factor_plugins', function ( $found, $active ) {
if ( in_array( 'my-2fa/my-2fa.php', $active, true ) ) {
$found['my-2fa/my-2fa.php'] = 'My 2FA';
}
return $found;
}, 10, 2 );
PHP: la dirección del visitante, para un hosting que los ajustes no cubren
add_filter( 'lobbit_hardening_client_ip', function ( $ip ) {
// Only when every request really comes through that proxy
return $_SERVER['HTTP_X_REAL_IP'] ?? $ip;
} );
Otro filtro: lobbit_hardening_two_factor_api_login, para decidir qué accesos por programa (XML-RPC, REST API) no tienen una página para el código. En nginx la pestaña Servidor muestra los bloques location que hay que copiar en la configuración del servidor.