“E come posso controllare senza la torre di controllo?”
dal film L’aereo più pazzo del mondo… sempre più pazzo
Di strumenti per il monitoraggio del traffico dati ce ne sono centinaia, ad iniziare dal famoso tcpdump. Anche per il monitoraggio del traffico VoIP esistono decine di strumenti ma quello che ci presento oggi, sngrep, ha la simpatica caratteristica di mostrare anche il flusso dei messaggi SIP in forma visuale (basato su libreria ncurses, può essere usato anche via SSH senza problemi).
sngrep può essere usato sia per la visualizzazione in tempo reale del traffico che per l’analisi di un file dump in formato pcap, oltre ovviamente a poter essere usato per visualizzare solamente certi tipi di messaggi, come il flag ‘-c‘ per le sole chiamate (INVITE e successivi).
L’installazione di sngrep è piuttosto facile ed è possibile, per i più pigri, aggiungere direttamente il repository ed installare il binario. Personalmente ho preferito fare un clone del respository:
git clone https://github.com/irontec/sngrep.git
e poi seguire le semplici istruzioni di compilazione:
cd sngrep ./bootstrap.sh ./configure --with-openssl --with-pcre --enable-eep make && make install
Fatto. Semplice, no ?
A questo punto, supponendo ovviamente che abbiate installato sngrep su una macchina dove è presente un server sip (i.e. OpenSIPS) funzionante ed operativo, lanciando il comando inizierete a visualizzare tutto il flusso dei messaggi SIP.
Spostandosi con le frecce sulla tastiera è possibile evidenziare una particolare transazione e, con il tasto INVIO, visualizzare il flusso dei messaggi SIP. Ad esempio:
I messaggi sono ovviamente aggregati per Call-ID.
Eseguendo sngrep -c (con sngrep –help visualizzate tutte le opzioni) saranno visualizzati solamente i dialoghi relativi alle chiamate (INVITE e successivi): comodo se vogliamo avere una panoramica del sistema escludendo tutti gli altri messaggi.
Nel caso il sistema implementi la cifratura TLS over SIP, avendo abilitato in fase di compilazione l’opzione –with-openssl o –with-gnutls, è possibile utilizzare la chiave privata per decodificare i messaggi SIP con l’opzione -k.
Tra le altre cose, premendo F2 è possibile effettuare il salvataggio su file .pcap sia di tutte le transazioni visualizzate che solo di quelle selezionate.