Indice
Proteggere la dashboard di amministrazione di WordPress: la guida completa
Le operazioni che è possibile effettuare per aumentare la sicurezza dei siti web realizzati con WP sono numerose e vanno dalla dall’attuazione di pratiche antispam fino all’oggetto di questo articolo: la protezione della dashboard di amministrazione.
Per proteggere la dashboard di amministrazione di WordPress è necessario agire su più fronti, prevenendo gli accessi non autorizzati, assegnando i giusti permessi agli utenti ed evitando l’aggiunta di utenti non autorizzati. Il login tramite password, impostato di default, è certo utile come protezione di base, ma non è sempre sufficiente per evitare che hacker e malintenzionati riescano ad accedere e a mettere le mani su dati riservati o a compromettere il funzionamento – e la sicurezza – del sito.
Sui piani Hosting WordPress, e sugli altri piani su cui è possibile installare WordPress, è attivo il VHosting WP Security che effettua alcuni check e blocchi su alcune tipologie di attacchi.
Di seguito verranno forniti alcuni suggerimenti per proteggere wp-admin e, laddove necessario, verranno mostrati tutti i passaggi da seguire.
Autenticazione a due fattori
L’autenticazione a due fattori, nota anche come 2FA, permette di aggiungere un secondo livello di sicurezza alla pagina di accesso della dashboard di amministrazione. Questo viene fatto affiancando alla password un codice di verifica univoco, generato di volta in volta tramite app di autenticazione.
Per aggiungere questo ulteriore passaggio di sicurezza al proprio sito web è possibile utilizzare plugin specifici, i quali vanno generalmente affiancati a un’app di autenticazione, da installare sul proprio smartphone. Per la realizzazione di questo tutorial si è scelto di utilizzare l’abbinamento Google Authenticator (una delle app più note, disponibile sia per Android sia per dispositivi Apple) e Wordfence Login Security, plugin disponibile anche in versione free che, come si vedrà più avanti, permette di abilitare anche altri parametri di sicurezza.
Tanto per cominciare, installare l’app sul proprio device e il plugin dalla dashboard del sito. Dopo essere stato attivato, il plugin richiederà l’inserimento del numero di licenza. Questo passaggio è molto semplice e deve essere effettuato anche da chi decide di utilizzare la versione gratuita.
Per procedere:
- premere su “Get your Wordfence license”
- scegliere, nella nuova schermata, la licenza di proprio interesse (ad esempio quella free; in questo caso sarà poi necessario confermare la scelta cliccando su “I’m OK waiting 30 days for protection for new threats”)
- inserire il proprio indirizzo email, decidere se ricevere alla casella di posta alert sulla vulnerabilità e la sicurezza di WP, accettare i termini e le condizioni d’uso e premere “Register”.
La chiave di licenza viene immediatamente inviata alla casella di posta indicata. Per attivarla automaticamente, è sufficiente premere il pulsante “Install My License Automatically” e poi “Install license”. Se tutto è andato a buon fine, comparirà la seguente schermata:
Premere il pulsante “Go to dashboard” e poi “Login Security” (a sinistra) per iniziare a configurare l’autenticazione a due fattori. Ecco come si presenta la scheda “Two-Factor Authentication”:
A questo punto, aprire l’app, selezionare “Aggiungi un codice” e poi “Scansiona un codice QR”. Scansionare il QR code, inserire il codice visualizzato nello spazio in basso a destra (quello che nell’immagine sopra contiene i numeri “123456”) e premere “Active”. Per evitare problemi nel caso in cui non si riuscisse ad accedere tramite app, scaricare i 5 codici di login e salvarli in un posto sicuro.
Tra le più valide alternative a Google Authenticator rientra Duo Mobile.
Limitare i tentativi di accesso:
Seconda operazione consigliata per proteggere la dashboard di WordPress è la limitazione dei tentativi di accesso, utile per prevenire gli attacchi brute force, ossia quelli tramite i quali i malintenzionati provano tutte le combinazioni possibili per individuare la password corretta. Oltre a evitare accessi forzati e indesiderati, limitare i tentativi aiuta anche a individuare per tempo attività sospette.
Anche questa operazione può essere effettuata, su WordPress, ricorrendo a dei plugin, compreso Wordfence. Valide alternative sono offerte a Limit Login Attempts Reloaded e Limit Attempts by BestWebSoft.
Se si è già proceduto con l’installazione di Wordfence:
- andare su “Wordfence / All Options”, quindi scorrere la pagina fino a “Firewall Options” ed estendere (tramite clic sulla freccetta a destra) la sezione “Brute Force Protections”
- modificare:
- “Lock out after how many login failures” per bloccare gli IP dopo un certo numero di tentativi di accesso non andati a buon fine (di default sono consentiti 20 tentativi di accesso)
- “Count failures over what time period” per stabilire l’arco di tempo entro il quale vengono presi in considerazione i tentativi errati (di default, sono concessi 20 tentativi in 4 ore)
- “Amount of time a user is locked out” per aumentare o diminuire la durata del blocco dell’IP.
È inoltre possibile bloccare immediatamente gli IP degli utenti che inseriscono username non valide (selezionare la casella “Immediately lock out invalid usernames”) o uno dei nomi utente inseriti nella casella di testo “Immediately block the IP of users who try to sign in as these usernames”.
Cambiare l’URL di accesso
Un altro metodo utile per proteggere la dashboard di amministrazione di WP consiste nel modificare la URL di accesso, la quale, di default, è composta dal nome del dominio seguito da “/wp-admin”. Per rendere meno prevedibile l’indirizzo della pagina di login e ridurre il rischio che gli hacker lo individuino con eccessiva facilità, è possibile utilizzare plugin come WPS Hide Login.
Per procedere, installare e attivare il plugin come di consueto, quindi andare su “Impostazioni / WPS Hide Login”, inserire il nuovo indirizzo nella casella “URL di accesso” e premere “Salva le modifiche”.
Aggiungere una seconda password tramite .htaccess
Chi ha un po’ più di esperienza e non ha paura di mettere mano a codici e regole di configurazione, può implementare alcuni sistemi di protezione agendo direttamente sui file.
.htaccess consente ad esempio di creare una sorta di autenticazione a due fattori (o per meglio dire, in questo caso, doppia autenticazione) per l’accesso alla dashboard attraverso l’aggiunta di una seconda password. Per fare questo è necessario:
- posizionarsi nella cartella “wp-admin” e creare un nuovo file “.htaccess” (il file non ha nome e deve essere identificato esclusivamente tramite l’estensione, ossia, appunto “htaccess”)
- aggiungere i seguenti comandi:
AuthName "Protected Area" AuthType Basic AuthUserFile /percorso/file/.htpasswd Require valid-user
Al posto di “Protected Area” può essere inserito qualsiasi testo, mentre “/path/to/.htpasswd” deve contenere il percorso assoluto che conduce fino al file “.htpasswd” che verrà creato fra poco. Salvare;
- creare, sempre nella cartella wp-admin, un secondo file, sempre privo di nome e con estensione “.htpasswd”
- inserire all’interno di questo nuovo file i nomi utente (uno per riga) che possono accedere alla dashboard solo con tramite autenticazione. Far seguire ogni nome dal simbolo dei due punti e dalle relative password crittografate. Non lasciare spazi;
- salvare anche questo secondo file.
A questo punto, quando uno degli utenti aggiunti cercherà di effettuare l’accesso alla dashboard di WordPress, si vedrà richiedere, dopo l’inserimento della prima password, anche la seconda, attraverso una schermata di questo tipo:
Img 4c
In alternativa, è possibile abilitare la doppia autenticazione modificando direttamente il file .htaccess presente nella directory principale del sito. L’unica differenza, in questo caso, consiste nell’aggiungere <Files wp-login.php> prima delle regole e </Files> dopo le regole. Naturalmente, sarà necessario modificare anche il percorso del file .htpasswd.
Restringere l’accesso per IP
Sempre agendo sui file .htaccess, è possibile restringere l’accesso alla pagina di login della dashboard di WP a indirizzi IP specifici. In questo caso, le regole possono essere aggiunte direttamente al file presente nella directory principale del sito. Per evitare problemi, è consigliabile salvare una copia del file prima di apportare modifiche ed effettuare un backup del sito.
Il codice da aggiungere è il seguente:
<Files wp-login.php> order deny,allow deny from all allow from xxx.xxx.xxx.xxx </Files>
“xxx.xxx.xxx.xxx” deve essere sostituito con l’indirizzo IP al quale si vuole permettere di accedere alla pagina di login. Se si vuole permettere di accedere a più IP, non si deve fare altro che ripetere la riga “allow from” seguita dall’indirizzo da abilitare.
Bloccare la modifica tramite editor di plugin/temi da wp-admin
Un ulteriore passaggio che consente di proteggere ancora di più la dashboard di amministrazione di WordPress o, per meglio dire, in questo caso, di impedire particolari azioni che potrebbero essere effettuate tramite dashboard e che potrebbero danneggiare gravemente il sito, consiste nel disattivare per tutti gli utenti la possibilità di apportare modifiche ai codici di temi e plugin attraverso il pannello di controllo di WP.
Anche in questo caso, è necessario agire sui codici, ma, anziché il file .htaccess, si deve modificare il wp-config.php. Una volta individuato il file, non si deve fare altro che aprirlo, aggiungere la riga di codice
define('DISALLOW_FILE_EDIT', true);
e salvarlo.
Fatto questo, le modifiche potranno essere apportate solo più tramite cPanel o pannello di controllo, o via FTP.
Controllare gli utenti per proteggere la dashboard di amministrazione: le buone pratiche da seguire
Tra le buone pratiche che consentono di proteggere al meglio la dashboard di amministrazione dei siti realizzati con WP rientrano quelle relative alla corretta gestione e al controllo degli utenti. In particolare è possibile:
- impedire a qualsiasi utente di registrarsi senza autorizzazione: per disabilitare le registrazioni non autorizzate degli utenti, andare su “Impostazioni / Generali” e accertarsi che la casella “Iscrizione – Chiunque può registrarsi” non sia selezionata. Nel caso in cui lo fosse, togliere il check e premere “Salva le modifiche” a fondo pagina;
- ricevere notifiche in caso di nuovi iscritti: un buon metodo per tenere sotto controllo gli utenti, senza dover togliere loro la possibilità di iscriversi, consiste nell’attivare l’invio di notifiche in caso di nuove iscrizioni al sito. Per fare questo, è possibile installare un plugin come New User Approve, il quale richiede agli amministratori di approvare ogni nuova iscrizione;
- controllare che nessun utente abbia un ruolo superiore rispetto a quello necessario: i ruoli di WordPress consentono di definire quali azioni e modifiche possono essere effettuate dai singoli utenti, nonché quali aree della dashboard di amministrazione possono essere visitate. Per controllare ed eventualmente modificare i ruoli, andare su “Utenti / Tutti gli utenti” e controllare i ruoli di ognuno;
- controllare periodicamente la lista degli utenti: per accertarsi che non siano stati aggiunti utenti indesiderati, è utile accedere periodicamente alla pagina “Utenti / Tutti gli utenti” per verificare la presenza di utenti sospetti e procedere con la loro eliminazione. Per fare questo, passare con il puntatore sul nome dell’utente e premere “Elimina”;
- impedire ad alcuni ruoli utente di accedere alla dashboard: nel caso in cui si volesse bloccare, per alcuni ruoli utente, l’accesso al pannello di amministrazione di WordPress, sarebbe possibile ricorrere a plugin dedicati come Remove Dashboard Access. Dopo averlo installato e attivato, andare su “Impostazioni / Dashboard Access” e selezionare i ruoli ai quali si desidera concedere l’accesso (“Administrators only”, “Editors and Administrators”, “Authors, Editors, and Administrators” oppure utilizzare la funzione avanzata “Limit by capability”). Salvare le modifiche prima di abbandonare la pagina;
- disconnettere automaticamente gli utenti quando sono inattivi: la disconnessione automatica degli utenti inattivi è utile in particolar modo per prevenire incidenti – quale ad esempio l’accesso ad aree riservate della dashboard di persone non autorizzate – nel caso in cui venisse effettuato il login da device utilizzati da più persone. Anche questa funzione può essere attivata utilizzando un plugin. Tra i migliori e di semplice utilizzo rientra Inactive Logout.
Per finire, è utile ricorrere a plugin di Log come Action Log e Simple History, che permettano di tenere traccia di tutte le azioni compiute dagli utenti, così da poter individuare con maggiore facilità, in caso di problemi sul sito, i responsabili delle azioni dannose, nonché a plugin di sicurezza come iThemes Security e il già citato WordFence, utili per tenere sotto controllo la dashboard e gli utenti a 360°.