Come aprire le porte e visualizzare le porte aperte in Linux
Quando si lavora con le reti in Linux, può essere necessario aprire o chiudere una porta di rete. La gestione delle porte è fondamentale per la sicurezza: meno porte aperte ha un sistema, minori sono i potenziali vettori di attacco. Inoltre, se una porta è chiusa, un utente malintenzionato non può raccogliere informazioni sul servizio in esecuzione su quella porta specifica.
Questa guida spiega come aprire o chiudere le porte e come verificare le porte aperte su distribuzioni Linux come Ubuntu/Debian e CentOS/RHEL utilizzando firewall come ufw, firewalld e iptables.
Dimostreremo questo processo su due distribuzioni Linux: Ubuntu 22.04 e CentOS 9, eseguite su un VPS Hostman. Tutti i comandi forniti qui funzionano su qualsiasi distribuzione basata su Debian o RHEL.
Cos’è una porta di rete? Copia link
Le porte vengono utilizzate per accedere ad applicazioni e protocolli specifici. Ad esempio, un server può ospitare sia un server web che un database — le porte instradano il traffico verso il servizio appropriato. Tecnicamente, una porta di rete è un numero intero non negativo compreso tra 0 e 65535.
-
Porte riservate (0–1023): utilizzate da protocolli e servizi di rete noti come SSH (porta 22), FTP (porta 21), HTTP (porta 80) e HTTPS (porta 443).
-
Porte registrate (1024–49151): possono essere utilizzate da applicazioni specifiche per la comunicazione.
- Porte dinamiche (49152–65535): utilizzate per connessioni temporanee e assegnate dinamicamente alle applicazioni.
Come aprire le porte nelle distribuzioni Linux basate su Debian Copia link
Nei sistemi basati su Debian (Ubuntu, Debian, Linux Mint, ecc.), puoi utilizzare ufw (Uncomplicated Firewall).
ufw è preinstallato nella maggior parte delle distribuzioni basate su APT. Per verificare se è installato:
ufw versionSe viene visualizzata una versione, ufw è installato. In caso contrario, installalo con:
apt update && apt -y install ufwPer impostazione predefinita, ufw è inattivo, il che significa che tutte le porte sono aperte. Puoi verificarne lo stato con:
ufw statusPer attivarlo:
ufw enableDovrai confermare con y. Nota che l’attivazione di ufw può interrompere le connessioni SSH attive. Per impostazione predefinita, ufw blocca tutto il traffico in ingresso e consente tutto il traffico in uscita.
Per controllare la politica predefinita:
cat /etc/default/ufw
Aprire le porte con ufw Copia link
Per aprire una porta:
ufw allow <port_number>Esempio — aprire la porta 22 per SSH:
ufw allow 22Puoi aprire più porte separandole con virgole e specificando il protocollo (tcp o udp):
ufw allow 80,443,8081,8443/tcp
ufw allow 80,443,8081,8443/udpInvece dei numeri di porta, puoi usare il nome del servizio (definito in /etc/services).

Esempio — aprire Telnet (porta 23):
ufw allow telnetNota: Non puoi specificare più nomi di servizio contemporaneamente; ufw restituirà un errore:

Per aprire un intervallo di porte:
ufw allow <start_port>:<end_port>/<protocol>Esempio:
ufw allow 8000:8080/tcpChiudere le porte con ufw Copia link
Per chiudere una porta:
ufw deny <port_number>Esempio — chiudere la porta 80:
ufw deny 80Puoi anche usare il nome del servizio. Esempio — chiudere FTP (porta 21):
ufw deny ftpVisualizzare le porte aperte con ufw Copia link
Per elencare tutte le porte aperte e chiuse:
ufw status
Oppure per una visualizzazione più dettagliata:
ufw status verboseAprire una porta nelle distribuzioni Linux basate su RHEL Copia link
Le distribuzioni basate su RHEL (CentOS 7+, RHEL 7+, Fedora 18+, OpenSUSE 15+) utilizzano firewalld come impostazione predefinita.
Aprire le porte con firewalld Copia link
Verifica se firewalld è installato:
firewall-offline-cmd -VSe viene visualizzata una versione, firewalld è installato. In caso contrario, installalo:
dnf install firewalldPer impostazione predefinita, firewalld è disabilitato. Controllane lo stato:
firewall-cmd --statePer abilitarlo:
systemctl start firewalldAprire la porta 8080 per TCP:
firewall-cmd --zone=public --add-port=8080/tcp --permanent--zone=public: specifica la zona per la regola.--add-port=8080/tcp: specifica la porta e il protocollo.--permanent: salva la regola in modo permanente.

Puoi anche aprire un servizio utilizzando il suo nome, ad esempio HTTP (porta 80):
firewall-cmd --zone=public --add-service=http --permanentApplicare le modifiche:
firewall-cmd --reloadChiudere le porte con firewalld Copia link
Per chiudere una porta per numero:
firewall-cmd --zone=public --remove-port=8080/tcp --permanent
Oppure per nome del servizio:
firewall-cmd --zone=public --remove-service=http --permanentRicarica sempre dopo le modifiche:
firewall-cmd --reloadElencare le porte aperte con firewalld Copia link
Per elencare tutte le porte aperte:
firewall-cmd --list-portsGestire le porte con iptables Copia link
A differenza di ufw e firewalld, iptables è preinstallato in molte distribuzioni (Ubuntu, Debian, RHEL, Rocky Linux, AlmaLinux).
Aprire le porte con iptables Copia link
Per aprire la porta 8182 per connessioni in ingresso:
iptables -A INPUT -p tcp --dport 8182 -j ACCEPT-A INPUT: aggiunge una regola alla catena INPUT.-p tcp: specifica il protocollo.--dport 8182: specifica la porta da aprire.-j ACCEPT: consente il traffico attraverso la porta.
Per le connessioni in uscita:
iptables -A OUTPUT -p tcp --dport 8182 -j ACCEPTPer aprire un intervallo di porte:
iptables -A INPUT -p tcp --match multiport --dports 1024:2000 -j ACCEPTChiudere le porte con iptables Copia link
Per chiudere una porta:
iptables -A INPUT -p tcp --dport 8182 -j DROPChiudere un intervallo di porte:
iptables -A INPUT -p tcp --match multiport --dports 1024:2000 -j DROPSalvare le regole di iptables Copia link
Per impostazione predefinita, le regole di iptables sono valide solo fino al riavvio del server. Per salvarle in modo permanente, installa iptables-persistent:
Per i sistemi basati su APT:
apt update && apt -y install iptables-persistentPer i sistemi basati su DNF:
dnf -y install iptables-persistentSalvare le regole attuali:
iptables-saveLe regole verranno caricate automaticamente al successivo riavvio.
Visualizzare le porte aperte con iptables Copia link
Elencare tutte le regole e le porte aperte:
iptables -L -v -nElencare solo le regole IPv4:
iptables -SElencare le regole IPv6:
ip6tables -SConclusione Copia link
In questa guida abbiamo mostrato come aprire e chiudere le porte di rete in Linux e come controllare le porte attualmente aperte utilizzando tre strumenti diversi: ufw, firewalld e iptables. Una corretta gestione delle porte riduce il rischio di potenziali attacchi alla rete e aiuta a nascondere le informazioni sui servizi che utilizzano tali porte.