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:
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.
Ecco un'altra variazione del comando NetStat:
$ netstat -lntu
Ci sono due nuovi flag usati nel comando. Cosa vogliono dire?
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.
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.
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.
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!