Vai al contenuto
BeoHosting
BeoHosting
Sicurezza

Come proteggere il pannello di amministrazione di WordPress

BeoHosting Team··9 min read di lettura
Come proteggere il pannello di amministrazione di WordPress

Perché proteggere il pannello di amministrazione è fondamentale

Il pannello di amministrazione di WordPress è il bersaglio più frequente degli hacker, perché l'accesso al pannello concede il controllo completo del sito. Ogni sito WordPress ha una pagina di login predefinita su /wp-admin o /wp-login.php, ed è cosa nota a tutti. I bot automatici tentano di accedere a questi URL 24 ore su 24 con attacchi di forza bruta, dizionari di password e credenziali rubate da violazioni di dati. Secondo le statistiche, un sito WordPress medio riceve oltre 10.000 tentativi di accesso non autorizzati al mese.

Un pannello di amministrazione compromesso permette all'aggressore di installare malware, rubare i dati degli utenti, usare il server per inviare email di spam, inserire pagine di phishing o cancellare del tutto il sito. Le conseguenze possono essere catastrofiche: perdita di fatturato, danno alla reputazione, problemi legali derivanti dalla fuga di dati e inserimento nella blacklist di Google. La protezione del pannello di amministrazione non è facoltativa, ma una misura di sicurezza obbligatoria per ogni sito WordPress.

Cambiare l'URL di login

Perché cambiare l'URL

Cambiare l'URL di login predefinito è la prima linea di difesa, nota come sicurezza tramite oscurità. Anche se da sola non basta a garantire la protezione, riduce in modo significativo il numero di attacchi automatici, perché i bot cercano gli indirizzi /wp-admin e /wp-login.php. Un URL modificato elimina la stragrande maggioranza degli attacchi di forza bruta automatici, che costituiscono il 95 percento di tutti gli attacchi alle pagine di login di WordPress.

Plugin WPS Hide Login

WPS Hide Login è un plugin leggero con oltre un milione di installazioni attive che semplicemente cambia l'URL della pagina di login. Dopo l'installazione, vai su Impostazioni, poi WPS Hide Login, e inserisci un nuovo URL come /mio-accesso o /ingresso-segreto. Il plugin non modifica i file e non aggiunge regole di rewrite: si limita a intercettare le richieste. Ricorda il nuovo URL o salvalo in un posto sicuro, perché senza di esso resterai chiuso fuori dal pannello di amministrazione. Se dimentichi l'URL, puoi disattivare il plugin tramite FTP o phpMyAdmin eliminandolo dalla directory wp-content/plugins.

Metodi alternativi

Se non vuoi usare un plugin, puoi nascondere la pagina di login tramite regole htaccess in Apache o un blocco location in Nginx. Per esempio, puoi bloccare l'accesso a wp-login.php a tutti tranne che a specifici indirizzi IP, oppure usare l'autenticazione HTTP Basic come ulteriore livello di protezione davanti al modulo di login di WordPress. In questo modo si aggiunge una finestra di dialogo per nome utente e password prima ancora che venga visualizzato il modulo di login di WordPress, ponendo davanti all'aggressore una doppia barriera.

Limitazione dei tentativi di accesso

Protezione dalla forza bruta

Un attacco di forza bruta prova diverse combinazioni di nomi utente e password finché non indovina quella giusta. WordPress, per impostazione predefinita, non limita il numero di tentativi di accesso, il che significa che un aggressore può provare milioni di combinazioni. Limitare i tentativi di accesso è una misura assolutamente essenziale che blocca un indirizzo IP dopo un certo numero di tentativi falliti. In questo modo gli attacchi di forza bruta diventano impraticabili, perché l'aggressore può provare solo poche password prima di essere bloccato.

Limit Login Attempts Reloaded

Limit Login Attempts Reloaded è il plugin più popolare per questo scopo, con oltre 2 milioni di installazioni attive. Il plugin blocca un indirizzo IP dopo un numero prestabilito di tentativi falliti, con tempi di blocco progressivamente più lunghi. La configurazione consigliata è 3 tentativi consentiti prima di un blocco di 20 minuti, poi 3 blocchi prima di un blocco esteso di 24 ore. Il plugin invia notifiche email all'amministratore sugli indirizzi IP bloccati e fornisce statistiche sul numero di attacchi bloccati.

