Sicurezza

Tentativi di attacco e difese del server

29 Settembre 2026 emanuele 2 minuti di lettura

Un sito WordPress su internet riceve tentativi di accesso e sonde tutti i giorni. Su web1 le difese stanno prima di WordPress, nel server web e nel firewall.

nginx, per tutti i siti

  • Pagina di accesso: al massimo 10 richieste al minuto per indirizzo; oltre, risposta 429.
  • Elenco degli utenti (?author=N, l’API wp/v2/users): solo per chi è collegato a WordPress. Serve a non regalare i nomi utente a chi prova le password. Se un’app ne ha bisogno, si apre sito per sito.
  • xmlrpc.php chiuso; wp-config.php, file nascosti, backup e dump (.sql, .bak, .log…) non si scaricano.
  • Nessun PHP eseguibile in wp-content fuori da plugin e temi: upload, cache, lingue, cartelle scrivibili. I dati del firewall di Wordfence (wflogs) non si leggono nemmeno.
  • Pagine di installazione di WordPress chiuse.

fail2ban

RegolaBlocca chi…
SSHsbaglia l’accesso SSH 5 volte in 10 minuti.
Anteprimasbaglia la password di anteprima 5 volte in 10 minuti.
Accesso a WordPresssbaglia 5 accessi o supera il limite di nginx.
Sondefa 3 sonde: SQL injection, file di configurazione, percorsi fuori dal sito.
Recidiviviene bloccato 5 volte in un giorno: resta fuori una settimana, da tutto il server.

Il blocco normale dura un’ora, sulle porte della regola (SSH o web). Attenzione alle chiavi: un client che prova troppe chiavi SSH sbagliate prima di quella giusta fa bloccare il proprio indirizzo.

I siti non chiamano fuori

Ogni sito ha un utente Linux proprio, e il firewall permette a quegli utenti solo DNS, web (80, 443) e invio di posta (587), e non li lascia interrogare il servizio interno del fornitore cloud con i dati del server (i metadati). Un malware che prova ad aprire una connessione verso il suo server di comando viene fermato, e l’allarme «connessioni in uscita bloccate» dice quale sito ci ha provato.

Leggere i tentativi

La pagina Sicurezza conta, per ogni sito, i tentativi delle ultime 24 ore dal log di nginx: accessi falliti e oltre il limite, sonde, elenco utenti respinto, richieste fermate dall’anteprima, con gli indirizzi più attivi. Numeri alti non sono per forza un problema: vuol dire che le difese stanno lavorando. Il segnale vero è un allarme dei controlli.

Più sotto, nell’Andamento, gli stessi tentativi giorno per giorno per tutti i siti, gli indirizzi bloccati da fail2ban e gli allarmi di ogni mattina; nella scheda di un sito, i suoi tentativi per giorno. Un picco dice quando è cominciato un attacco (vedi I grafici: come leggerli).

Da shell

site-scan.py attacchi esempio.it
fail2ban-client status wordpress-login