Come elencare le porte aperte su Linux?

Come elencare le porte aperte su Linux?

In networking, una porta è una caratteristica interessante. È un modo per il traffico di rete di identificare l'app o il servizio di destinazione. Ogni processo/servizio ottiene la sua porta unica. Una porta sarà sempre associata all'indirizzo IP dell'host insieme al protocollo.

Questa è una mia metafora preferita per descrivere cos'è una porta. Immagina una nave carica di carico, che viaggerà in una terra lontana. Quali informazioni sono necessarie per raggiungere la destinazione correttamente? Per motivi di semplicità, diciamo che ha bisogno del paese (l'indirizzo IP) e del porta La nave attraccerà.

In questa guida, controlla come elencare le porte aperte su Linux.

Porte su Linux

I porti fungono da endpoint di comunicazione. È un numero a 16 bit (da 0 a 65535 in decimale). Mentre la gamma è grande, per facilità d'uso, le porte sono classificate in tre categorie. Ogni categoria è etichettata come l'intervallo di valore della porta:

  • Da 0 a 1023: Queste sono le porte "ben note", note anche come porte "sistema", riservate ai processi di sistema che offrono un'ampia varietà di servizi di rete. Per legare con una porta "ben nota", un processo deve avere un privilegio superuser.
  • 1024 a 49151: Queste sono le porte "registrate", note anche come porte "utente", designate da IANA per servizi specifici. Su richiesta, un processo può avere accesso ad essi. Nel caso della maggior parte dei sistemi, non richiede alcun privilegio di superuser di utilizzare queste porte.
  • 49152 a 65535: Queste sono le porte "dinamiche", note anche come porte "private". Questi porti non possono essere registrati con IANA. Queste porte sono aperte all'utilizzo per servizi privati ​​o personalizzati e possono anche essere automaticamente assegnate come porte effimere (porte di breve durata utilizzate da IP).

In Linux, ci sono diversi modi per controllare le porte aperte. Per impostazione predefinita, qualsiasi porta rimarrà chiusa a meno che un'app non la utilizzi. Se una porta è aperta, deve essere assegnata a un servizio/processo.

Elenca le porte aperte

È più facile identificare quali porte sono in uso piuttosto che quali porte sono aperte. Ecco perché la sezione seguente presenterà metodi per elencare tutte le porte attualmente in uso. In Linux, ci sono più strumenti disponibili per l'attività. La maggior parte di loro viene integrata in qualsiasi distro Linux.

L'apprendimento quali le porte sono attualmente aperte può essere utile in vari scenari. È possibile configurare una porta dedicata per una determinata applicazione. Una porta aperta può anche essere una forte indicazione di intrusione nella rete.

I seguenti metodi sono dimostrati su Ubuntu 20.04.1 LTS.

Elenca protocolli e porte aperte da /etc /servizi

Il file /etc /servizi contiene informazioni sui servizi attualmente in esecuzione. È un grande file, quindi pronto per essere sopraffatto.

$ cat /etc /servizi | meno

Elenca le porte aperte utilizzando NetStat

Lo strumento NetStat è un'utilità per la visualizzazione di connessioni di rete per TCP, tabelle di routing e varie interfacce di rete. Offre anche statistiche sul protocollo di rete. Utilizzando NetStat, possiamo elencare tutte le porte aperte del sistema.

Esegui il seguente comando NetStat:

$ netstat -atu

Facciamo una rapida rottura di tutte le flag che abbiamo usato in questo comando.

  • UN: Dice a NetStat di mostrare tutte le prese
  • T: Dice a NetStat di elencare le porte TCP
  • u: Dice a NetStat di elencare le porte UDP

Ecco un'altra variazione del comando NetStat:

$ netstat -lntu

Ci sono due nuovi flag usati nel comando. Cosa vogliono dire?

  • l: Dice a NetStat di stampare solo le prese ad ascolto
  • N: Dice a NetStat di mostrare il numero di porta

Per visualizzare il PID del processo che utilizza una porta, utilizzare il flag "-P":

$ netstat -lntup

Elenca le porte aperte utilizzando SS

Lo strumento SS è un'utilità per studiare la presa. Il suo utilizzo è simile a NetStat.

Per elencare le porte aperte, eseguire il seguente comando SS:

$ ss -lntu

Le flag sono simili a NetStat. Le funzioni che descrivono sono anche abbastanza simili.

  • l: Dice a SS di visualizzare le prese di ascolto
  • N: Dice a SS di non provare a risolvere i nomi dei servizi
  • T: Dice a SS di visualizzare le prese TCP
  • u: Dice a SS di visualizzare le prese UDP

Elenca le porte aperte utilizzando LSOF

Il comando LSOF è elencare i file aperti. Tuttavia, può anche essere utilizzato per la visualizzazione delle porte aperte.

Esegui il seguente comando LSOF:

$ lsof -i

Per ottenere le porte aperte di un protocollo specifico (TCP, UDP, ecc.) quindi definiscilo dopo il flag "-i", usa:

$ lsof -i

Elenca le porte aperte utilizzando NMAP

Lo strumento NMAP è potente per l'esplorazione della rete e la sicurezza/scansione delle porte. Può segnalare tutte le porte aperte nel sistema.

Per elencare le porte Open TCP, eseguire il seguente comando NMAP. Qui, l'indirizzo IP è del computer host:

$ sudo nmap -st -p- localhost

Qui, ci sono due parti dell'argomento del comando.

  • -st: Questa sezione dice a NMAP di scansionare le porte TCP.
  • -P- : Questo dice a NMAP di scansionare per tutte le 65535 porte. Se non utilizzato, NMAP scansionerà solo 1000 porte per impostazione predefinita.

Se è necessario elencare le porte Apri UDP, eseguire il seguente comando NMAP:

$ sudo nmap -su -p- localhost

Per ottenere entrambe le porte Open TCP e UDP, utilizzare il comando seguente:

$ sudo nmap -n -pn -st -su -p- localhost

Elenca le porte aperte utilizzando netcat

Lo strumento NetCAT è un'utilità della riga di comando per la lettura e la scrittura di dati attraverso le connessioni di rete tramite i protocolli TCP e UDP. Questo strumento può essere utilizzato anche per elencare le porte aperte. Può eseguire test su una porta specifica o una gamma di porte.

Il seguente comando NetCAT scansionerà la porta da 1 a 1000. Il comando netcat eseguirà la scansione sul protocollo TCP per impostazione predefinita:

$ nc -z -v localhost 1-1000

Può anche essere esteso all'intero elenco di possibili porte:

$ nc -z -v localhost 1-65535

Facciamo una rapida rottura delle bandiere.

  • z: Dice a NetCat di scansionare solo le porte aperte senza inviare alcun dato
  • v: Dice a Netcat di funzionare in modalità verbosa

Per ottenere solo le porte aperte da questo elenco, filtrare l'output con Grep per il termine "riuscito".

$ nc -z -v localhost 0-65535 2> & 1 | Grep è riuscito

Se si desidera eseguire la scansione sul protocollo UDP, aggiungi il flag "-u".

$ nc -z -v -u localhost 0-65535 2> & 1 | Grep è riuscito

Pensieri finali

Come dimostrato, ci sono tonnellate di modi per scansionare le porte aperte su Linux. Ti suggerisco di provare tutti i metodi prima di decidere quale padroneggiare. Se stai utilizzando un determinato strumento come NetCat o NMAP regolarmente, padroneggiare i metodi associati sarà il più vantaggioso.

Felice calcolo!