Volete rendervi conto di quali connessioni stabiliscono le applicazioni installate su un sistema macOS? Per monitorare le connessioni e verificare quali tipi di comunicazioni sono poste in essere, è possibile utilizzare diversi strumenti. Little Snitch è uno dei software macOS più conosciuti e apprezzati che danno modo di accertare in tempo reale a quali indirizzi IP e domini Internet si collega ciascuna applicazione in esecuzione.
Partiamo però da ciò che offre di default il sistema operativo Apple. Per monitorare le connessioni di rete effettuate dalle applicazioni installate sui sistemi macOS, è innanzi tutto possibile ricorrere allo strumento integrato chiamato Monitoraggio Attività di Rete oppure applicazioni di terze parti che offrono funzionalità avanzate.
Monitorare connessioni di rete con macOS
Dopo aver aperto Monitoraggio Attività tramite la cartella Utility all’interno di Applicazioni, è possibile selezionare la scheda Rete in modo tale da visualizzare le attività di rete poste in essere dalle applicazioni in esecuzione.
macOS presenta una lista di tutte le applicazioni in esecuzione che stanno utilizzando la rete: si possono verificare quali programmi stanno inviando o ricevendo dati, gli indirizzi IP associati e le quantità di dati scambiati.
Avvalendosi di Monitoraggio Attività, non è però possibile accedere a informazioni addizionali. Per avere un quadro più puntuale delle operazioni di rete in corso su macOS, tuttavia, è possibile usare la già citata Little Snitch oppure servirsi di un intramontabile packet sniffer come Wireshark. Quest’ultimo consente di esaminare i pacchetti dati in transito non solo sul sistema macOS locale ma anche all’interno della rete locale. In alternativa c’è anche l’ottimo sniffer open source Sniffnet.
Usare gli strumenti da riga di comando per monitorare le connessioni
Sebbene macOS sia un sistema operativo dotato di interfaccia grafica, la piattaforma di casa Apple nasconde diversi comandi utilizzabili dalla finestra del terminale che si adattano a molteplici esigenze. Tra i comandi macOS più utili possiamo aggiungere anche lsof
. Disponibile anche sui sistemi Unix-like, lsof
è acronimo di list open files: serve infatti a elencare tutti i file attualmente aperti dai processi in esecuzione sul sistema.
Come usare il comando lsof
Il comando fornisce informazioni dettagliate sui file aperti dai processi ma anche gli indirizzi IP e le porte associate a ciascuna comunicazione. In altre parole, lsof
non ha visibilità solamente sulle risorse di sistema ma anche sul socket di rete.
Con lsof
si ottiene il nome di ciascun processo, il PID (process ID) corrispondente, il tipo di file, l’utente che ha avviato il processo, la posizione del file, il tipo di accesso e molto altro ancora.
L’istruzione seguente, ad esempio, consente di ottenere l’elenco delle connessioni di rete aperte dal processo con il nome firefox
, con informazioni dettagliate sugli indirizzi IP, le porte e i tipi di comunicazioni:
sudo lsof -i|grep -i firefox
È tuttavia richiesta la disponibilità dei diritti di amministratore o l’utilizzo del comando sudo per acquisire privilegi più elevati rispetto a quelli normalmente assegnati agli account utente “normali”.
nettop raccoglie informazioni sulle connessioni senza bisogno di diritti speciali
Un’ottima alternativa, disponibile da anni sui sistemi macOS, è nettop
. Questo comando, anch’esso da aggiungere ai più utili in assoluto sui sistemi della Mela, mostra in tempo reale i flussi di rete insieme con i nomi delle applicazioni che li hanno generati. Il principale vantaggio è che l’utilità di sistema non richiede né l’accesso root né l’utilizzo del comando sudo
.
È possibile utilizzare nettop
in modalità interattiva (esattamente come il noto strumento top
) e ordinare i dati restituiti in molti modi. Tra le varie opzioni di utilizzo, si può impostare il comando nettop
affinché registri automaticamente informazioni utili per un certo periodo di tempo. Si prenda ad esempio l’istruzione seguente:
nettop -L 0
Questo comando consente di visualizzare in tempo reale le statistiche e le attività di rete del sistema, inclusi i dettagli sui processi e le connessioni.
L’opzione -L
specifica il livello di dettaglio delle informazioni visualizzate. Nel caso di -L 0
, viene mostrato un elenco di processi di rete con le relative statistiche di base.
Come leggere le risposte del comando nettop
Dopo aver eseguito il comando, l’output è composto da un elenco aggiornato in tempo reale con i processi di rete attivi sul sistema. Per ciascun processo, sono presentate le informazioni seguenti:
- PID: L’ID del processo associato alla connessione di rete.
- Nome del processo: Il nome del processo che sta effettuando la connessione di rete. È bene evidenziare che il nome del processo non è presente su tutte le righe. Le connessioni sono raggruppate sotto la riga che descrive ciascun processo.
- R/W: Indica se il processo sta leggendo (R) o scrivendo (W) dati sull’interfaccia di rete.
- Invio/Ricezione: Indica il numero di byte inviati e ricevuti dal processo.
- Totale: Mostra il totale di byte inviati e ricevuti da un processo nel corso della sessione.
- IP e Porta: Mostra gli indirizzi IP e le porte associate alla connessione di rete.
La risposta fornita da nettop
può essere quindi molto utile per monitorare le attività di un programma e per identificare quei processi che utilizzano una quantità significativa di banda. Per interrompere il rilevamento basta premere la combinazione di tasti CTRL+C
.
Con il comando seguente, è possibile chiedere di creare un file di log da analizzare comodamente in un momento successivo:
nettop -L 0 > nettop_log.txt