Come trovare porte aperte su Ubuntu?

Come trovare porte aperte su Ubuntu?
Per risolvere una rete e mantenere la sicurezza del server, un amministratore di rete o un professionista della sicurezza devono essere a conoscenza degli strumenti utilizzati per trovare porte aperte sul server. Linux fornisce opzioni di utility e riga di comando per elencare le porte aperte sul server. In questo tutorial, vedremo come possiamo elencare tutte le porte aperte usando comandi diversi nel terminale Ubuntu.

Cosa significa la porta aperta?

Prima di approfondire il controllo delle porte aperte, sappiamo prima cosa significano le porte aperte. Una porta aperta o una porta di ascolto è la porta in cui è in esecuzione alcune applicazioni. L'applicazione in esecuzione ascolta una porta e possiamo comunicare con tale applicazione su quella porta di ascolto. Se un'applicazione è in esecuzione su una porta e proviamo a eseguire un'altra applicazione sulla stessa porta, il kernel lancerà un errore. Questo è uno dei tanti motivi per cui controlliamo le porte aperte prima di eseguire le applicazioni.

Elenca le porte aperte utilizzando NMAP

Network Mapper, noto come NMAP, è uno strumento open source e gratuito, che viene utilizzato per scansionare le porte su un sistema. Viene utilizzato per trovare vulnerabilità, scoprire reti e trovare porte aperte. In questa sezione, useremo NMAP per ottenere un elenco di porte aperte su un sistema. Prima di tutto, aggiorna la cache su Ubuntu prima di installare NMAP:

ubuntu@ubuntu: ~ $ sudo apt -get update -y

NMAP può essere installato utilizzando il seguente comando nel terminale:

ubuntu@ubuntu: ~ $ sudo apt -get install nmap -y

Dopo aver installato NMAP, verificare l'installazione controllando la versione di NMAP:

ubuntu@ubuntu: ~ $ nmap -version

Se fornisce la versione di NMAP, allora è installata perfettamente, altrimenti, prova nuovamente i comandi sopra per installare NMAP correttamente. NMAP viene utilizzato per eseguire diversi relativi alle reti e la scansione delle porte è una di quelle attività. Lo strumento NMAP viene utilizzato insieme a molte opzioni. Possiamo ottenere l'elenco di tutte le opzioni disponibili utilizzando il seguente comando:

ubuntu@ubuntu: ~ $ man nmap

Quindi, per scansionare il tuo host local, usa il comando arrestato di seguito:

ubuntu@ubuntu: ~ $ sudo nmap localhost

Elencherà tutte le porte aperte su LocalHost, come visualizzato nell'immagine sopra. Possiamo anche usare NMAP per scansionare gli host remoti:

ubuntu@ubuntu: ~ $ sudo nmap 93.184.216.34

Inoltre, possiamo utilizzare il nome host del server remoto anziché un indirizzo IP:

ubuntu@ubuntu: ~ $ sudo nmap www.esempio.com

Il comando NMAP può anche essere utilizzato per scansionare una gamma di indirizzi IP. Specificare l'intervallo di indirizzi IP nel comando, come nel comando seguente:

ubuntu@ubuntu: ~ $ sudo nmap 192.168.1.1-10

Il comando sopra scansionerà tutti gli indirizzi IP da 192.168.1.1 a 192.168.1.10 e visualizzerà il risultato nel terminale. Per scansionare le porte su una sottorete, possiamo usare NMAP come segue:

ubuntu@ubuntu: ~ $ sudo nmap 192.168.1.1/24

Il comando sopra scansionerà tutti gli host con indirizzi IP nella sottorete definita nel comando.

A volte è necessario scansionare le porte su host casuali, che sono in diverse sottoreti e non sono in sequenza, quindi la soluzione migliore è scrivere un file host in cui tutti i nomi host sono scritti, separati da uno o più spazi, schede o nuovi linee. Questo file può essere utilizzato con NMAP come segue:

ubuntu@ubuntu: ~ $ sudo nmap -il hosts.TXT

Possiamo usare NMAP per scansionare una singola porta sul sistema specificando la porta usando il flag '-p', insieme a NMAP, come nel comando seguente:

ubuntu@ubuntu: ~ $ sudo nmap -p 80 localhost

La gamma di porte può anche essere scansionata su un sistema utilizzando NMAP nel modo seguente:

ubuntu@ubuntu: ~ $ sudo nmap -p 80-85 localhost

Possiamo scansionare tutte le porte di un sistema usando NMAP:

ubuntu@ubuntu: ~ $ sudo nmap -p- localhost

Per ottenere un elenco delle porte più comunemente aperte sul sistema, è possibile utilizzare il comando NMAP con il flag '-f':

ubuntu@ubuntu: ~ $ sudo nmap -f localhost

Le porte TCP possono essere scansionate sul sistema utilizzando NMAP semplicemente aggiungendo il flag '-t', insieme al comando NMAP:

ubuntu@ubuntu: ~ $ sudo nmap -st localhost

Allo stesso modo, per le porte UDP, è possibile utilizzare il flag '-u' con il comando NMAP:

ubuntu@ubuntu: ~ $ sudo nmap -su localhost

Elenca le porte aperte utilizzando LSOF

Il comando LSOF, noto anche come "elenco di file aperti", viene utilizzato per ottenere le informazioni sui file aperti utilizzati da diversi processi in Unix e Linux come i sistemi operativi. Per la maggior parte delle distro Linux, questo strumento viene preinstallato. Possiamo verificare l'installazione di LSOF semplicemente controllando la sua versione:

ubuntu@ubuntu: ~ $ lsof -v

