Indipendentemente dal fatto che tu stia utilizzando Linux come server o desktop, conoscere le porte aperte o in uso può essere utile in una varietà di situazioni.
Ad esempio, se stai eseguendo un server Web basato su Apache o Ngnix, la porta in uso dovrebbe essere 80 o 443. Il controllo delle porte lo confermerà. Allo stesso modo, puoi controllare quale porta viene utilizzata da SMTP o SSH o da altri servizi. Sapere quali porte sono in uso può essere utile durante l'allocazione delle porte a un nuovo servizio.
Puoi anche controllare se ci sono porte aperte per il rilevamento delle intrusioni.
Esistono vari modi per controllare le porte in Linux. Condividerò due dei miei metodi preferiti in questo suggerimento rapido.
Metodo 1:controllo delle porte aperte nel sistema Linux attualmente connesso utilizzando comando lsof
Se sei connesso a un sistema, direttamente o tramite SSH, puoi usare il comando lsof per controllarne le porte.
sudo lsof -i -P -n
Questo comando lsof viene utilizzato per trovare i file e i processi utilizzati da un utente. Le opzioni utente qui sono:
- -i:se non viene specificato alcun indirizzo IP, questa opzione seleziona l'elenco di tutti i file di rete
- -P:inibisce la conversione dei numeri di porta in nomi di porta per i file di rete
- -n:inibisce la conversione dei numeri di rete in nomi host per i file di rete

Ma questo ci mostra anche molte porte extra che il computer in realtà non ascolta.
Puoi semplicemente reindirizzare questo output al comando grep e abbinare il modello "LISTEN", in questo modo:
sudo lsof -i -P -n | grep LISTEN
Questo mostrerà solo le porte che il nostro computer sta ascoltando attivamente e anche quale servizio sta usando detta porta aperta.
Metodo 2:verifica delle porte su qualsiasi server Linux remoto utilizzando il comando netcat
nc (Netcat) è un'utilità della riga di comando che legge e scrive dati tra computer in rete utilizzando i protocolli TCP e UDP.
Di seguito è riportata la sintassi per nc
comando:
nc [options] host port
Questa utility ha un elegante -z
bandiera. Quando viene utilizzato, renderà nc
scansiona i demoni in ascolto senza inviare alcun dato alla porta.
Combina questo con il -v
flag, abilitando la verbosità, puoi ottenere un output dettagliato.
Di seguito è riportato il comando che puoi utilizzare per cercare le porte aperte utilizzando nc
comando:
nc -z -v <IP-ADDRESS> 1-65535 2>&1 | grep -v 'Connection refused'
Sostituisci IP-ADDRESS
con l'indirizzo IP del sistema Linux per cui stai controllando le porte.
Per quanto riguarda il motivo per cui ho selezionato i valori 1
a 65535
, questo perché l'intervallo di porte inizia da 1
e termina con 65535
.
Infine, reindirizza l'output a grep
comando. Usando il -v
opzione, esclude qualsiasi riga che ha "Connessione rifiutata" come modello abbinato.
Questo mostrerà tutte le porte aperte sul computer che sono accessibili da un'altra macchina sulla rete.
Conclusione
Dei due metodi, preferisco il comando lsof. È più veloce del comando nc. Tuttavia, è necessario essere registrati nel sistema e disporre dell'accesso sudo per questo. In altre parole, lsof è una scelta più adatta se stai gestendo un sistema.
Il comando nc ha la flessibilità di scansionare le porte senza essere loggato.
Entrambi i comandi possono essere utilizzati per controllare le porte aperte in Linux in base allo scenario in cui ti trovi. Divertiti.