Aprire le porte in Linux è un’operazione fondamentale che consente a determinati servizi o applicazioni di scambiare dati sulla rete.
Le porte agiscono come canali di comunicazione, permettendo l’accesso ai servizi autorizzati e bloccando quelli non autorizzati. La loro corretta gestione garantisce sicurezza, buone prestazioni e funzionamento stabile delle applicazioni.
Le porte sono gli endpoint logici della comunicazione di rete, attraverso i quali i dispositivi inviano e ricevono informazioni.
Esempi comuni:
HTTP → Porta 80
HTTPS → Porta 443
SSH → Porta 22
Una porta aperta indica che un servizio è in ascolto e accetta connessioni in ingresso. Una porta chiusa, invece, blocca la comunicazione. Per garantire sicurezza e disponibilità dei servizi, è fondamentale gestire correttamente le porte aperte su Linux.
Prima di aprire una nuova porta, conviene controllare quali porte sono già attive. Puoi farlo con diversi comandi Linux.
Per mostrare le porte aperte, esegui:
netstat -tuln
L’opzione -tuln limita l’output alle porte TCP e UDP, senza risolvere i nomi host.

Nota: se netstat non è installato:
sudo apt install net-tools
Il comando ss è una versione più moderna e veloce di netstat:
ss -tuln

Mostra le porte attualmente in uso e le relative informazioni sui socket.
Per un’analisi più approfondita:
nmap localhost
nmap esegue una scansione dell’host specificato (in questo caso localhost) per individuare le porte aperte — utile per capire quali servizi sono esposti alla rete pubblica.

Nota: installa nmap con:
sudo apt install nmap
Per consentire l’accesso attraverso una porta specifica, occorre modificare le regole del firewall. Linux offre vari strumenti: iptables, ufw e firewalld.
Ecco come utilizzarli.
iptables è un potente strumento a basso livello che offre un controllo preciso sul traffico di rete.
Esempio: aprire la porta 8080 per traffico HTTP:
sudo iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
Spiegazione:
sudo: esegue il comando come amministratore
-A INPUT: aggiunge la regola alla catena di input (traffico in ingresso)
-p tcp: si applica al protocollo TCP
--dport 8080: specifica la porta 8080
-j ACCEPT: accetta il traffico corrispondente alla regola
Queste modifiche non sono permanenti: dopo il riavvio del sistema, le regole vengono cancellate.

Per rendere le regole permanenti:
sudo apt install iptables iptables-persistent
sudo netfilter-persistent save

Le regole vengono così memorizzate e ricaricate automaticamente a ogni riavvio.
sudo netfilter-persistent reload

ufw è un’interfaccia semplificata per iptables che permette di gestire facilmente le regole del firewall.
sudo ufw enable

Se non è installato:
sudo apt install ufw
Esempio: consentire connessioni SSH sulla porta 22:
sudo ufw allow 22/tcp
Questo comando autorizza il traffico TCP in ingresso sulla porta 22.

Verificare lo stato del firewall
sudo ufw status
Mostra tutte le regole attive e le porte aperte.

firewalld è un demone firewall dinamico che semplifica la gestione delle regole.
Esempio: aprire la porta 443 (HTTPS):
sudo firewall-cmd --permanent --add-port=443/tcp

Installazione e avvio di firewalld:
sudo apt install firewalld
sudo systemctl enable firewalld
sudo systemctl start firewalld
Ricaricare le regole
sudo firewall-cmd --reload

Verificare che la porta sia aperta
sudo firewall-cmd --list-all
Visualizza tutte le zone e le regole attive, incluse le porte aperte.

Dopo aver aperto una porta, assicurati che sia effettivamente accessibile.
Con telnet
telnet localhost port_number
Se la connessione va a buon fine, la porta è aperta e operativa.

nmap -p port_number localhost
Scansiona il port specificato per verificarne la disponibilità.

curl localhost:port_number
Una risposta positiva indica che il servizio è attivo sulla porta aperta.

Se l’apertura di una porta non funziona:
Controlla le regole del firewall
Verifica lo stato del servizio
A seconda del servizio, può essere richiesto TCP o UDP.
Esempio: consentire il traffico MySQL sulla porta 3306:
sudo ufw allow 3306/tcp

Esempio: aprire la porta 161 per SNMP:
sudo ufw allow 161/udp

Limitare l’accesso a un indirizzo IP specifico
sudo ufw allow from 192.168.1.100 to any port 22
Permette l’accesso SSH solo da quell’indirizzo IP, migliorando la sicurezza.

sudo ufw deny 80/tcpBlocca il traffico in ingresso sulla porta 80 (HTTP).

Verificare e aprire le porte in Linux è essenziale per garantire il corretto funzionamento della rete e la sicurezza dei servizi. Con strumenti come iptables, ufw e firewalld puoi controllare il traffico in modo preciso e sicuro. Effettua sempre test con nmap, curl o telnet per assicurarti che le configurazioni siano corrette. Una buona gestione delle porte è la base per server affidabili, connessioni sicure e prestazioni ottimali.