Appena installato OpenLiteSpeed, il server si mette in ascolto su più porte di quelle che servono davvero. Oltre al sito su 80 e 443, ci sono il pannello di amministrazione sulla 7080 e un sito di esempio sulla 8088. Se il VPS non ha un firewall, chiunque nel mondo può provare a collegarsi a tutte queste porte. Dopo falle come PHP2Shell, lasciare esposto un pannello di gestione è un rischio che non ha senso correre.
UFW (Uncomplicated Firewall) è il firewall semplificato di Ubuntu. Dietro le quinte usa iptables, ma si configura con poche righe leggibili. Vediamo come impostarlo senza chiudersi fuori dal server.
Prima di cominciare
Un firewall configurato male è il modo più rapido per perdere l’accesso al proprio VPS. Prima di attivare qualsiasi regola, tieni una sessione SSH aperta e non chiuderla fino alla fine, così puoi correggere eventuali errori. Controlla anche se il tuo provider (Hetzner, DigitalOcean, AWS e altri) offre un firewall nel pannello. Se lo usi già, le regole di UFW si sommano alle sue: una porta deve essere aperta in entrambi, altrimenti la connessione non passa.
Leggi anche: Fail2ban su VPS Ubuntu: come proteggere SSH e WordPress dagli attacchi brute force
Se gestisci il server con aaPanel, il firewall si regola dal suo pannello. In quel caso evita di usare UFW in parallelo, perché due sistemi che scrivono regole sullo stesso server finiscono per sovrapporsi.
Verificare lo stato e le porte in ascolto
UFW su Ubuntu è già installato ma di solito disattivato:
sudo ufw status verbose
Prima di scrivere regole, guarda quali porte sono aperte in questo momento:
sudo ss -tulpn
Nell’elenco di un server con OpenLiteSpeed troverai di solito la 22 (SSH), la 80 e la 443 (web), la 7080 (pannello) e la 8088 (sito di esempio). Se hai installato altri servizi, per esempio MariaDB sulla 3306, li vedrai qui. Il database in particolare non deve essere raggiungibile da fuori: se è in ascolto solo su 127.0.0.1, va bene così.
Impostare le regole di base
Il principio è chiudere tutto quello che entra e aprire solo ciò che serve:
sudo ufw default deny incoming
sudo ufw default allow outgoing
Prima di attivare il firewall, apri SSH. Se lo dimentichi, ti chiudi fuori:
sudo ufw limit 22/tcp
Il comando limit fa due cose: apre la porta e blocca temporaneamente chi prova più di sei connessioni in trenta secondi dallo stesso indirizzo. Se hai spostato SSH su un’altra porta, scrivi quella, per esempio 2222/tcp.
Poi le porte del sito:
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 443/udp
La riga su 443/udp serve per HTTP/3 (QUIC), che OpenLiteSpeed supporta. Se non lo usi puoi ometterla, ma se lo hai attivato e la lasci chiusa, i browser ripiegano su HTTP/2 e perdi il vantaggio in velocità.
Proteggere il pannello sulla porta 7080
Il pannello WebAdmin ti permette di cambiare la configurazione dell’intero server, quindi è il bersaglio più appetibile. Hai tre strade, dalla più semplice alla più sicura.
Aprirlo solo al tuo indirizzo IP. Funziona bene se hai un IP fisso:
sudo ufw allow from IL_TUO_IP to any port 7080 proto tcp
Usare un tunnel SSH. La porta resta chiusa a tutti, e tu ci arrivi passando dal collegamento SSH già protetto. Dal tuo computer lancia:
ssh -L 7080:127.0.0.1:7080 utente@IP_DEL_SERVER
Poi apri nel browser https://127.0.0.1:7080. Con questo metodo non serve nessuna regola di UFW per la 7080, e funziona anche se il tuo IP cambia spesso.
Chiudere l’accesso dall’esterno nel pannello stesso. Nel WebAdmin, alla sezione Listeners, puoi modificare il listener adminListener e impostare l’indirizzo 127.0.0.1 invece di *. Dopo il riavvio il pannello risponde solo dal server stesso, quindi si usa solo tramite tunnel SSH. È la soluzione più sicura, e conviene combinarla con la regola di UFW che non apre la porta.
Qualunque strada scelga, la porta 7080 non deve essere aperta a tutti. Se in passato hai cambiato la password del pannello con quella predefinita o una debole, cambiala:
sudo /usr/local/lsws/admin/misc/admpass.sh
Chiudere la porta 8088
Il listener sulla 8088 serve solo al sito di esempio che OpenLiteSpeed installa di default. Se non lo usi, non aprire mai quella porta in UFW. Meglio ancora, rimuovi il listener e il Virtual Host di esempio dal WebAdmin, così il servizio non resta in ascolto inutilmente.
Attivare il firewall senza rischi
Con le regole pronte, controlla l’elenco prima di attivare:
sudo ufw show added
Verifica che compaiano SSH, 80, 443 e la regola del pannello, se ne hai scelta una. Se è tutto corretto:
sudo ufw enable
sudo ufw status numbered
Il sistema ti avvisa che l’attivazione può interrompere le connessioni SSH esistenti. Se hai aperto SSH nel passaggio prima, la tua sessione resta attiva. Ora apri una seconda finestra del terminale e prova a collegarti di nuovo. Solo quando funziona, puoi stare tranquillo.
Se vuoi una rete di sicurezza in più, prima di attivare programma lo spegnimento automatico del firewall tra cinque minuti. Se qualcosa non va e ti chiudi fuori, il firewall si disattiva da solo:
sudo apt install -y at
echo "ufw disable" | sudo at now + 5 minutes
Quando hai verificato che tutto funziona, annulla la prova:
atq
sudo atrm NUMERO_DELLA_RIGA
Controllare dall’esterno
Il comando ufw status ti dice cosa hai configurato, ma non cosa vede davvero chi arriva da fuori. Da un altro computer, non dal server, puoi fare un controllo con nmap:
nmap -Pn IP_DEL_SERVER
Devi vedere aperte solo la 22, la 80 e la 443. Se compare la 7080 o la 8088, c’è ancora una regola da correggere, oppure il firewall del provider ha un’impostazione che lo contraddice.
IPv6
Sui server con indirizzo IPv6 assicurati che UFW lo gestisca. Apri il file /etc/default/ufw e controlla che ci sia questa riga:
IPV6=yes
Se l’hai dovuta cambiare, riavvia il firewall:
sudo ufw disable && sudo ufw enable
Un server protetto solo su IPv4 e lasciato aperto su IPv6 è un errore frequente, perché quasi nessuno controlla l’altro lato.
Gestione quotidiana
Questi sono i comandi che ti serviranno più spesso:
# elenco con numeri, utile per cancellare una regola
sudo ufw status numbered
# eliminare una regola
sudo ufw delete 5
# registrare i tentativi bloccati
sudo ufw logging medium
sudo tail -n 30 /var/log/ufw.log
# disattivare il firewall in caso di emergenza
sudo ufw disable
Se in futuro aggiungi un servizio, per esempio un database accessibile da un altro server, apri la porta solo per l’indirizzo di quel server e non per tutti.
Cosa ottieni con il firewall e cosa no
Il firewall riduce la superficie d’attacco: porte chiuse significa servizi che nessuno può nemmeno tentare di sfruttare. Non protegge però dalle richieste che arrivano sulle porte aperte, cioè dal sito stesso. Quelle passano attraverso la 80 e la 443, quindi la sicurezza di WordPress dipende dall’aggiornamento di PHP, dei plugin e dalle altre misure che hai impostato. Per tenere aggiornato anche il server web, trovi i passaggi nella guida su come aggiornare OpenLiteSpeed su un VPS Ubuntu.
Leggi anche: PHP2Shell: come limitare i danni di una falla PHP con disable_functions e blocco dei file in uploads
Altro per te
LinuxInstallazione Cyberpanel OpenLiteSpeed Ubuntu
Abbiamo appena acquistato una VPS Ubuntu, vogliamo gestirla e installarci sopra Wordpress? procediamo con l'Installazione di Cyberpanel OpenLiteSpeed su Ubuntu. Questo è uno dei…
Ubuntu o CentOS per una VPS? Come orientarsi dopo la fine del vecchio modello Red Hat
Aggiornare tutti i pacchetti PHP (lsphp) su OpenLiteSpeed: Guida a Snapshot e Rollback Senza Rischi
Sito WordPress che si blocca ogni 5-6 ore: la causa nascosta è php-fpm su OpenLiteSpeed
Nginx + WP Rocket vs OpenLiteSpeed + LiteSpeed Cache per WordPress, quale scegliere?
Attenzione agli Hacker! Attivare subito il Firewall su MacOS
Firewall e VPN: Indispensabili per la sicurezza Online e la nostra Privacy
Proteggere il proprio sito WordPress? Wordfence Security Firewall
