Netcat per effettuare il monitoraggio del traffico di rete

di | 28 Settembre 2010

Le situazioni in cui è necessario monitoraggio del traffico HTTP (o comunque TCP/UDP) tra un client ed un server sono tante: quando ad esempio si effettua il debug di un’applicazione web o  quando i dati che transitano devono (anche per motivi di sicurezza) essere registrati e storicizzati.

Netcat è un fantastico tool che tra le sue diverse  applicazioni pratiche permette anche di essere utilizzato per attivare molto rapidamente un’infrastruttura proxy per il monitoraggio del traffico di rete tra due pc.

Immaginiamo di dover registrare tutto il traffico tra un client (che chiameremo “chost“) e un server (che chiameremo “shost“) e che espone un servizio sulla porta 8000. Ci occorre per prima cosa un terzo computer che sarà utilizzato come proxy (”phost“) sul quale lanceremo in sequenza, da console, questi comandi:

mknod backpipe p
nc -l 1111 0<backpipe | tee -a in.dump | nc shost 8000 | tee  -a out.dump 1>backpipe

Così otterremo quanto segue:

  1. creazione di una pipe FIFO
  2. esecuzione di un’istanza di netcat in ascolto sulla porta 1111 che riceve dati in input dalla pipe FIFO e li redirige verso lo standard output il cui contenuto viene catturato dal comando tee e salvato sul file in.dump
  3. esecuzione di una seconda istanza di netcat che legge l’output prodotto dalla prima istanza di netcat e lo redirige verso l’host di destinazione (shost) sulla porta 8000. L’output di risposta prodotto da shost viene salvato sul file out.dump e rediretto verso la pipe FIFO (su cui è in ascolto la prima istanza di netcat)

L’immagine di seguito chiarisce sicuramente il funzionamento del proxy:

Perchè il sistema di tracciamento sia efficiente occorre configurare il client in modo da utilizzare il proxy phost appena attivato e attivo sulla porta 1111.

Se per esempio l’applicazione che state utilizzando sul client è un browser, potete configurare il proxy dalla GUI di gestione delle preferenze di connessione.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.