Lo sniffing dei pacchetti è un tipo profondo di analisi di rete in cui i dettagli del traffico di rete vengono decodificati per essere analizzati. È una delle capacità di risoluzione dei problemi più importanti che qualsiasi amministratore di rete dovrebbe possedere. L'analisi del traffico di rete è un compito complicato. Per far fronte a reti inaffidabili, i dati non vengono inviati in un flusso continuo. Invece, viene sminuzzato in frammenti inviati individualmente. L'analisi del traffico di rete implica la capacità di raccogliere questi pacchetti di dati e riassemblarli in qualcosa di significativo. Questo non è qualcosa che puoi fare manualmente, quindi sono stati creati sniffer di pacchetti e analizzatori di rete. Oggi diamo un'occhiata a sette dei migliori sniffer di pacchetti e analizzatori di rete.
Iniziamo il viaggio di oggi fornendoti alcune informazioni di base su cosa sono gli sniffer di pacchetti. Cercheremo di capire qual è la differenza, o se c'è una differenza, tra uno sniffer di pacchetti e un analizzatore di rete. Passeremo quindi al nocciolo del nostro argomento e non solo elencheremo, ma esamineremo anche brevemente ciascuna delle nostre sette scelte. Quello che abbiamo per te è una combinazione di strumenti GUI e utilità della riga di comando che vengono eseguiti su vari sistemi operativi.
Qualche parola sugli sniffer di pacchetti e sugli analizzatori di rete
Cominciamo col sistemare qualcosa. Per il bene di questo articolo, assumeremo che gli sniffer di pacchetti e gli analizzatori di rete siano la stessa cosa. Alcuni sosterranno che sono diversi e potrebbero avere ragione. Ma nel contesto di questo articolo, li esamineremo insieme, principalmente perché, anche se potrebbero funzionare in modo diverso, ma funzionano davvero?, hanno lo stesso scopo.
Gli sniffer di pacchetti di solito fanno tre cose. Innanzitutto, acquisiscono tutti i pacchetti di dati quando entrano o escono da un'interfaccia di rete. In secondo luogo, applicano facoltativamente filtri per ignorare alcuni dei pacchetti e salvarne altri su disco. Quindi eseguono una qualche forma di analisi dei dati acquisiti. È in quest'ultima funzione degli sniffer di pacchetti che differiscono maggiormente.
Per l'effettiva acquisizione dei pacchetti di dati, la maggior parte degli strumenti utilizza un modulo esterno. I più comuni sono libpcap su sistemi Unix/Linux e Winpcap su Windows. In genere non sarà necessario installare questi strumenti poiché di solito vengono installati dai diversi programmi di installazione degli strumenti.
Un'altra cosa importante da sapere è che i Packet Sniffer, anche i migliori, non faranno tutto per te. Sono solo strumenti. È proprio come un martello che da solo non pianta i chiodi. Quindi, devi assicurarti di imparare come utilizzare al meglio ogni strumento. Lo sniffer di pacchetti ti consente solo di vedere il traffico, ma spetta a te utilizzare tali informazioni per trovare problemi. Ci sono stati interi libri sull'utilizzo degli strumenti di acquisizione dei pacchetti. Io stesso una volta ho seguito un corso di tre giorni sull'argomento. Non sto cercando di scoraggiarti. Sto solo cercando di mettere a posto le tue aspettative.
Come usare uno sniffer di pacchetti
Come abbiamo spiegato, uno sniffer di pacchetti catturerà e analizzerà il traffico. Quindi, se stai cercando di risolvere un problema specifico, che è in genere il motivo per cui utilizzeresti uno strumento del genere, devi prima assicurarti che il traffico che stai catturando sia il traffico giusto. Immagina una situazione in cui tutti gli utenti si lamentano che una particolare applicazione è lenta. In quel tipo di situazione, la soluzione migliore sarebbe probabilmente catturare il traffico sull'interfaccia di rete del server delle applicazioni. Potresti quindi renderti conto che le richieste arrivano normalmente al server ma che il server impiega molto tempo per inviare le risposte. Ciò indicherebbe un problema del server.
Se, d'altra parte, vedi il server rispondere in modo tempestivo, probabilmente significa che il problema è da qualche parte sulla rete tra il client e il server. Quindi sposteresti il tuo sniffer di pacchetti di un salto più vicino al client e vedrai se le risposte sono in ritardo. In caso contrario, ti avvicini di più al client e così via. Alla fine arriverai al punto in cui si verificano i ritardi. E una volta identificata la posizione del problema, sei un grande passo avanti verso la sua soluzione.
Ora ti starai chiedendo come riusciamo a catturare i pacchetti in un punto specifico. È piuttosto semplice, sfruttiamo una funzionalità della maggior parte degli switch di rete chiamata mirroring o replica delle porte. Questa è un'opzione di configurazione che replicherà tutto il traffico in entrata e in uscita da una specifica porta dello switch su un'altra porta sullo stesso switch. Supponiamo che il tuo server sia connesso alla porta 15 di uno switch e che la porta 23 di quello stesso switch sia disponibile. Connetti il tuo sniffer di pacchetti alla porta 23 e configuri lo switch per replicare tutto il traffico dalla porta 15 alla porta 23. Quello che ottieni come risultato sulla porta 23 è un'immagine speculare, da cui il nome di mirroring della porta, di ciò che sta attraversando la porta 15.
I migliori sniffer di pacchetti e analizzatori di rete
Ora che hai capito meglio cosa sono gli sniffer di pacchetti e gli analizzatori di rete, vediamo quali sono i sette migliori che siamo riusciti a trovare. Abbiamo cercato di includere un mix di strumenti da riga di comando e GUI, oltre a strumenti in esecuzione su vari sistemi operativi. Dopotutto, non tutti gli amministratori di rete eseguono Windows.
1. Strumento SolarWinds Deep Packet Inspection and Analysis (PROVA GRATUITA)
SolarWinds è noto per i suoi numerosi utili strumenti gratuiti e il suo software di gestione della rete all'avanguardia. Uno dei suoi strumenti è chiamato Deep Packet Inspection and Analysis Tool . Viene fornito come componente del prodotto di punta di SolarWinds, il Network Performance Monitor. Il suo funzionamento è molto diverso dagli sniffer di pacchetti più "tradizionali", sebbene serva a uno scopo simile.
Per riassumere le funzionalità dello strumento: ti aiuterà a trovare e risolvere la causa delle latenze di rete, identificare le applicazioni interessate e determinare se la lentezza è causata dalla rete o da un'applicazione. Il software utilizzerà anche tecniche di ispezione approfondita dei pacchetti per calcolare il tempo di risposta per oltre milleduecento applicazioni. Classificherà inoltre il traffico di rete per categoria, business vs social e livello di rischio, aiutandoti a identificare il traffico non aziendale che potrebbe dover essere filtrato o eliminato in altro modo.
E non dimenticare che lo strumento di ispezione e analisi dei pacchetti Deep SolarWinds fa parte del Network Performance Monitor. NPM, come viene spesso chiamato, è un software impressionante con così tanti componenti che un intero articolo potrebbe essere dedicato ad esso. Fondamentalmente, è una soluzione completa di monitoraggio della rete che combina le migliori tecnologie come SNMP e l'ispezione approfondita dei pacchetti per fornire quante più informazioni possibili sullo stato della rete. Lo strumento, che ha un prezzo ragionevole, viene fornito con una prova gratuita di 30 giorni, quindi puoi assicurarti che soddisfi davvero le tue esigenze prima di impegnarti ad acquistarlo.
Link ufficiale per il download: https://www.solarwinds.com/topics/deep-packet-inspection
2. tcpdump
Tcpdump è probabilmente lo sniffer di pacchetti originale. È stato creato nel 1987. Da allora è stato mantenuto e migliorato ma rimane sostanzialmente invariato, almeno nel modo in cui viene utilizzato. È preinstallato praticamente in ogni sistema operativo simile a Unix ed è diventato lo standard di fatto quando è necessario uno strumento rapido per catturare i pacchetti. Tcpdump usa la libreria libpcap per l'effettiva cattura dei pacchetti.
Per impostazione predefinita. tcpdump cattura tutto il traffico sull'interfaccia specificata e lo "scarica" - da cui il nome - sullo schermo. Il dump può anche essere reindirizzato a un file di acquisizione e analizzato in seguito utilizzando uno o una combinazione di diversi strumenti disponibili. Una chiave per la forza e l'utilità di tcpdump è la possibilità di applicare tutti i tipi di filtri e di inviare il suo output a grep, un'altra utilità della riga di comando Unix comune, per ulteriori filtri. Qualcuno con una buona conoscenza di tcpdump, grep e la shell dei comandi può far sì che catturi esattamente il traffico giusto per qualsiasi attività di debug.
3. Windump
Windump è essenzialmente solo un port di tcpdump sulla piattaforma Windows. Come tale, si comporta più o meno allo stesso modo. Non è raro vedere tali porte di programmi di utilità di successo da una piattaforma all'altra. Windump è un'applicazione Windows ma non aspettarti una GUI di fantasia. Questa è un'utilità solo da riga di comando. Usare Windump, quindi, è fondamentalmente lo stesso che usare la sua controparte Unix. Le opzioni della riga di comando sono le stesse e anche i risultati sono quasi identici. L'output di Windump può anche essere salvato in un file per un'analisi successiva con uno strumento di terze parti.
Una delle principali differenze con tcpdump è che Windump non è integrato in Windows. Dovrai scaricarlo dal sito Windump . Il software viene fornito come file eseguibile e non richiede installazione. Tuttavia, proprio come tcpdump utilizza la libreria libpcap, Windump utilizza Winpcap che, come la maggior parte delle librerie di Windows, deve essere scaricata e installata separatamente.
4. Wireshark
Wireshark è il riferimento negli sniffer di pacchetti. È diventato lo standard de facto e la maggior parte degli altri strumenti tende a emularlo. Questo strumento non solo catturerà il traffico, ma ha anche capacità di analisi abbastanza potenti. Così potente che molti amministratori utilizzeranno tcpdump o Windump per catturare il traffico su un file, quindi caricare il file in Wireshark per l'analisi. Questo è un modo così comune di utilizzare Wireshark che all'avvio ti viene chiesto di aprire un file pcap esistente o di iniziare a catturare il traffico. Un altro punto di forza di Wireshark sono tutti i filtri che incorpora che ti consentono di azzerare esattamente i dati che ti interessano.
Ad essere onesti, questo strumento ha una curva di apprendimento ripida, ma vale la pena impararlo. Si rivelerà inestimabile più e più volte. E una volta che l'avrai imparato, sarai in grado di usarlo ovunque poiché è stato portato su quasi tutti i sistemi operativi ed è gratuito e open-source.
5. tshark
Tshark è una sorta di incrocio tra tcpdump e Wireshark. Questa è una grande cosa in quanto sono alcuni dei migliori sniffer di pacchetti in circolazione. Tshark è come tcpdump in quanto è uno strumento solo da riga di comando. Ma è anche come Wireshark in quanto non solo cattura ma analizza anche il traffico. Tshark proviene dagli stessi sviluppatori di Wireshark. È, più o meno, la versione da riga di comando di Wireshark. Utilizza lo stesso tipo di filtro di Wireshark e può quindi isolare rapidamente solo il traffico che devi analizzare.
Ma perché, potresti chiedere, qualcuno vorrebbe una versione da riga di comando di Wireshark? Perché non usare Wireshark; con la sua interfaccia grafica, deve essere più semplice da usare e da imparare? Il motivo principale è che ti permetterebbe di usarlo su un server non GUI.
6. Minatore di rete
Network Miner è più uno strumento forense che un vero sniffer di pacchetti. Network Miner seguirà un flusso TCP e ricostruirà un'intera conversazione. È davvero uno strumento potente. Può funzionare in modalità offline in cui importi alcuni file di acquisizione per consentire a Network Miner di fare la sua magia. Questa è una funzionalità utile poiché il software funziona solo su Windows. Puoi usare tcpdump su Linux per catturare parte del traffico e Network Miner su Windows per analizzarlo.
Network Miner è disponibile in una versione gratuita ma, per le funzionalità più avanzate come la geolocalizzazione e lo scripting basati su IP, dovrai acquistare una licenza Professional. Un'altra funzione avanzata della versione professionale è la possibilità di decodificare e riprodurre le chiamate VoIP.
7. Il violinista (HTTP)
Alcuni dei nostri lettori più esperti potrebbero obiettare che Fiddler non è uno sniffer di pacchetti né un analizzatore di rete. Probabilmente hanno ragione, ma abbiamo ritenuto di dover includere questo strumento nella nostra lista in quanto è molto utile in molte situazioni. Il violinista catturerà effettivamente il traffico ma non il traffico. Funziona solo con il traffico HTTP. Puoi immaginare quanto possa essere prezioso nonostante i suoi limiti, se consideri che così tante applicazioni oggi sono basate sul web o utilizzano il protocollo HTTP in background. E poiché Fiddler catturerà non solo il traffico del browser ma praticamente qualsiasi HTTP, è molto utile nella risoluzione dei problemi
Il vantaggio di uno strumento come Fiddler rispetto a uno sniffer di pacchetti in buona fede come, ad esempio, Wireshark, è che Fiddler è stato creato per "capire" il traffico HTTP. Ad esempio, scoprirà cookie e certificati. Troverà anche dati reali provenienti da applicazioni basate su HTTP. Fiddler è gratuito ed è disponibile solo per Windows, anche se è possibile scaricare build beta per OS X e Linux (usando il framework Mono).
Conclusione
Quando pubblichiamo elenchi come questo, spesso ci viene chiesto quale sia il migliore. In questa particolare situazione, se mi facessero quella domanda, dovrei rispondere “a tutti”. Sono tutti strumenti gratuiti e tutti hanno il loro valore. Perché non averli tutti a portata di mano e familiarizzare con ciascuno di essi. Quando arrivi a una situazione in cui devi usarli, sarà molto più semplice ed efficiente. Anche gli strumenti da riga di comando hanno un valore enorme. Ad esempio, possono essere programmati e programmati. Immagina di avere un problema che si verifica ogni giorno alle 2:00. È possibile pianificare un lavoro per eseguire tcpdump di Windump tra 1:50 e 2:10 e analizzare il file di acquisizione la mattina successiva. Non c'è bisogno di stare sveglio tutta la notte.