- 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 -ltnSpiegazione 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 -ltnEsempio di output:
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN3.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 :80Output 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 localhostOutput 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 httpPunti 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 verboseEsempio 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 AnywhereSpiegazione:
- 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 enable4.2 Consentire o bloccare le porte
Consenti una porta specifica:
sudo ufw allow 22/tcpSpiegazione:
- Consente connessioni TCP sulla porta 22 (SSH).
Blocca una porta specifica:
sudo ufw deny 80/tcpSpiegazione:
- 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 tcpSpiegazione:
- 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 resetQuesto 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.0significa che il server accetta connessioni da qualsiasi indirizzo IP.
5.2 Identificazione del processo tramite la porta
Comando di esempio:
sudo lsof -i :22Output 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 12345.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 ssh6.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/tcp6.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
fail2banpossono 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, enmapaiutano a verificare lo stato della porta e i processi in esecuzione. - Gestione del firewall:
ufwpuò 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 verboseSe 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 sshSe 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.logCerca indirizzi IP insoliti o tentativi di connessione ripetuti.
- Utilizza un sistema di rilevamento delle intrusioni (IDS):
- Installa e configura strumenti come
fail2banoSnortper bloccare automaticamente l’accesso malevolo.
- Scansiona il tuo server utilizzando
nmap:
sudo nmap localhostVerifica 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 :80Output 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 tcpEsempio: 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 tcpQ6. 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
Porte 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/tcpQ7. 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/tcpSpiegazione: Consente connessioni TCP sulle porte da 1000 a 2000.
- Consenti più porte specifiche:
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp


