- 1 1. Introduction
- 1.1 2.1 Concetto di base delle porte
- 1.2 2.2 Tipi e ruoli delle porte
- 1.3 3.1 Utilizzo del comando ss
- 1.4 3.2 Utilizzo del comando netstat
- 1.5 3.3 Utilizzo del comando lsof
- 1.6 3.4 Utilizzo del nmap comando
- 1.7 4.1 Verifica dello Stato del Firewall
- 1.8 4.2 Consentire o bloccare le porte
- 1.9 4.3 Ripristino e revisione delle impostazioni del firewall
- 1.10 5.1 Verifica dello stato della porta
- 1.11 5.2 Identificazione del processo tramite la porta
- 1.12 5.3 Esempi di risoluzione dei problemi
- 1.13 6.1 Chiusura delle porte non necessarie
- 1.14 6.2 Prevenzione della scansione delle porte
- 1.15 7.1 Punti chiave
- 1.16 7.2 Future Applications
- 1.17 Q1. Cosa devo fare se una porta non è aperta su Ubuntu?
- 1.18 Q2. Qual è la differenza tra ss e netstat?
- 1.19 Q3. Come posso rilevare se qualcuno sta scansionando le mie porte?
- 1.20 Q4. Come posso verificare quale processo sta usando una porta specifica?
- 1.21 Q5. Come posso consentire solo un indirizzo IP specifico usando ufw?
- 1.22 Q6. Come posso cambiare il numero di porta per un servizio?
- 1.23 Q7. Posso consentire più porte contemporaneamente?
1. Introduction
Nella gestione di rete e nell’amministrazione dei server, comprendere con precisione lo stato delle porte è fondamentale. Soprattutto quando si utilizza Ubuntu, verificare le porte aperte e i processi attivi aiuta a migliorare le misure di sicurezza e consente una rapida risoluzione dei problemi.
Questo articolo fornisce una spiegazione dettagliata dei comandi e degli strumenti fondamentali usati per controllare le porte su Ubuntu. Pensato per utenti da principianti a intermedi, offre passaggi pratici e facili da seguire, quindi assicurati di leggere fino alla fine.
2.1 Concetto di base delle porte
Una porta è un gateway di comunicazione virtuale utilizzato da computer e dispositivi di rete per inviare e ricevere dati. In particolare, consente a più applicazioni di comunicare simultaneamente sullo stesso indirizzo IP identificando e indirizzando i dati all’applicazione appropriata.
Ad esempio, un server web utilizza la porta 80 per la comunicazione HTTP. Se lo stesso server consente anche connessioni SSH, utilizza la porta 22. Poiché i diversi servizi sono distinti dai loro numeri di porta, verificare lo stato delle porte è essenziale per la gestione della rete.
2.2 Tipi e ruoli delle porte
Le porte sono classificate in tre tipologie principali:
- Porti Ben Conosciuti (0–1023)
- Standardizzato a livello globale e assegnato a servizi ampiamente utilizzati.
- Esempi:
- HTTP: 80
- HTTPS: 443
- SSH: 22
- Porte registrate (1024–49151)
- Usato da applicazioni o organizzazioni specifiche.
- Esempi:
- MySQL: 3306
- PostgreSQL: 5432
- Porte dinamiche (49152–65535)
- Porti temporanei spesso usati per la comunicazione lato client.
Comprendere queste classificazioni facilita la determinazione dell’uso di una porta.

