Installare un plugin firewall su WordPress è uno di quei compiti che sembrano semplici — cerchi “firewall” nel repository, installi il primo risultato, lo attivi e pensi di essere protetto. In realtà la scelta e la configurazione fanno tutta la differenza: un firewall mal configurato può bloccare Googlebot, impedire le scansioni di sicurezza, o creare conflitti con la CDN — dandoti una falsa sensazione di protezione mentre il sito rimane esposto.
Questa guida non è un confronto generico tra plugin. È una guida operativa: come configurare Wordfence correttamente, come aggiungere Cloudflare senza che i due strumenti si ostacolino a vicenda, e come scegliere il setup giusto in base alla situazione del tuo sito.
Firewall endpoint vs firewall cloud: la differenza che cambia tutto
Prima di scegliere un plugin, è fondamentale capire che esistono due architetture di firewall radicalmente diverse — e che operano su livelli completamente separati.
Firewall endpoint (Wordfence, NinjaFirewall)
Un firewall endpoint gira direttamente sul tuo server, come plugin PHP all’interno di WordPress. Quando arriva una richiesta, il firewall la intercetta e la analizza prima che WordPress la elabori completamente. Il vantaggio è il controllo granulare: Wordfence può analizzare il contenuto delle richieste, confrontare i file con il repository ufficiale di WordPress, bloccare IP specifici e tenere un log dettagliato di ogni tentativo bloccato. Il limite è strutturale: il traffico malevolo arriva comunque al tuo server e consuma risorse prima di essere bloccato. In caso di attacchi DDoS volumetrici, il server può saturarsi prima che il firewall riesca ad agire.
Firewall cloud (Cloudflare, Sucuri WAF)
Un firewall cloud opera a livello DNS, prima ancora che il traffico raggiunga il tuo server. Cloudflare, nella sua versione gratuita, fa passare tutto il traffico attraverso la propria rete globale — filtrando richieste malevole, bot noti e attacchi DDoS prima che arrivino all’hosting. Il vantaggio è che il server non vede mai il traffico bloccato — zero consumo di risorse. Il limite è che opera su criteri più generali e non ha visibilità diretta sui file del tuo WordPress.
La combinazione ottimale per la maggior parte dei siti WordPress è quindi: Cloudflare come primo strato di difesa (blocca il traffico malevolo prima che arrivi al server) + Wordfence come secondo strato (protegge a livello applicativo e monitora l’integrità dei file). Ma questa combinazione richiede una configurazione specifica per evitare conflitti — lo vediamo nella sezione dedicata.
Wordfence: configurazione ottimale passo dopo passo
Installazione e attivazione
Installa Wordfence Security direttamente dal repository WordPress (Plugin → Aggiungi nuovo → cerca Wordfence). Dopo l’attivazione, il plugin chiederà un indirizzo email per gli avvisi di sicurezza — usane uno che controlli regolarmente. La versione gratuita è sufficiente per la maggior parte dei siti: include firewall, scanner malware e protezione login. La versione Premium aggiunge il feed delle minacce in tempo reale (nella versione gratuita ha 30 giorni di ritardo), il blocco per paese e le scansioni programmate.
Configurazione del firewall
Vai su Wordfence → Firewall e verifica che sia in modalità “Protezione estesa” e non solo “Protezione di base”. La protezione estesa richiede una modifica al file .htaccess o php.ini per far caricare Wordfence prima del core di WordPress — Wordfence guida l’operazione automaticamente con un wizard. Senza questa modalità, alcuni attacchi sofisticati possono bypassare il firewall.
Nella sezione Rate Limiting, imposta limiti ragionevoli per le crawl: un crawler legittimo come Googlebot non ha bisogno di fare migliaia di richieste al minuto. Valori consigliati: 240 richieste al minuto per crawler non verificati, blocco immediato per chi tenta di accedere a file sensibili come wp-config(.)php o .htaccess.
Impostazioni di login security
Vai su Wordfence → Login Security e abilita:
- Two-Factor Authentication (2FA): per tutti gli account con ruolo Amministratore. Wordfence gestisce il 2FA internamente senza bisogno di plugin aggiuntivi.
- reCAPTCHA sulla pagina di login: riduce drasticamente i tentativi di brute force automatizzati.
- Blocco dopo X tentativi falliti: 5 tentativi è un valore ragionevole. Abbassarlo troppo rischia di bloccare utenti legittimi che dimenticano la password.
- Prevenzione dell’enumerazione utenti: impedisce agli attaccanti di scoprire i nomi utente tramite le API di WordPress.
Scansione malware: quando e come eseguirla
Vai su Wordfence → Scansione e avvia una scansione completa. Wordfence confronta ogni file del sito con il repository ufficiale e segnala discrepanze, firme malware note e file sospetti. La scansione e rimozione del malware è un processo separato con la sua procedura dedicata — qui il punto è impostare la scansione automatica programmata, disponibile nella versione Premium. Nella versione gratuita, pianifica una scansione manuale mensile nel calendario.
Cloudflare piano gratuito: cosa protegge davvero
Il piano gratuito di Cloudflare offre protezione reale e significativa, non una versione castrata del prodotto. Include: proxy DNS con filtraggio del traffico malevolo, protezione DDoS di base, CDN globale con cache delle risorse statiche, certificato SSL universale gratuito, e regole firewall personalizzabili (5 regole nel piano gratuito).
Attivare Cloudflare su un sito WordPress
La procedura richiede la modifica dei nameserver del dominio per puntare a Cloudflare. Crea un account su cloudflare.com, aggiungi il tuo dominio, Cloudflare importa automaticamente i record DNS esistenti — verificali prima di salvare. Aggiorna i nameserver presso il tuo registrar. La propagazione richiede da pochi minuti a 48 ore.
Dopo l’attivazione, verifica che WordPress riconosca correttamente gli IP reali dei visitatori: senza configurazione aggiuntiva, tutti i visitatori sembrano provenire dagli IP di Cloudflare. Aggiungi nel wp-config(.)php il codice per leggere l’header CF-Connecting-IP oppure installa il plugin ufficiale Cloudflare che gestisce questa configurazione automaticamente.
Regole firewall essenziali per WordPress
Con le 5 regole disponibili nel piano gratuito, queste sono le priorità per un sito WordPress:
- Blocca accesso diretto a wp-login.php da tutti gli IP eccetto i tuoi — oppure aggiungi una sfida JavaScript per verificare che sia un browser reale.
- Blocca le richieste che contengono xmlrpc.php nell’URL se non usi applicazioni che ne richiedono l’accesso (Jetpack, app mobile WordPress).
- Blocca le richieste con user agent vuoto o sospetto — la maggior parte dei bot malevoli non invia un user agent valido.
- Limita il rate sulle richieste POST verso wp-login.php — massimo 5 richieste per minuto per IP.
Blocca per paese se hai un pubblico esclusivamente italiano e noti attacchi concentrati da aree geografiche specifiche — disponibile nel piano gratuito con limitazioni.
Bot Fight Mode e il problema con Wordfence
Qui c’è un problema tecnico reale che la documentazione ufficiale di Cloudflare menziona ma che quasi nessuna guida italiana spiega chiaramente. La modalità “Bot Fight Mode” di Cloudflare — che blocca i bot automatizzati — interferisce con le scansioni di Wordfence e con i cron job di WordPress. Wordfence usa richieste HTTP interne per completare le scansioni, e Bot Fight Mode le identifica come traffico bot e le blocca, causando scansioni incomplete o errori nella diagnostica.
La soluzione è aggiungere l’IP del tuo server alle IP Access Rules di Cloudflare con azione “Allow”, prima di qualsiasi altra regola. Puoi trovare l’IP del server nel pannello del tuo hosting. In Cloudflare: Sicurezza → WAF → IP Access Rules → inserisci l’IP del server, seleziona “Allow”, salva. Poi in Wordfence → Opzioni → Come Wordfence ottiene gli IP, seleziona l’opzione “CF-Connecting-IP“.
Nota importante
Se dopo questa configurazione Wordfence mostra ancora errori di connettività nella sezione Diagnostics → Connectivity, il problema è quasi sempre il Bot Fight Mode. Disattivalo temporaneamente per verificare: se le scansioni tornano a funzionare, la causa è confermata. Puoi lasciarlo disattivato o usare le IP Access Rules come descritto sopra
Usare Wordfence e Cloudflare insieme: la configurazione corretta
La combinazione Wordfence + Cloudflare è la configurazione raccomandata per siti WordPress che vogliono una protezione a doppio strato senza costi aggiuntivi. Perché funzioni correttamente:
- Cloudflare deve essere configurato in modalità proxy (nuvola arancione) — non solo DNS.
- Wordfence deve essere impostato per leggere l’IP reale dall’header CF-Connecting-IP, non dall’IP della connessione che sarebbe l’IP di Cloudflare.
- Bot Fight Mode di Cloudflare deve essere configurato con l’eccezione per l’IP del server come descritto sopra.
- Le regole di rate limiting di Wordfence e Cloudflare non devono sovrapporsi su wp-login.php — scegli uno dei due per gestire quel limite specifico, non entrambi.
Se hai configurato SSL tramite Cloudflare, verifica anche la compatibilità con le impostazioni SSL di WordPress — un argomento che abbiamo affrontato in dettaglio nella guida al certificato SSL su WordPress.
NinjaFirewall: quando ha senso sceglierlo
NinjaFirewall è lo strumento più tecnico dei tre e quello meno conosciuto al grande pubblico — ma ha una caratteristica unica che lo rende superiore agli altri in scenari specifici. A differenza di Wordfence, che gira come plugin PHP dentro WordPress, NinjaFirewall si installa come modulo che viene caricato prima del core di WordPress stesso, tramite la direttiva auto_prepend_file nel file php.ini o .user.ini.
Questo significa che anche se un attaccante compromette un plugin o un tema, NinjaFirewall può comunque intercettare le richieste malevole prima che il codice compromesso venga eseguito. È la scelta consigliata per siti ad alto rischio, hosting con accesso SSH, e power user che vogliono il controllo più granulare possibile. Non è la scelta giusta per chi gestisce WordPress senza familiarità con i file di configurazione del server.
Per i siti WordPress standard, Wordfence + Cloudflare rimane la combinazione ottimale per rapporto semplicità/protezione.
Qual è il setup giusto per il tuo sito?
La scelta dipende da tre variabili: complessità tecnica che sei disposto a gestire, budget disponibile, e livello di esposizione del sito.
- Sito vetrina o blog con traffico basso: Wordfence gratuito con protezione estesa attiva è sufficiente. Aggiungi Cloudflare gratuito se vuoi CDN e protezione DDoS.
- E-commerce WooCommerce o sito con area riservata: Cloudflare gratuito + Wordfence gratuito configurati correttamente. Valuta Wordfence Premium per il feed delle minacce in tempo reale.
- Sito già attaccato in passato: dopo il ripristino dopo un attacco, implementa obbligatoriamente entrambi i livelli di protezione con la configurazione descritta in questa guida.
- Sito ad alto traffico o con requisiti tecnici avanzati: NinjaFirewall + Cloudflare Pro o Sucuri WAF.
Se la configurazione del firewall ti sembra complessa, se Wordfence e Cloudflare creano conflitti sul tuo sito, o se vuoi semplicemente avere la certezza che tutto sia configurato in modo ottimale, contattami.
Domande frequenti (FAQ)
Wordfence rallenta il sito WordPress?
Sì, in misura variabile a seconda del piano hosting. Wordfence in modalità Protezione Estesa intercetta ogni richiesta prima che WordPress venga caricato — l’overhead è minimo su hosting con PHP 8.x e risorse dedicate, ma può essere significativo su hosting condivisi economici con risorse limitate. Se noti un rallentamento misurabile, considera NinjaFirewall che ha un overhead inferiore, oppure sposta il primo strato di difesa su Cloudflare e usa Wordfence solo per la scansione.
Posso usare Wordfence e Sucuri insieme?
Tecnicamente sì, ma non è consigliato. Due firewall endpoint attivi sullo stesso sito generano conflitti, duplicano i log e consumano il doppio delle risorse senza aggiungere protezione reale. La combinazione corretta è un firewall cloud (Cloudflare o Sucuri WAF) come primo strato e un firewall endpoint (Wordfence) come secondo strato — non due endpoint insieme.
Cloudflare gratuito è sufficiente o serve il piano Pro?
Il piano gratuito è sufficiente per la protezione di base: proxy DNS, protezione DDoS di livello 3/4, CDN, SSL e 5 regole firewall personalizzate. Il piano Pro aggiunge protezione DDoS avanzata, regole WAF gestite per WordPress, ottimizzazione delle immagini e supporto prioritario. Vale la pena considerarlo per e-commerce ad alto traffico o siti con requisiti di performance avanzati. Per la maggior parte dei siti WordPress, il piano gratuito copre il 90% delle minacce comuni.
Come faccio a sapere se il firewall sta funzionando?
Wordfence mostra nella dashboard il numero di attacchi bloccati nelle ultime 24 ore, 7 giorni e 30 giorni, con dettaglio degli IP bloccati e delle regole che hanno intercettato le richieste. Cloudflare mostra statistiche analoghe nella sezione Sicurezza → Panoramica. Se entrambi mostrano zero attacchi bloccati su un sito attivo da settimane, il problema è quasi sempre che il traffico non passa correttamente attraverso i filtri — verifica la configurazione del proxy Cloudflare e la modalità di protezione di Wordfence.
Il firewall protegge anche dai plugin vulnerabili?
Parzialmente. Wordfence include un database delle vulnerabilità note nei plugin WordPress e avvisa quando un plugin installato ha una vulnerabilità conosciuta — ma non la corregge automaticamente. Cloudflare con il piano Pro offre il “virtual patching”: regole WAF che bloccano i tentativi di sfruttamento di vulnerabilità note anche prima che il plugin venga aggiornato. Nella guida alla sicurezza WordPress trovi il quadro completo su come gestire plugin e temi per ridurre la superficie di attacco.
