A WordPress admin plugin to Customize and secure your WordPress dashboard
Ferma il brute force prima che arrivi alla tua password
La pagina di accesso di WordPress risponde a chiunque, per sempre, con tentativi illimitati. Deskmode ci mette un limite: i tentativi falliti vengono contati, chi insiste viene bloccato per IP e per nome utente, e ogni accesso respinto resta registrato con l'indirizzo da cui è arrivato. Così vedi un attacco mentre sta succedendo, non a cose fatte.
Ogni giorno, ogni server con IP pubblico — cioè praticamente tutti — e ogni dominio vengono bersagliati da migliaia di tentativi di accesso al login o ai file nelle cartelle di cui gli attaccanti conoscono bug e falle da sfruttare per prendere possesso di siti o di interi sistemi.
Se non sei un amministratore di sistema, o non installi un plugin che tiene traccia del traffico in ingresso sulle pagine di WordPress, è praticamente impossibile venire a conoscenza del problema. La maggior parte degli utenti ignora infatti che ogni macchina online è costantemente bersagliata da bot che la pingano, controllano le porte TCP aperte, cercano file con vulnerabilità note e, soprattutto, cercano le pagine di accesso dei siti web.
Bloccare sul nascere questi tentativi è la soluzione migliore per proteggere i propri server e i propri siti. Deskmode Pro nasce anche per questo: dare un’idea immediata di chi ha tentato di accedere alle tue pagine, e quando.
Escludere dal login chi non ha motivo di arrivarci — o meglio, consentire l’accesso alla pagina di WordPress soltanto dalla nazione in cui risiedono gli amministratori — è il modo più efficace per salvaguardare il proprio sito.
Proteggere il login di WordPress: Come funziona
Ogni accesso fallito viene contato su due chiavi separate: l'indirizzo IP da cui arriva la richiesta e il nome utente che è stato provato. Superata la soglia che hai impostato, quell'IP e quel nome utente restano bloccati per la durata che hai scelto. Chi attacca non riceve un errore che spiega cosa è successo: il form semplicemente smette di accettarlo.
Contare su entrambe le chiavi non è un dettaglio. Una singola macchina che martella un solo account la ferma il contatore sull'IP. Un attacco distribuito, che prova la stessa password comune da migliaia di indirizzi diversi, non fa scattare nessun limite per IP, ma insiste sempre sullo stesso nome utente: ed è lì che interviene il secondo contatore.
Il tuo indirizzo IP viene memorizzato quando salvi le impostazioni e non viene mai bloccato dalle tue stesse regole. Se lavori da un indirizzo fisso puoi fissarlo in modo permanente nella lista di esclusione. C'è anche una costante da inserire in wp-config.php per disattivare l'intero modulo dall'esterno della bacheca, per il giorno in cui qualcosa va storto alle tre di notte.
Ogni accesso respinto viene salvato con data e ora, nome utente provato, indirizzo IP, Paese e user agent. L'elenco è filtrabile, quindi puoi isolare un singolo indirizzo e vedere da quanto tempo insiste e su quali account. Da lì un clic ti porta allo strumento di ricerca IP per il proprietario della rete e il numero AS, e un altro blocca l'indirizzo, o il suo intero Paese, tramite geofencing.
È questa catena il senso del modulo: non limitarsi a respingere il tentativo, ma permetterti di risalire a dove è nato e chiudere la porta nella stessa sessione.
Un punto di partenza ragionevole: cinque tentativi, blocco di quindici minuti e contatore orario attivo. Ferma le scansioni automatiche senza mai dare fastidio a un cliente che sbaglia la password due volte.
Il tuo sito blocca tentativi di accesso ogni giorno, e sa da quale indirizzo arrivano. Lo stesso fa ogni altro sito con Deskmode. Presi singolarmente quei blocchi dicono poco; messi insieme diventano una cosa che nessun sito da solo può sapere: quali indirizzi stanno attaccando siti WordPress in questo momento.
Attivando la funzione, una volta al giorno il plugin invia al nostro servizio gli indirizzi che ha bloccato e riceve quelli segnalati dagli altri. Nella schermata Sicurezza login compare un elenco con la nazione, quanti siti diversi hanno segnalato quell'indirizzo e quando è successo l'ultima volta, più un grafico dell'andamento degli ultimi sette giorni.
Gli indirizzi segnalati non finiscono da soli nella tua blocklist: compaiono in un elenco con un pulsante Blocca accanto a ciascuno, e decidi tu. È una scelta deliberata, non una mancanza. Un indirizzo finito nella lista per errore — una VPN aziendale, un provider condiviso da centinaia di siti — verrebbe respinto su tutti i siti contemporaneamente, e te ne accorgeresti solo dalle telefonate dei clienti che non riescono più a entrare.
Solo gli indirizzi IP che hai già bloccato. Nessun contenuto, nessun dato dei visitatori, nessun nome utente. Il tuo sito viene identificato da un codice a senso unico calcolato sul dominio: il servizio sa quanti siti hanno segnalato un indirizzo, non quali. E la funzione è spenta di serie: finché non spunti la casella, non parte nessuna richiesta.
I servizi di reputazione generalisti raccolgono segnalazioni da qualunque fonte e per qualunque tipo di attacco: scansioni di porte, invio di posta indesiderata, tentativi su servizi che non hai. Questa lista nasce da siti WordPress e da tentativi contro l'accesso di WordPress. Un indirizzo che ha appena provato duecento password su un altro sito è esattamente ciò che ti serve sapere prima che arrivi da te.
Un indirizzo compare nella lista condivisa solo dopo che almeno tre siti diversi lo hanno segnalato, entro una finestra di trenta giorni. Serve a evitare che una segnalazione isolata, o un sito configurato male, faccia finire nella lista di tutti un indirizzo legittimo. Ogni sito conta come un voto solo, per quante volte segnali lo stesso indirizzo.
Reciprocità. La lista esiste perché i siti che la usano la alimentano. Se preferisci non partecipare, lascia la casella spenta: tutto il resto del plugin funziona esattamente come prima, e non ricevi la lista.
proteggere il login di WordPress: Domande frequenti
Cinque risposte su limite dei tentativi, elenchi di indirizzi, proxy e reputazione degli IP.
Decidi quanti tentativi falliti sono ammessi e per quanti minuti l’indirizzo resta bloccato dopo averli superati. Un attacco che prova password a raffica esaurisce il credito nei primi secondi e poi trova la porta chiusa, mentre chi ha semplicemente sbagliato a digitare rientra dopo pochi minuti.
È la protezione più efficace per gli attacchi brute force a WordPress in rapporto a quanto costa configurarla, perché non richiede di sapere nulla dell’attaccante: agisce sul comportamento, non sulla provenienza. Sopra ci puoi mettere il filtro per nazione, sotto restano i due fattori.
Con la blocklist manuale, è possibile bloccare un indirizzo IP in WordPress o una classe di indirizzi. E' possibile bloccare indirizzi singoli, blocchi con la notazione CIDR come 198.51.100.0/24 o con caratteri jolly come 192.168.1.*. Il modo più rapido per inserire un IP nella blacklist è il pulsante "Blocca" accanto a ogni indirizzo nel registro attività: lo aggiunge senza ricaricare la pagina.
La allowlist ha sempre la precedenza sulla blocklist. Se un indirizzo compare in entrambe passa, e per questo motivo il pulsante Blocca non viene nemmeno mostrato accanto agli indirizzi autorizzati: sarebbe una promessa che il sistema non mantiene.
Sì, ma devi dirlo al plugin. Dietro un proxy o una CDN il server vede l’indirizzo del proxy e non quello del visitatore, quindi senza l’opzione attiva bloccheresti o consentiresti sempre lo stesso indirizzo, cioè nessuno.
La schermata se ne accorge da sola: quando rileva intestazioni tipiche di un proxy mostra un avviso con l’indirizzo riportato dall’intestazione e quello visto dal server, in modo che tu possa confrontarli. Se corrispondono al tuo caso, spunti l’opzione e da quel momento tutte le regole lavorano sull’indirizzo reale.
Con una chiave gratuita di AbuseIPDB ogni indirizzo bloccato mostra un punteggio di affidabilità basato sulle segnalazioni ricevute da altri amministratori in tutto il mondo. Un indirizzo con punteggio alto è già noto per abusi, e la decisione di metterlo in blocklist diventa immediata.
È facoltativo e disattivo di serie: senza chiave il resto funziona esattamente allo stesso modo. Il piano gratuito copre mille controlli al giorno, che su un sito normale sono abbondanti.
Al salvataggio il tuo indirizzo attuale viene aggiunto automaticamente alla allowlist, proprio perché il momento in cui si sbaglia è quello in cui si configura la regola.
Se il danno accade lo stesso, per esempio perché il tuo indirizzo è cambiato, la costante ADMIN3WEBBLUE_DISABLE_LOGIN_GUARD in wp-config.php sospende le protezioni dall’esterno della bacheca. E puoi farti avvisare via email a ogni blocco e a ogni accesso riuscito da un indirizzo mai visto prima, così te ne accorgi mentre succede.