Categorie
security wordpress

WordPress: Evitare “brute force” via .htaccess

Sempre più spesso dando un’occhiata ai log di sistema vedo attacchi “brute force” sulle pagina di login standard (wp-login.php) di WordPress.
Su alcuni sito sono arrivato ad avere centinaia di tentativi al giorno ma fortunatamente avendo password alfanumeriche da 12 caratteri e non usando l’utente “admin” di default non mi sono mai preoccupato più di tanto.

 

Nel tempo però mi sono reso conto di due grossi problemi problemi:

  1. Banda e sovraccarico del server: in questo caso e stato semplice intervenire e plugin come Simple Login Lockdown hanno reso la cosa molto semplice. In pratica dopo un numero configurabile di tentativi falliti, per un periodo di tempo altrettanto configurabile, viene bloccato l’IP impedendo l’accesso alla pagina.
    Io lo avevo configurato in modo che dopo 3 tentativi venisse bannato per 4 ore.
  2. Utenti Utonti: Questo è stato il problema più grave. Dato che nella maggior parte dei casi non sono io l’utilizzatore del sito ma il mio lavoro termina creado le credenziali per gli utenti che andranno ad operare, succede che per alcuni una password alfanumerica sia troppo complicata. Ecco quindi che di loro iniziativa la modificano con delle robe tipo “la data di nascita del figlio” perchè così è più facile da ricordare. La soluzione a questa “esigenza imprescindibile” l’ho trovata modificando e nascondendo l’url della pagina di login.
    Inizialmente ho usato “hide login” e successivamente anche “better security” ma alla fine ho preferito preparare uno snippet (che trovatre qui sotto) da mettere manualmente nel file .htaccess evitando in questo modo che il plugin possa essere disattivato.

Se volte implementarlo nel nostra installazione vi lascio solo alcune avvertenze in quanto prima di usarlo vanno modificate alcune variabili che sono dipendenti dal vostra configurazione.

[key] = chiave di controllo per il login – es. “0agw7afK” (2 sostituzioni)
[custom-login-path] = nuovo url per la pagina di login – es. “custom-login” (2 sostituzioni)

Attenzione: Prima di metterlo in produzione vi consiglio di provarlo localmente e di fare un backup del vostro precedente .htaccess. (non mi assumo responsabilità).

Rimango comunque disponibile nel caso doveste avere problemi o vogliate segnalarmi come migliorarlo.


update: maggio 2015
ho aggionto il file riducendo il numero di variabili