Cos’è un firewall per WordPress e perché è fondamentale
La sicurezza di un sito WordPress non è un optional: con oltre 40.000 attacchi al giorno registrati su siti non protetti, disporre di un firewall rappresenta la prima linea di difesa contro minacce informatiche, tentativi di intrusione e attacchi DDoS. Un firewall per WordPress agisce come un filtro intelligente tra il traffico internet e il tuo sito, analizzando ogni richiesta in ingresso e bloccando quelle sospette prima che possano raggiungere il server e causare danni.
Un Web Application Firewall (WAF) è specificamente progettato per proteggere applicazioni web come WordPress. A differenza di un firewall di rete tradizionale che opera a livello di porta e protocollo, un WAF esamina il contenuto delle richieste HTTP/HTTPS, identificando pattern dannosi come tentativi di SQL injection, cross-site scripting (XSS), brute force sul login e inclusioni di file remoti. Questa capacità di analisi a livello applicativo rende il WAF indispensabile per chiunque gestisca un sito WordPress, indipendentemente dalle dimensioni o dal traffico.
Tipologie di firewall per WordPress
Esistono tre grandi categorie di firewall per WordPress, ciascuna con caratteristiche, vantaggi e limiti specifici. La scelta dipende dalle esigenze tecniche, dal budget e dal livello di controllo che si desidera avere.
Firewall DNS-level (Cloudflare, Sucuri)
I firewall DNS-level operano a livello di rete, intercettando tutto il traffico diretto al tuo sito prima che raggiunga il server di hosting. Cloudflare e Sucuri sono i due nomi più noti in questa categoria. Configurando i nameserver del tuo dominio verso questi servizi, tutto il traffico passa attraverso i loro server edge, dove viene analizzato e filtrato in tempo reale. Il vantaggio principale è la capacità di assorbire attacchi DDoS di grandi dimensioni sfruttando una rete globale di datacenter. Inoltre, questi servizi offrono funzionalità aggiuntive come CDN (Content Delivery Network), ottimizzazione delle immagini e protezione da attacchi a livello di applicazione. Cloudflare offre un piano gratuito molto completo, mentre Sucuri è a pagamento ma include anche la pulizia del sito in caso di infezione.
Firewall server-level (ModSecurity)
ModSecurity è un firewall open-source a livello di server web (Apache, Nginx, IIS). Viene installato direttamente sul server e analizza il traffico prima che venga elaborato da WordPress. La configurazione avviene tramite regole OWASP (Open Web Application Security Project), un set di regole aggiornate che coprono le vulnerabilità più comuni. Molti provider di hosting WordPress gestito includono ModSecurity con le regole OWASP già preconfigurate. Il vantaggio di questa soluzione è la trasparenza: l’utente finale non deve configurarlo, ma l’amministratore del server ha il pieno controllo sulle regole applicate. Lo svantaggio è che può essere complesso da configurare correttamente e, se mal regolato, potrebbe bloccare traffico legittimo.
Firewall applicativo (Wordfence, iThemes Security, SecuPress)
I firewall applicativi sono plugin WordPress che si installano direttamente nel sito. Wordfence è il più popolare, con oltre 4 milioni di installazioni attive. Funziona creando un livello di protezione all’interno del codice di WordPress, analizzando ogni richiesta PHP prima che venga eseguita. Wordfence include un firewall basato su regole (con aggiornamenti continui), uno scanner di malware, protezione da brute force, e un modulo di live traffic che mostra tutte le richieste in tempo reale. Il grande vantaggio è la facilità di installazione e gestione: si attiva come un normale plugin dal pannello di amministrazione. Tuttavia, poiché il codice viene eseguito sul tuo server, può consumare risorse significative, specialmente su siti con traffico elevato.
Configurare Cloudflare WAF per WordPress
Cloudflare è probabilmente la scelta più diffusa per la protezione di siti WordPress, grazie al generoso piano gratuito e alla facilità di configurazione. Vediamo i passaggi principali per impostare correttamente il WAF di Cloudflare.
Security Level
Dal pannello di controllo Cloudflare, nella sezione Security > Settings, trovi l’impostazione Security Level. Puoi scegliere tra Essentially Off, Low, Medium, High, e I’m Under Attack. Per la maggior parte dei siti WordPress, Medium è il valore consigliato: mostra una challenge (CAPTCHA) ai visitatori con IP sospetti. In caso di attacco DDoS in corso, puoi alzare temporaneamente a I’m Under Attack, che mostra una pagina JavaScript challenge a tutti i visitatori prima di permettere l’accesso.
Rate Limiting
Il rate limiting di Cloudflare (disponibile nei piani Pro e superiori, o con regole personalizzate in alcuni piani gratuiti) permette di bloccare automaticamente gli IP che effettuano un numero eccessivo di richieste in un breve periodo. Questo è particolarmente utile contro gli attacchi di brute force sulla pagina di login di WordPress. Una configurazione tipica prevede il blocco per 10 minuti degli IP che superano le 20 richieste in 5 secondi verso wp-login.php o /xmlrpc.php.
Bot Fight Mode
Attivabile dalla sezione Security > Bots, la modalità Bot Fight Mode identifica e blocca automaticamente i bot malintenzionati, consentendo il passaggio solo ai bot legittimi come Googlebot e Bingbot. Questa funzionalità è particolarmente efficace per ridurre lo spam e il traffico non umano che consuma risorse del server. Per i siti WooCommerce, però, valuta attentamente l’attivazione perché potrebbe interferire con alcuni servizi di terze parti come i crawler dei prezzi.
OWASP ModSecurity Rules
I piani Cloudflare Pro e superiori includono l’OWASP Core Rule Set, un insieme di regole che proteggono dalle vulnerabilità più comuni delle applicazioni web. Puoi attivarle dalla sezione Security > WAF > Managed Rules. È consigliabile iniziare con la modalità “Simulate” per una settimana, monitorando i log per verificare che non vengano bloccate richieste legittime, prima di passare alla modalità “Block”.
Configurare Wordfence Firewall
Wordfence rimane il plugin firewall più completo per WordPress. Ecco come configurarlo al meglio per la protezione del tuo sito.
Learning Mode iniziale
Dopo l’installazione, Wordfence entra automaticamente in Learning Mode per circa una settimana. In questa fase, il firewall non blocca alcuna richiesta, ma impara il comportamento normale del tuo sito e dei tuoi visitatori. Trascorso il periodo di apprendimento (o prima, se il sito ha già traffico consolidato), Wordfence passa automaticamente alla modalità “Enabled and Protecting”. È fondamentale non disabilitare questa fase, perché consente al firewall di creare una baseline di traffico legittimo.
Bloccare IP e paesi
Dalla sezione Wordfence > Firewall > Blocking, puoi bloccare manualmente indirizzi IP specifici, intere gamme di IP, o paesi interi. Il blocco per paese è particolarmente utile se il tuo sito opera in un mercato geograficamente limitato: se vendi solo in Italia, puoi tranquillamente bloccare il traffico proveniente da paesi a rischio come Cina, Russia o Ucraina. Wordfence si basa sul database GeoIP per identificare la provenienza delle richieste. Attenzione però: alcuni visitatori legittimi potrebbero utilizzare VPN che mascherano la loro posizione reale.
Rate Limiting integrato
Bloccare i bad bot con .htaccess
I bot malevoli consumano banda e risorse del server. Puoi bloccarli a livello di server Apache aggiungendo regole nel file .htaccess situato nella root del tuo WordPress. Ecco un esempio di regola per bloccare bot dannosi noti tramite user-agent:
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} (SemrushBot|AhrefsBot|MJ12bot|DotBot|BLEXBot) [NC]
RewriteRule .* - [F,L]
Questa regola blocca l’accesso ai bot indesiderati restituendo un errore 403 Forbidden. Puoi estendere la lista con gli user-agent dei bot che trovi nei log del tuo server. Ricorda di testare sempre le modifiche al .htaccess per evitare di bloccare i motori di ricerca legittimi.
Protezione XML-RPC
XML-RPC è un protocollo legacy di WordPress utilizzato per le connessioni remote, ma è anche un vettore di attacco molto sfruttato per gli attacchi di brute force amplificati (un singolo messaggio XML-RPC può contenere centinaia di tentativi di login). Se non utilizzi app mobili o servizi che richiedono XML-RPC (come Jetpack o l’app di WordPress), puoi disabilitarlo completamente aggiungendo questa regola al .htaccess:
# Blocca XML-RPC
<Files xmlrpc.php>
Require all denied
</Files>
Hotlink protection
L’hotlinking si verifica quando altri siti web collegano direttamente le immagini ospitate sul tuo server, consumando la tua banda senza generarti traffico. Puoi prevenirlo con questa regola .htaccess:
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^https?://(www.)?iltuodominio.com [NC]
RewriteRule .(jpg|jpeg|png|gif|webp)$ - [NC,F,L]
Sostituisci “iltuodominio.com” con il tuo dominio effettivo. In questo modo, solo le pagine del tuo sito potranno visualizzare le tue immagini.
Configurare il firewall a livello di server con .htaccess e .conf
Oltre a Cloudflare e Wordfence, puoi implementare regole di firewall direttamente a livello server. Su server Apache, il file .htaccess offre un controllo granulare. Su server Nginx, si modificano i file di configurazione del sito (tipicamente in /etc/nginx/conf.d/ o /etc/nginx/sites-available/).
Testare l’efficacia del firewall
Una volta configurato il firewall, è essenziale verificarne l’efficacia. Ecco alcuni metodi pratici:
Test di penetrazione con strumenti online: utilizza servizi come Qualys SSL Labs, SecurityHeaders.com o Pentest-Tools.com per verificare la superficie di attacco del tuo sito. Questi strumenti simulano attacchi comuni e ti mostrano se il firewall li blocca correttamente.
Analisi dei log di Wordfence: Wordfence Live Traffic mostra in tempo reale tutte le richieste al sito e indica quelle bloccate dal firewall. È uno strumento prezioso per capire se le regole stanno funzionando e se ci sono falsi positivi da correggere.
Monitoraggio con Cloudflare Analytics: se utilizzi Cloudflare, la sezione Analytics > Security Metrics mostra il numero di richieste bloccate, le challenge superate e le minacce identificate. Puoi vedere l’andamento giornaliero e settimanale per valutare l’efficacia della protezione.
Conclusioni
Configurare un firewall per WordPress è un passo fondamentale per la sicurezza del tuo sito. La scelta tra firewall DNS-level, server-level o applicativo dipende dalle tue esigenze specifiche, ma la combinazione di più livelli (ad esempio Cloudflare + Wordfence + regole .htaccess) offre la protezione più completa. Ricorda che la sicurezza non è un’azione una tantum, ma un processo continuo: mantieni aggiornate le regole, monitora i log e adatta la configurazione alle minacce emergenti. Un firewall configurato correttamente ti permette di dormire sonni tranquilli, sapendo che il tuo sito è protetto da attacchi e intrusioni.
