GNU/Linux >> Linux Esercitazione >  >> Linux

Come utilizzare Netcat per scansionare le porte aperte in Linux

Netcat (in breve NC) è un'utilità di rete, debug e investigazione di computer ricca di funzionalità che supporta un'ampia gamma di comandi per gestire le reti e monitorare il flusso di dati sul traffico di rete tra i sistemi utilizzando il TCP (Transmission Control Protocol) e il protocollo del datagramma utente (UDP).

Netcat può essere uno strumento molto utile per gli amministratori di rete e di sistema per riconoscere rapidamente le prestazioni della loro rete e che tipo di attività di rete si sta verificando nel sistema.

In questo articolo, discuteremo come installare e utilizzare questa versatile utility netcat per eseguire semplici scansioni delle porte per identificare le porte aperte nei sistemi Linux.

Installa Netcat in Linux

Netcat dovrebbe essere ottenibile su quasi tutte le moderne distribuzioni Linux usando il gestore di pacchetti predefinito come mostrato.

$ sudo yum install nc         [On CentOS/RHEL/Rocky Linux/AlmaLinux]
$ sudo dnf install nc         [On Fedora 22+ and RHEL 8]
$ sudo apt install Netcat     [On Debian/Ubuntu]

Scansione delle porte Linux con i comandi Netcat

Dopo aver installato l'utilità Netcat sul tuo server Linux, puoi iniziare a eseguire una scansione delle porte di rete, che ispezionerà lo stato di tutte le porte sul dominio o indirizzo IP specificato in modo da poter scoprire se è presente un firewall o un altro meccanismo di blocco luogo.

Ad esempio, possiamo scansionare tutte le porte fino a 1000 eseguendo il comando seguente usando -z opzione, che eseguirà solo una scansione invece di tentare di aprire una connessione, e -v opzione per notificare a netcat di produrre informazioni più dettagliate.

$ netcat -z -v google.com 1-1000
Or
$ nc -z -v google.com 1-1000

L'output sarà simile a questo:

netcat: connect to google.com port 1 (tcp) failed: Connection timed out
netcat: connect to google.com port 1 (tcp) failed: Network is unreachable
netcat: connect to google.com port 2 (tcp) failed: Connection timed out
netcat: connect to google.com port 2 (tcp) failed: Network is unreachable
netcat: connect to google.com port 3 (tcp) failed: Connection timed out
netcat: connect to google.com port 3 (tcp) failed: Network is unreachable
netcat: connect to google.com port 4 (tcp) failed: Connection timed out
netcat: connect to google.com port 4 (tcp) failed: Network is unreachable
netcat: connect to google.com port 5 (tcp) failed: Connection timed out
netcat: connect to google.com port 5 (tcp) failed: Network is unreachable
....

Puoi anche eseguire una scansione delle porte per l'indirizzo IP usando il -n opzione per definire che non è necessario risolvere l'indirizzo IP utilizzando il DNS.

$ netcat -z -n -v 192.168.0.173 1-1000
OR
$ nc -z -n -v 192.168.0.173 1-1000

L'output sarà simile a questo:

netcat: connect to 192.168.0.173 port 1 (tcp) failed: Connection refused
netcat: connect to 192.168.0.173 port 2 (tcp) failed: Connection refused
netcat: connect to 192.168.0.173 port 3 (tcp) failed: Connection refused
netcat: connect to 192.168.0.173 port 4 (tcp) failed: Connection refused
netcat: connect to 192.168.0.173 port 5 (tcp) failed: Connection refused
netcat: connect to 192.168.0.173 port 6 (tcp) failed: Connection refused
netcat: connect to 192.168.0.173 port 7 (tcp) failed: Connection refused
netcat: connect to 192.168.0.173 port 8 (tcp) failed: Connection refused
netcat: connect to 192.168.0.173 port 9 (tcp) failed: Connection refused
netcat: connect to 192.168.0.173 port 10 (tcp) failed: Connection refused
netcat: connect to 192.168.0.173 port 11 (tcp) failed: Connection refused
netcat: connect to 192.168.0.173 port 12 (tcp) failed: Connection refused
netcat: connect to 192.168.0.173 port 13 (tcp) failed: Connection refused
netcat: connect to 192.168.0.173 port 14 (tcp) failed: Connection refused
netcat: connect to 192.168.0.173 port 15 (tcp) failed: Connection refused
netcat: connect to 192.168.0.173 port 16 (tcp) failed: Connection refused
netcat: connect to 192.168.0.173 port 17 (tcp) failed: Connection refused
netcat: connect to 192.168.0.173 port 18 (tcp) failed: Connection refused
netcat: connect to 192.168.0.173 port 19 (tcp) failed: Connection refused
netcat: connect to 192.168.0.173 port 20 (tcp) failed: Connection refused
netcat: connect to 192.168.0.173 port 21 (tcp) failed: Connection refused
Connection to 192.168.0.173 22 port [tcp/*] succeeded!
netcat: connect to 192.168.0.173 port 23 (tcp) failed: Connection refused
netcat: connect to 192.168.0.173 port 24 (tcp) failed: Connection refused
netcat: connect to 192.168.0.173 port 25 (tcp) failed: Connection refused
netcat: connect to 192.168.0.173 port 26 (tcp) failed: Connection refused
netcat: connect to 192.168.0.173 port 27 (tcp) failed: Connection refused
...

Dall'output sopra, puoi vedere chiaramente che la porta SSH tradizionale è aperta nell'intervallo 1-1000 sulla macchina remota.

Se vuoi stampare solo le porte aperte sullo schermo, devi filtrare l'output con il comando grep come mostrato.

$ netcat -z -n -v 192.168.0.173 1-1000 2>&1 | grep succeeded
OR
$ nc -z -n -v 192.168.0.173 1-1000 2>&1 | grep succeeded

Uscita:

Connection to 192.168.0.173 22 port [tcp/*] succeeded!
Connection to 192.168.0.173 80 port [tcp/*] succeeded!

Puoi anche scansionare singole porte.

$ nc -zv 192.168.0.173 80
$ nc -zv 192.168.0.173 22
Or
$ nc -zv 192.168.0.173 http
$ nc -zv 192.168.0.173 ssh

[ Potrebbe piacerti anche:Come trovare e chiudere le porte aperte in Linux ]

Per maggiori informazioni e utilizzo, leggi le pagine man di netcat.


Linux
  1. Come usare BusyBox su Linux

  2. Come uso cron in Linux

  3. Come usare il comando Su in Linux

  4. Come utilizzare Netcat per trasferire file su Linux

  5. Come aprire la porta in Linux

Come eseguire una scansione delle porte in Linux

Come controllare le porte aperte in Linux

Come aprire una porta su Ubuntu 20.04

Come verificare che una porta sia aperta su un sistema Linux remoto

Come trovare e chiudere le porte aperte in Linux

Come controllare le porte aperte in Linux?