Ho scoperto un pacchetto scritto in Python per monitorare la rete: netutils-linux!

Come si evince dal nome, è solo per Linux, e per installarlo dobbiamo avere pip.

Se siamo su Ubuntu:

# aptitude install python3-pip
# pip3 install netutils-linux

In pratica, dato un url qualsiasi, vogliamo estrarre il nome di dominio usando il terminale in Linux.

Possiamo ottenere questo risultato sia con AWK che con SED.

Ovviamente possiamo usare questi esempi anche dentro a degli script.

Ho trovato questo script Python, che in pratica ci permette di visualizzare in maniera leggibile le statistiche delle richieste fatte con curl: httpstat!

Se siamo su Debian, possiamo procedere ad installarlo così:

# aptitude install curl python3-pip

Possiamo considerare ngrep come una estensione di grep per monitorare il traffico di rete.

Dovrebbe essere presente nei repo di praticamente tutte le distro; per installarlo su Archlinux:

# pacman -Sy ngrep

Ricordate che bisogna lanciarlo con privilegi elevati.

Ho trovato un utile programma che scannerizza la rete in cerca di apparati connessi, compresi quelli nascosti: arp-scan!

Dovrebbe essere compreso nei repo delle maggiori distro; su Archlinux:

# pacman -Sy arp-scan

La cosa bella di questo comando, è che identifica tutti gli apparati connessi, anche quelli che hanno un firewall configurato per rimanere nascosti.

Soprattutto se siamo in una rete multi sistema, può essere importante identificare i NetBIOS aperti connessi in rete.

Su Linux, molti file manager non funzionano sempre bene.

Ma è possibile usare un tool da riga di comando: nbtscan!

Per installarlo su Archlinux:

# pacman -Sy nbtscan

Tenendenzialmente per identificare gli IP attivi nella rete uso NMap.

Ma ho scoperto un altro programma per Linux molto comodo: NetDiscover!

Per installarlo su Debian:

# aptitude install netdiscover

In questo articolo avevamo visto come identificare i MAC address dei pc connessi in rete usando PING a ARP.

Ho scoperto che è possibile fare la stessa cosa usando Nmap.

Basta usare l'opzione -sn, ma con privilegi elevati.

Ho già parlato di lsof in questo articolo.

Qui rivediamo il comando, usandolo però solo per i controlli di rete.

Ovviamente, con lsof, i controlli si possono fare solo sul pc da dove viene lanciato; ed occorre avere privilegi elevati.

Questo un primo esempio:

# lsof -i
COMMAND     PID     USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
rpcbind     526     root    6u  IPv4  11099      0t0  UDP *:sunrpc
rpcbind     526     root    7u  IPv4  11102      0t0  UDP *:701
rpcbind     526     root    8u  IPv4  11103      0t0  TCP *:sunrpc (LISTEN)
rpcbind     526     root    9u  IPv6  11104      0t0  UDP *:sunrpc
rpcbind     526     root   10u  IPv6  11105      0t0  UDP *:701
rpcbind     526     root   11u  IPv6  11106      0t0  TCP *:sunrpc (LISTEN)
rpc.statd   535    statd    5u  IPv4  11321      0t0  UDP localhost:711
rpc.statd   535    statd    8u  IPv4  11177      0t0  UDP *:44965
rpc.statd   535    statd    9u  IPv4  11179      0t0  TCP *:50511 (LISTEN)
rpc.statd   535    statd   10u  IPv6  11181      0t0  UDP *:46095
rpc.statd   535    statd   11u  IPv6  11183      0t0  TCP *:44720 (LISTEN)
mongod      553  mongodb    9u  IPv4  12107      0t0  TCP localhost:27017 (LISTEN)
mongod      553  mongodb   10u  IPv4  14086      0t0  TCP localhost:28017 (LISTEN)
..............................................

Questo ottiene tutti i file di rete internet.

In genere, per idenificare il nostro indirizzo IP pubblico, usiamo siti di terze parti come What Is My Ip, o andando alla sezione strumenti di questo blog laughing.

Se siamo su Linux, però, possiamo usare alcuni comandi senza dover usare servizi di terzi parti.

Un primo comando è dig; comando molto potente che serve per interrogare i DNS server.