Se non mostra la versione, LSOF non è installato per impostazione predefinita. Possiamo ancora installarlo utilizzando i seguenti comandi nel terminale:

ubuntu@ubuntu: ~ $ sudo apt -get update -y
ubuntu@ubuntu: ~ $ sudo apt-get Installa lsof

Possiamo usare il comando LSOF insieme a diverse opzioni. L'elenco di tutte le opzioni disponibili può essere visualizzato utilizzando il seguente comando nel terminale:

ubuntu@ubuntu: ~ $ man lsof

Ora, in questa sezione, useremo LSOF per visualizzare le porte di un sistema in diversi modi:

ubuntu@ubuntu: ~ $ sudo lsof -i

Il comando sopra ha visualizzato tutte le porte aperte. Possiamo anche usare il comando LSOF per visualizzare tutte le prese aperte:

ubuntu@ubuntu: ~ $ sudo lsof -n -p | grep ascolta

Possiamo elencare le porte filtrate in base a un protocollo utilizzando LSOF. Esegui il comando indicato di seguito per elencare tutti i tipi di connessione TCP:

ubuntu@ubuntu: ~ $ sudo lsof -i tcp

Allo stesso modo, possiamo elencare tutti i tipi di connessione UDP usando LSOF nel modo seguente:

ubuntu@ubuntu: ~ $ sudo lsof -i udp

Elenca le porte aperte utilizzando NetStat

NetStat, noto anche come statistica di rete, è un programma di riga di comando utilizzato per visualizzare informazioni dettagliate sulle reti. Visualizza connessioni TCP in entrata e in uscita, tabelle di routing, interfacce di rete, ecc. In questa sezione, useremo NetStat per elencare le porte aperte su un sistema. Lo strumento NetStat può essere installato eseguendo i seguenti comandi:

ubuntu@ubuntu: ~ $ sudo apt -get update -y
ubuntu@ubuntu: ~ $ sudo apt-get install net-tools -y

Dopo aver eseguito i comandi sopra, è possibile verificare l'installazione controllando la versione NetStat:

ubuntu@ubuntu: ~ $ netstat -version

Se visualizza la versione di Net-Tools, allora l'installazione va bene, altrimenti esegui nuovamente i comandi di installazione. Per ottenere una panoramica di tutte le opzioni disponibili che possono essere utilizzate, insieme al comando NetStat, eseguire il comando seguente:

ubuntu@ubuntu: ~ $ man netstat

Possiamo ottenere un elenco di tutte le porte di ascolto che utilizzano il comando NetStat in Ubuntu eseguendo il comando seguente:

ubuntu@ubuntu: ~ $ sudo netstat -l

Il comando NetStat può anche essere utilizzato per filtrare l'ascolto delle porte TCP e UDP semplicemente aggiungendo un flag insieme al comando. Per ascoltare le porte TCP:

ubuntu@ubuntu: ~ $ sudo netstat -lt

Per ascoltare le porte UDP, utilizzare il comando seguente:

ubuntu@ubuntu: ~ $ sudo netstat -lu

Per ottenere l'elenco di tutte le porte unix in ascolto, è possibile eseguire il seguente comando nel terminale:

ubuntu@ubuntu: ~ $ sudo netstat -lx

Elenca le porte aperte utilizzando SS

Il comando ss viene utilizzato per visualizzare informazioni sulle prese in un sistema Linux. Visualizza informazioni più dettagliate sulle prese rispetto al comando NetStat. Il comando ss viene preinstallato per la maggior parte delle distro Linux, quindi non è necessario installarlo prima di usarlo. È possibile ottenere un elenco di tutte le opzioni, che possono essere utilizzate insieme al comando SS, eseguendo il comando "Man" con SS:

ubuntu@ubuntu: ~ $ man ss

Per ottenere un elenco di tutta la connessione indipendentemente dal loro stato, usa il comando ss senza alcun flag:

ubuntu@ubuntu: ~ $ sudo ss

Per ottenere un elenco di tutte le porte di ascolto, utilizzare il comando ss con il flag '-l'. Il flag '-l' viene utilizzato per visualizzare solo le porte di ascolto:

ubuntu@ubuntu: ~ $ sudo ss -l

Per ottenere tutte le porte TCP in ascolto, possiamo usare il flag '-t' e '-l' insieme al comando ss:

ubuntu@ubuntu: ~ $ sudo ss -lt

Allo stesso modo, possiamo ottenere un elenco di tutte le porte UDP in ascolto usando il comando ss insieme al flag '-u' e '-l':

ubuntu@ubuntu: ~ $ sudo ss -lu

Il comando ss può anche essere utilizzato per ottenere un elenco di tutte le connessioni con la porta di destinazione o la porta di destinazione. Nel seguente esempio, otterremo l'elenco di tutte le connessioni con la destinazione o la porta di origine 22:

ubuntu@ubuntu: ~ $ sudo ss -at '(dport =: 22 o sport =: 22)'

Otterrai un elenco di tutte le connessioni in entrata e in uscita se hai connesso a un sistema remoto utilizzando SSH.

Conclusione

Per gli amministratori di sistema, i professionisti della sicurezza e altre persone correlate all'IT, è importante essere consapevoli delle porte aperte sui server. Linux è ricco degli strumenti utilizzati per diagnosticare le reti e fornisce molti strumenti che possono essere utili per vari tipi di attività di networking. In questo tutorial, abbiamo usato alcuni strumenti come NetStat, SS, LSOF e NMAP per verificare le porte aperte su Ubuntu. Dopo aver esaminato questo articolo, sarai in grado di elencare facilmente tutte le porte di ascolto sul tuo server Linux in molti modi.