3.1 Utilizzo del comando ss
Il comando ss
è uno strumento potente di gestione della rete in Linux. È veloce e fornisce informazioni dettagliate sulla connessione.
Comando di base:
sudo ss -ltn
Spiegazione delle opzioni:
- -l: Mostra solo le porte in ascolto.
- -t: Mostra solo le connessioni del protocollo TCP.
- -n: Visualizza indirizzi e numeri di porta in formato numerico.
Esempio di output:
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
3.2 Utilizzo del comando netstat
Il comando netstat
è uno strumento tradizionale di gestione della rete. Sebbene venga gradualmente sostituito da ss
, è ancora disponibile su molti sistemi.
Comando di base:
sudo netstat -ltn
Esempio di output:
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
3.3 Utilizzo del comando lsof
Il comando lsof
è utile per identificare i processi che utilizzano una porta specifica.
Verifica di una porta specifica:
sudo lsof -i :80
Output di esempio:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
apache2 1234 www 4u IPv4 12345 0t0 TCP *:http (LISTEN)
3.4 Utilizzo del nmap
comando
Lo strumento nmap
è specializzato nella scansione di rete e nella diagnostica della sicurezza.
Scansione di localhost:
sudo nmap localhost
Output di esempio:
Starting Nmap 7.80 ( https://nmap.org ) at 2024-12-21 18:00 JST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00013s latency).
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
Punti chiave:
- Visualizza le porte aperte e i relativi servizi.
- La scansione di server esterni richiede autorizzazione preventiva.
4.1 Verifica dello Stato del Firewall
Verifica Stato del Firewall:
sudo ufw status verbose
Esempio di Output:
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing)
New profiles: skip
To Action From
-- ------ ----
22/tcp ALLOW Anywhere
80/tcp ALLOW Anywhere
Spiegazione:
- Stato: attivo: Il firewall è abilitato.
- Logging: attivo: Registra l’attività del firewall.
- Predefinito: rifiuta (in entrata), consenti (in uscita): Nega le connessioni in entrata per impostazione predefinita, consentendo quelle in uscita.
- ALLOW: Specifica quali porte/servizi sono consentiti (ad es. SSH e HTTP).
Nota: Se il firewall è disabilitato (Stato: inattivo
), attivalo con:
sudo ufw enable
4.2 Consentire o bloccare le porte
Consenti una porta specifica:
sudo ufw allow 22/tcp
Spiegazione:
- Consente connessioni TCP sulla porta 22 (SSH).
Blocca una porta specifica:
sudo ufw deny 80/tcp
Spiegazione:
- Blocca l’accesso alla porta 80 (HTTP).
Consenti solo un indirizzo IP specifico:
sudo ufw allow from 192.168.1.100 to any port 22 proto tcp
Spiegazione:
- Consente connessioni SSH solo dall’indirizzo IP
192.168.1.100
.
4.3 Ripristino e revisione delle impostazioni del firewall
Per ripristinare le impostazioni del firewall e ricominciare, usa il seguente comando:
sudo ufw reset
Questo comando cancella tutte le regole e ripristina il firewall allo stato predefinito. Controlla sempre le regole dopo aver apportato modifiche.

5.1 Verifica dello stato della porta
Comando di esempio:
sudo ss -ltn | grep ':22'
Output di esempio:
LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
Punti chiave:
- Se l’output mostra
LISTEN
, la porta è aperta e in attesa di connessioni. 0.0.0.0
significa che il server accetta connessioni da qualsiasi indirizzo IP.
5.2 Identificazione del processo tramite la porta
Comando di esempio:
sudo lsof -i :22
Output di esempio:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 1234 root 3u IPv4 56789 0t0 TCP *:ssh (LISTEN)
Punti chiave:
sshd
è il processo daemon che gestisce le connessioni SSH.- L’ID del processo (PID) può essere utilizzato per arrestare o riavviare il servizio.
Per fermare il processo:
sudo kill 1234
5.3 Esempi di risoluzione dei problemi
Problema: La porta non è aperta o non può essere accessibile.
Passaggi per risolvere:
- Verifica le impostazioni del firewall:
sudo ufw status verbose
- Se la porta è bloccata, consentila:
sudo ufw allow 22/tcp
- Verifica e riavvia il servizio se necessario:
sudo systemctl restart ssh
6.1 Chiusura delle porte non necessarie
Le porte inutilizzate dovrebbero essere chiuse per prevenire potenziali attacchi.
Esempio: Chiusura della porta 80
sudo ufw deny 80/tcp
6.2 Prevenzione della scansione delle porte
La scansione delle porte è una tecnica utilizzata dagli aggressori per trovare vulnerabilità in un sistema. Le seguenti misure possono aiutare a prevenirla:
- Rafforzare le regole del firewall:
sudo ufw default deny incoming
- Monitoraggio dei log:
sudo tail -f /var/log/ufw.log
- Utilizzo di strumenti di rilevamento delle intrusioni:
- Strumenti come
fail2ban
possono bloccare automaticamente tentativi di accesso sospetti.