Fail2ban a livello di server

Per una protezione più seria, Fail2ban a livello di server è una soluzione superiore, perché blocca gli indirizzi IP a livello di firewall prima ancora che la richiesta raggiunga WordPress. Fail2ban legge i log di autenticazione di WordPress e aggiunge automaticamente regole firewall per gli indirizzi IP con troppi tentativi di accesso falliti. È più efficiente delle soluzioni basate su plugin, perché si spendono meno risorse del server per respingere gli attacchi. La configurazione prevede la creazione di una jail Fail2ban per WordPress e di un filtro che riconosce i tentativi di accesso falliti nel log di accesso.

Autenticazione a due fattori (2FA)

Cos'è la 2FA e perché è essenziale

L'autenticazione a due fattori aggiunge un secondo livello di protezione accanto alla password, richiedendo qualcosa che l'utente conosce (la password) e qualcosa che l'utente possiede (il telefono con l'authenticator). Anche se un aggressore scopre la tua password tramite phishing, una violazione di dati o un attacco di forza bruta, non può accedere al pannello di amministrazione senza il secondo fattore. Una ricerca di Google mostra che la 2FA blocca il 99,9 percento degli attacchi automatici e il 96 percento degli attacchi di phishing mirati.

Implementazione della 2FA

WP 2FA è un ottimo plugin gratuito che supporta le password monouso temporanee TOTP, compatibili con Google Authenticator, Authy, Microsoft Authenticator e altre app authenticator. Dopo l'installazione, ogni utente scansiona un codice QR con l'app authenticator e inserisce un codice a sei cifre che cambia ogni 30 secondi a ogni accesso. Il plugin supporta anche i codici di backup per le situazioni in cui l'utente non ha accesso al proprio telefono e la possibilità di imporre la 2FA per ruoli utente specifici.

Chiavi di sicurezza hardware

Per il massimo livello di sicurezza, lo standard WebAuthn consente di usare chiavi di sicurezza fisiche come YubiKey per il login a WordPress. Le chiavi hardware sono resistenti al phishing, perché sono legate a un dominio specifico e non possono essere intercettate. WordPress 5.6 e versioni successive offrono il supporto integrato per le Application Passwords, e plugin come WP-WebAuthn aggiungono il pieno supporto per le chiavi hardware FIDO2. È consigliato per gli amministratori di siti con dati sensibili.

Whitelist IP

Limitare l'accesso per indirizzo IP

Se accedi al pannello di amministrazione da un indirizzo IP fisso o da un piccolo numero di indirizzi IP noti, puoi limitare l'accesso solo a quegli indirizzi. È la forma più rigida di protezione, perché blocca completamente l'accesso al pannello da tutte le posizioni sconosciute. Nel file htaccess della directory wp-admin, usa la direttiva Order Deny Allow per consentire solo specifici indirizzi IP. In Nginx usa le direttive allow e deny nel blocco location di wp-admin.

Problemi con gli IP dinamici

La maggior parte degli utenti ha un indirizzo IP dinamico che cambia periodicamente, rendendo poco pratica una whitelist IP statica. Le soluzioni includono l'uso di un servizio VPN con indirizzo IP fisso, che fornisce un IP costante a prescindere dalla posizione. In alternativa, puoi usare CloudFlare Access o soluzioni Zero Trust che autenticano l'utente prima di consentire l'accesso all'URL di amministrazione. Alcuni plugin come iThemes Security offrono la possibilità di inviare un magic link via email per aggiungere temporaneamente un indirizzo IP alla whitelist.

Plugin di sicurezza

Wordfence Security

Wordfence è il plugin di sicurezza per WordPress più conosciuto, con oltre 4 milioni di installazioni attive. Offre un firewall per applicazioni web che blocca gli attacchi noti prima che raggiungano WordPress, uno scanner malware che esamina tutti i file di WordPress confrontandoli con gli originali del repository, threat intelligence in tempo reale con informazioni sulle ultime minacce, sicurezza del login con 2FA e protezione dalla forza bruta, e il monitoraggio del traffico in tempo reale che mostra tutte le richieste in diretta. La versione gratuita copre la maggior parte delle esigenze, mentre la versione premium aggiunge regole firewall in tempo reale e supporto prioritario.

Sucuri Security

Sucuri offre un WAF basato su cloud, ossia un firewall a livello di DNS, il che significa che le richieste malevole non raggiungono mai il tuo server. È particolarmente efficace contro gli attacchi DDoS e gli exploit zero-day, perché il team di Sucuri aggiorna costantemente le regole. Il plugin per WordPress offre il monitoraggio dell'integrità dei file, la registrazione degli eventi di sicurezza, il monitoraggio delle blacklist e azioni post-hack per ripulire un sito compromesso. Sucuri è un servizio premium, ma un ottimo investimento per i siti aziendali e le piattaforme e-commerce.

iThemes Security

iThemes Security, in precedenza noto come Better WP Security, offre oltre 30 misure di sicurezza in un unico plugin. Le funzionalità principali includono il cambio dell'URL di amministrazione, la protezione dalla forza bruta, il rilevamento delle modifiche ai file, l'imposizione di password robuste, il blocco degli user agent problematici, l'occultamento della versione di WordPress e gli aggiornamenti automatici. La dashboard mostra il punteggio di sicurezza del sito con consigli per migliorarlo. La versione Pro aggiunge la 2FA, la scansione malware programmata e l'integrazione con reCAPTCHA.

Misure di protezione aggiuntive

Password e nome utente robusti

Non usare mai admin come nome utente, perché è la prima cosa che i bot provano. Usa un nome utente univoco che non sia visibile pubblicamente sul sito. La password dovrebbe avere almeno 16 caratteri con un mix di lettere maiuscole e minuscole, numeri e caratteri speciali. Usa un gestore di password come Bitwarden o 1Password per generare e archiviare password robuste. Non usare la stessa password per l'amministrazione di WordPress e per altri servizi, perché una violazione di dati presso un servizio compromette tutti gli account con la stessa password.

Certificato SSL

Un certificato SSL cifra la comunicazione tra browser e server, inclusi nome utente e password al momento del login. Senza SSL, i dati di accesso viaggiano in chiaro e possono essere intercettati su reti WiFi pubbliche o reti compromesse. In BeoHosting tutti i piani includono un certificato SSL Let's Encrypt gratuito con rinnovo automatico. Dopo l'installazione di SSL, aggiungi la costante FORCE_SSL_ADMIN con valore true a wp-config.php per forzare l'HTTPS sull'intero pannello di amministrazione.

Aggiornamenti regolari

La maggior parte degli attacchi riusciti a WordPress sfrutta vulnerabilità note in versioni obsolete. Consulta la guida dettagliata alla protezione del sito, dei temi o dei plugin. Aggiorna WordPress, i temi e i plugin non appena è disponibile una nuova versione. Abilita gli aggiornamenti automatici per le versioni minori di WordPress e le patch di sicurezza. Prima degli aggiornamenti importanti, esegui un backup completo del sito. Elimina i temi e i plugin inutilizzati, perché anche i plugin disattivati possono contenere vulnerabilità che gli aggressori possono sfruttare.

Conclusione

Proteggere il pannello di amministrazione di WordPress richiede un approccio a più livelli, perché nessuna singola misura è sufficiente da sola. Combina il cambio dell'URL di login per eliminare gli attacchi automatici, la limitazione dei tentativi di accesso per la protezione dalla forza bruta, la 2FA per proteggerti dalle password compromesse, la whitelist IP per l'accesso più rigido e un plugin di sicurezza per un monitoraggio e una protezione completi. Sui piani di WP hosting di BeoHosting la protezione a livello di server è inclusa con Fail2ban, ModSecurity WAF e backup automatico per la massima sicurezza del sito.

BeoHosting Team

10+ anni di esperienza — Specialisti di web hosting e infrastrutture

  • Web Hosting
  • WordPress Hosting
  • VPS
  • Dedicated Serveri
  • Domeni
  • SSL
  • cPanel
  • LiteSpeed
  • Linux administracija
  • DNS

Ultimo aggiornamento: