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.