7.1 Punti chiave
- Comprensione delle porte: Le porte fungono da porte di comunicazione e sono suddivise in porte ben note, registrate e dinamiche.
- Utilizzare i comandi per verificare le porte:
- I comandi come
ss
,netstat
,lsof
, enmap
aiutano a verificare lo stato della porta e i processi in esecuzione. - Gestione del firewall:
ufw
può essere usato per consentire o bloccare porte specifiche, migliorando la sicurezza.- Misure di sicurezza:
- La chiusura di porte non necessarie, il monitoraggio dei log e l’uso di strumenti di sicurezza aiutano a mantenere un ambiente di rete sicuro.
7.2 Future Applications
La gestione delle porte è un aspetto fondamentale della sicurezza di rete. Applica le conoscenze contenute in questa guida per mantenere un ambiente server sicuro.
Q1. Cosa devo fare se una porta non è aperta su Ubuntu?
A:
Se una porta non è aperta, segui questi passaggi:
- Verifica le impostazioni del firewall:
sudo ufw status verbose
Se il firewall sta bloccando la porta, consentila con il seguente comando:
sudo ufw allow [port number]/tcp
- Verifica che il servizio corrispondente sia in esecuzione:
sudo systemctl status [service name]
Esempio: per SSH, usa:
sudo systemctl status ssh
Se il servizio non è in esecuzione, riavvialo:
sudo systemctl restart [service name]
- Verifica se il servizio sta usando la porta corretta:
Verifica il file di configurazione (ad esempio, per SSH, controlla /etc/ssh/sshd_config
) per assicurarti che la porta corretta sia impostata.
Q2. Qual è la differenza tra ss
e netstat
?
R:
ss
e netstat
sono entrambi strumenti per verificare le connessioni di rete, ma presentano differenze fondamentali:
ss
:- Consigliato per i sistemi Linux moderni.
- Più veloce e fornisce informazioni più dettagliate.
- Esempio di comando:
sudo ss -ltn
netstat
:- Uno strumento più vecchio che sta gradualmente diventando obsoleto.
- Ancora disponibile su molti sistemi per motivi di compatibilità.
- Esempio di comando:
sudo netstat -ltn
Per i sistemi più recenti, ss
è la scelta preferita.
Q3. Come posso rilevare se qualcuno sta scansionando le mie porte?
A:
Per rilevare la scansione delle porte, prova i seguenti metodi:
- Controlla i log del firewall:
sudo tail -f /var/log/ufw.log
Cerca indirizzi IP insoliti o tentativi di connessione ripetuti.
- Utilizza un sistema di rilevamento delle intrusioni (IDS):
- Installa e configura strumenti come
fail2ban
oSnort
per bloccare automaticamente l’accesso malevolo.
- Scansiona il tuo server utilizzando
nmap
:
sudo nmap localhost
Verifica le porte aperte e chiudi quelle non necessarie.
Q4. Come posso verificare quale processo sta usando una porta specifica?
A:
Usa il comando lsof
per identificare i processi che utilizzano una porta specifica:
sudo lsof -i :[port number]
Esempio: per verificare la porta 80:
sudo lsof -i :80
Output di esempio:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
apache2 1234 www 4u IPv4 12345 0t0 TCP *:http (LISTEN)
Q5. Come posso consentire solo un indirizzo IP specifico usando ufw
?
A:
Per consentire l’accesso solo da un indirizzo IP specifico, usa il comando seguente:
sudo ufw allow from [IP address] to any port [port number] proto tcp
Esempio: Consenti l’accesso SSH (porta 22) solo dall’indirizzo IP 192.168.1.100
:
sudo ufw allow from 192.168.1.100 to any port 22 proto tcp
Q6. Come posso cambiare il numero di porta per un servizio?
A:
Per cambiare il numero di porta di un servizio, modifica il suo file di configurazione. Ecco un esempio per SSH:
- Apri il file di configurazione:
sudo nano /etc/ssh/sshd_config
- Trova l’impostazione
Port
e cambia il numero di porta:
Port 2222
- Riavvia il servizio SSH:
sudo systemctl restart ssh
- Consenti la nuova porta nel firewall:
sudo ufw allow 2222/tcp
Q7. Posso consentire più porte contemporaneamente?
A:
Sì, è possibile consentire più porte contemporaneamente utilizzando i seguenti metodi:
- Consenti un intervallo di porte:
sudo ufw allow 1000:2000/tcp
Spiegazione: Consente connessioni TCP sulle porte da 1000 a 2000.
- Consenti più porte specifiche:
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp