[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [translators] [docinfo] [indice analitico] [volume] [parte]
L'analisi del traffico della rete, sia per mezzo dell'intercettazione di tutti i pacchetti che attraversano una rete fisica, sia per mezzo del controllo di ciò che riguarda esclusivamente una singola interfaccia di rete del nodo locale, è molto importante per comprendere i problemi legati alla sicurezza e per scoprire inconvenienti di vario genere.
L'uso produttivo degli strumenti che vengono descritti in questo capitolo richiederebbe una preparazione adeguata sulla composizione dei pacchetti dei protocolli TCP/IP, diversamente si riesce solo a sfiorare la comprensione di quello che accade. Tuttavia, per quanto poco, un po' di pratica con questi può essere utile in ogni caso.
Netstat (1) è un programma specifico di GNU/Linux, in grado di mostrare in modo agevole alcune informazioni contenute nella directory /proc/net/
. Le informazioni disponibili sono molte, anche troppe. In queste sezioni viene mostrato solo un uso limitato di Netstat, riferito ai protocolli TCP/IP.
Le informazioni disponibili riguardano esclusivamente la sfera del nodo locale, comprese le connessioni che lo riguardano.
Netstat potrebbe essere utilizzato per fornire le stesse informazioni che si possono ottenere già da route, ifconfig e in parte da iptables. In generale, comunque, questo non dovrebbe essere il suo uso normale, che qui non viene mostrato.
L'eseguibile netstat emette attraverso lo standard output una serie di notizie riferite a tutti i tipi di connessione disponibili, traendo le informazioni dai file virtuali della directory /proc/net/
.
netstat [opzioni] |
Se netstat viene usato senza opzioni, mostra la situazione di tutti i tipi di collegamento, elencando i socket aperti. Se tra le opzioni appare l'indicazione di uno o più protocolli, le informazioni che si ottengono si limitano a quanto richiesto espressamente.
Segue la descrizione di alcuni esempi.
#
netstat --inet
[Invio]
Emette l'elenco dei socket di dominio Internet, ovvero tutte le comunicazioni aperte tra i programmi attraverso i protocolli TCP/IP.
#
netstat --inet -e
[Invio]
Come nell'esempio precedente, aggiungendo l'indicazione degli utenti proprietari dei processi che attuano le connessioni.
#
netstat --tcp -a
[Invio]
Mostra la situazione delle porte TCP, in particolare quelle dei servizi in ascolto.
Gli elenchi restituiti da Netstat sono composti in forma tabellare. Di seguito appare la descrizione dei nomi delle colonne di queste.
|
A titolo di esempio viene mostrato come può apparire una connessione TELNET tra dinkel.brot.dg
e roggen.brot.dg
.
#
netstat --tcp
[Invio]
Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 roggen.brot.dg:1170 dinkel.brot.dg:telnet ESTABLISHED tcp 0 0 dinkel.brot.dg:telnet roggen.brot.dg:1170 ESTABLISHED |
Fuser (2) è un programma specifico per sistemi GNU/Linux,(3) che consente di individuare facilmente il processo elaborativo che ha aperto un file, oppure una porta (TCP o UDP). Si utilizza attraverso l'eseguibile fuser e per individuare l'utilizzo di una porta TCP, si usa l'opzione -n tcp, mentre per quanto riguarda porte UDP, si usa l'opzione -n tcp. L'esempio seguente mostra il comando necessario a conoscere il numero identificativo del processo che ha aperto la porta TCP 22:
#
fuser -n tcp 22
[Invio]
22/tcp: 598 |
Successivamente, conoscendo il numero UID del processo, con l'aiuto di ps, si può scoprire chi è:
#
ps ax | grep " 589 "
[Invio]
598 ? S 0:00 /usr/sbin/sshd |
Tcpdump (4) è lo strumento fondamentale per l'analisi del traffico che avviene nella rete fisica a cui si è collegati. Permette sia di ottenere una visione sintetica dei pacchetti, sia di visualizzarne il contenuto in esadecimale. Inoltre, è possibile definire un filtro ai pacchetti da prendere in considerazione. Purtroppo, il suo utilizzo efficace richiede un'ottima conoscenza dei protocolli TCP/IP.
I pacchetti vengono analizzati solo nella prima parte, normalmente di 68 byte, perdendo le informazioni successive. Eventualmente, questa dimensione può essere aumentata, anche se in generale ciò è sconsigliabile dal momento che richiederebbe un tempo di elaborazione maggiore, portando anche alla perdita di pacchetti.
Tcpdump può generare un risultato in esadecimale, oppure può emettere i pacchetti così come sono. Per poter interpretare il contenuto dei pacchetti, è necessario conoscere la loro struttura, in base ai protocolli relativi. A titolo di esempio, viene mostrato un programma Perl elementare, per filtrare i caratteri di controllo ASCII:
|
Supponendo che questo sia il programma filtro, si può spiare in modo molto banale ciò che passa per la rete con il comando seguente:
#
tcpdump -l -i eth0 -s 0 -w - | filtro
[Invio]
La cosa diventa ancora più semplice se si vuole utilizzare il programma strings che dovrebbe essere disponibile in tutti i sistemi standard:
#
tcpdump -l -i eth0 -s 0 -w - | strings
[Invio]
tcpdump emette le informazioni tratte dalla parte iniziale dei pacchetti che possono essere intercettati attraverso un'interfaccia di rete, che corrispondono a una data espressione.
tcpdump [opzioni] [espressione] |
|
Segue la descrizione di alcuni esempi.
#
tcpdump -i eth0
[Invio]
Emette attraverso lo standard output tutto il traffico che può essere intercettato per mezzo dell'interfaccia eth0.
#
tcpdump -n -i eth0
[Invio]
Come nell'esempio precedente, ma le informazioni sugli indirizzi e sui numeri di porta vengono indicati in forma numerica.
#
tcpdump -x -i eth0
[Invio]
Emette attraverso lo standard output il contenuto della prima parte dei pacchetti che possono essere intercettati per mezzo dell'interfaccia eth0. Questi dati vengono espressi in forma esadecimale.
L'utilizzo di Tcpdump non è molto utile se non viene definito un filtro a ciò che si vuole analizzare. Per questo motivo, dopo le opzioni normali della riga di comando può essere indicata un'espressione, più o meno articolata: solo i pacchetti che soddisfano la condizione espressa vengono presi in considerazione.
Questa espressione contiene spesso degli spazi: può essere fornita a Tcpdump in un argomento unico utilizzando dei delimitatori, oppure può essere composta da più argomenti in sequenza. Inoltre, attraverso l'opzione -F è possibile fornire l'espressione contenuta in un file; in tal caso, l'espressione può essere scritta su più righe, senza bisogno di simboli di continuazione.
Le espressioni di Tcpdump sono composte da primitive che possono essere raggruppate per mezzo delle parentesi tonde (in modo da evitare ambiguità nell'ordine di risoluzione) e connesse attraverso operatori booleani:
|
All'interno delle primitive possono apparire riferimenti a diversi tipi di entità, che vengono descritte brevemente.
Gli indirizzi di origine o di destinazione, riferiti al protocollo TCP/IP, possono essere indicati attraverso nomi di dominio o numeri IP. In particolare, è possibile fare riferimento a una sottorete indicando il numero IP parziale.
Le porte possono essere identificate per numero o per nome.
Per identificare i protocolli si possono usare delle parole chiave precise; in particolare: ether, fddi, ip, arp, rarp, decnet, tcp, udp.
Il protocollo identificato dalle parole chiave elencate dovrebbe essere intuitivo, almeno per i casi più comuni (IP, ARP, RARP, TCP e UDP). Le prime due parole chiave sono equivalenti: ether e fddi rappresentano semplicemente il secondo livello, collegamento dati, del modello ISO-OSI.
|
Segue la descrizione di alcuni esempi.
#
tcpdump host dinkel.brot.dg
[Invio]
Individua ed emette tutto il traffico riferito a dinkel.brot.dg
.
#
tcpdump host dinkel.brot.dg and host roggen.brot.dg
[Invio]
Individua ed emette tutto il traffico riferito simultaneamente a dinkel.brot.dg
e a roggen.brot.dg
. In pratica si limita a estrarre il traffico tra questi due nodi.
#
tcpdump host dinkel.brot.dg and \(host roggen.brot.dg
\
\or host weizen.brot.dg\)
[Invio]
Individua esclusivamente il traffico intrattenuto tra dinkel.brot.dg
e roggen.brot.dg
, oppure tra dinkel.brot.dg
e weizen.brot.dg
. Le parentesi tonde sono state protette attraverso la barra obliqua inversa per evitare una diversa interpretazione da parte della shell.
#
tcpdump host dinkel.brot.dg and not host roggen.brot.dg
[Invio]
Analizza tutto il traffico intrattenuto da dinkel.brot.dg
e tutti gli altri nodi, a esclusione di roggen.brot.dg
.
#
tcpdump gateway router.brot.dg
[Invio]
Analizza tutto il traffico che attraversa il nodo router.brot.dg
senza essere diretto, o provenire da quello.
Vale la pena di annotare un'idea molto semplice per controllare in modo approssimativo il traffico di una connessione PPP. In questo caso, si pensa a una connessione PPP attraverso linea commutata, intesa come la connessione di un utente che accede a un ISP per collegarsi a Internet. L'esigenza potrebbe nascere nel momento in cui si dovesse sospettare che il modem stia trasmettendo all'esterno dati che non dovrebbe, magari per opera di un software manomesso ad arte per questo scopo.
In un sistema GNU/Linux tipico ci sono diverse console virtuali inutilizzate, che potrebbero essere adibite al monitoraggio continuo del contenuto dei pacchetti che transitano attraverso l'interfaccia ppp0. Per farlo basta usare Tcpdump, con l'aiuto di un filtro come strings, come è già stato descritto. In questo caso, il tutto potrebbe essere avviato dallo script /etc/ppp/ip-up
(direttamente o attraverso un altro script specifico). I comandi necessari sono quelli seguenti, supponendo di voler utilizzare la dodicesima console virtuale (/dev/tty12
):
|
Si può osservare che si modificano i permessi di accesso al file di dispositivo /dev/tty12
per evitare che altri possano leggere il traffico attraverso il terminale stesso.
In condizioni normali, quando l'interfaccia di rete ppp0 scompare a seguito della conclusione della connessione, anche l'eseguibile tcpdump termina di funzionare. |
Volendo complicare le cose, si può anche fare in modo che i dati vengano memorizzati in un registro, per poter fare una verifica successiva in modo più dettagliato:
|
Come si vede, il file /var/log/ppp0.log
viene memorizzato prima di essere ridotto da strings.
IPTraf (5) è un programma di servizio per l'analisi del traffico IPv4 (in parte anche di quello non IP), che transita attraverso la rete fisica a cui ci si trova connessi. IPTraf è specializzato nel tracciamento delle connessioni e nella produzione di statistiche, senza addentrarsi nella lettura del contenuto dei pacchetti.
IPTraf è fondamentalmente un programma interattivo, che utilizza una console virtuale o un terminale a caratteri, organizzato attraverso dei menù. La figura 267.12 mostra il menù generale di IPTraf.
|
IPTraf può essere configurato attraverso la funzione {Options
} che appare nel menù generale. Inoltre, può annotare le informazioni sul traffico all'interno di un registro. Il file di configurazione e quello delle registrazioni vengono creati all'interno della directory /var/lib/iptraf/
, che deve essere presente.
Perché possa essere analizzato tutto il traffico della propria rete fisica, è necessario che sia abilitata la modalità promiscua, come descritto nella sezione dedicata alla configurazione di IPTraf. |
In questa sezione vengono descritti solo alcuni aspetti di IPTraf. Per il resto si può consultare la documentazione che accompagna questo programma.
|
La configurazione di IPTraf può essere definita a livelli differenti: la configurazione generale e quella che riguarda i filtri di selezione dei pacchetti da elaborare. La configurazione generale è definibile attraverso la funzione {Options
} del menù generale, da cui si accede a quanto si vede nella figura 267.14, che rappresenta anche l'impostazione predefinita.
|
Le opzioni si attivano e si disattivano premendo il tasto [Invio]; quando una voce è terminata da tre punti di sospensione (...), selezionandola si ottiene una finestra a scomparsa attraverso la quale fornire altre indicazioni. Lo stato delle opzioni è indicato dalla finestra destra: {Enabled Options
}.
|
La funzionalità di controllo del traffico IP rappresenta l'utilizzo più comune di IPTraf. Selezionando la voce corrispondente dal menù generale, oppure avviando iptraf con l'opzione -i, si ottiene qualcosa di simile a quanto mostrato nella figura 267.16, dove in particolare appare anche lo stato di una connessione TELNET tra 192.168.1.1 e 192.168.1.2.
|
Il monitor di traffico IP si compone di due finestre: una superiore per le connessioni TCP e una inferiore per gli altri tipi. Una delle due finestre è quella attiva, che si distingue perché appare la parola Active sul bordo nella parte bassa, al lato destro. All'interno della finestra attiva è possibile fare scorrere le informazioni con i tasti [freccia su] e [freccia giù]; per cambiare la finestra attiva basta utilizzare il tasto [w], come suggerisce il promemoria che appare nell'ultima riga dello schermo. Per uscire da questa funzionalità basta il tasto [x], oppure la combinazione [Ctrl x].
Non è possibile conoscere quale sia la parte che ha originato la connessione TCP, salvo intuirlo dalle convenzioni sull'uso delle porte; nella finestra relativa, le connessioni TCP vengono sempre mostrate con una coppia di voci: una per ogni direzione della connessione TCP.
Il significato delle varie colonne di informazione che appaiono nella finestra delle connessioni TCP dovrebbe essere abbastanza intuitivo, a parte la colonna Flags, all'interno della quale possono essere annotate lettere e parole chiave differenti. Il significato di queste viene descritto di seguito.
|
Se si verifica una presenza inusuale di pacchetti SYN, può trattarsi di un tentativo di attacco, definito SYN flood, che letteralmente significa: «inondazione di pacchetti SYN». |
Sniffit (6) è un programma per l'analisi del traffico di rete, che può essere usato per individuare le connessioni TCP in corso, oppure per conservare una sorta di registro delle comunicazioni avvenute, contenente le comunicazioni stesse.
Naturalmente, la lettura del contenuto dei pacchetti può essere utile a livello didattico, oppure per individuare dei problemi nell'utilizzo della rete, mentre diventa una pratica illegale quando ciò sconfina nel diritto alla riservatezza delle persone. |
La sintassi per l'avvio di Sniffit è quella seguente, tenendo conto che almeno un'opzione del primo gruppo è obbligatoria.
sniffit {-v|-s nodo|-t nodo|-i|-I|-c file_di_configurazione}... altre_opzioni |
Segue la descrizione di alcune opzioni.
|
Qui viene mostrato soltanto il funzionamento interattivo, con l'opzione -I, all'interno del quale è possibile anche inserirsi in uno dei flussi TCP per leggerne i dati:
#
sniffit -I -F eth0
[Invio]
In questo modo si ottiene il funzionamento interattivo, specificando espressamente l'interfaccia (in questo caso si tratta di eth0. Quello che si vede nella figura seguente è soltanto il traffico TCP attivo:
|
Nel riquadro delle connessioni TCP, appare un cursore, con cui è possibile selezionare, all'interno di una connessione, uno dei due flussi (andata o ritorno). Una volta collocato il cursore sopra un flusso di interesse, basta premere [Invio] per ottenere una finestra in cui appare il contenuto di quella comunicazione:
|
Come si può intuire dalla figura, in questo caso si intercetta il flusso dei dati trasmessi da un cliente TELNET, proprio nella fase dell'autenticazione: l'utente tizio, con la parola d'ordine baci47.(7)
Ethereal (8) è un programma per l'analisi del traffico di rete, fino al livello due del modello ISO-OSI (collegamento dati), riuscendo a riconoscere all'interno di questo una serie di protocolli al livello tre e quattro del modello ISO-OSI (rete). In particolare, individua correttamente molti protocolli collegati a IPv4 e IPv6.
Ethereal è pensato principalmente per accumulare il traffico intercettato, allo scopo di consentire un'analisi dettagliata di questo in un momento successivo; nello stesso modo è predisposto per accedere a informazioni di questo genere accumulate da programmi diversi, così come è in grado di esportare i propri dati in formati alternativi.
Ethereal consente anche una visualizzazione in tempo reale del traffico in corso, in modo analogo a quanto fa IPTraf, con la differenza che le informazioni fornite sono molto più chiare. In questo senso, Ethereal è un ottimo strumento didattico per lo studio delle reti.
Ethereal viene usato normalmente attraverso il sistema grafico X e deve funzionare con i privilegi dell'utente root, per poter accedere direttamente all'interfaccia di rete da sondare. L'eseguibile da avviare è ethereal:
ethereal [opzioni] |
Qui si intende mostrare il funzionamento di Ethereal in modo interattivo, senza l'uso di opzioni nella riga di comando. Eventualmente si può consultare la pagina di manuale ethereal(1).
|
Una volta avviato l'eseguibile ethereal, per ottenere un'analisi del traffico in tempo reale può essere necessario controllare la configurazione. Si trova la voce {Preferences
} nel menù {Edit
}:
|
La figura mostra in particolare la selezione della modalità promiscua, con cui si intercettano tutti i pacchetti che l'interfaccia di rete selezionata è in grado di osservare.
Una volta definita la configurazione e selezionata l'interfaccia di rete di interesse, si può passare alla cattura dei pacchetti, selezionando la voce {Start
} dal menù {Capture
}. Si ottiene una finestra da cui è possibile aggiustare le opzioni relative alla cattura:
|
Durante la cattura dei pacchetti viene visualizzata una statistica sull'avanzamento di questo lavoro, dove appare un pulsante grafico che consente di fermare l'accumulo dei dati. Se in precedenza è stata richiesta la visualizzazione in tempo reale delle informazioni relative alla cattura, anche il contenuto dei pacchetti viene visualizzato nella finestra principale di Ethereal.
|
La finestra principale di Ethereal si divide in tre parti: in quella superiore appare l'elenco di pacchetti intercettati con una descrizione essenziale del loro contenuto; selezionando un pacchetto nella parte superiore, in quella centrale appare un elenco ad albero di componenti del pacchetto stesso; selezionando una voce nell'elenco del riquadro centrale, appare in quello inferiore l'evidenziamento della porzione di pacchetto che lo riguarda. La figura seguente mostra la porzione IP di un pacchetto relativo a una comunicazione TELNET:
|
Nella figura successiva, si analizzano i dati TCP dello stesso pacchetto, mostrando in particolare dove si colloca l'informazione sulla porta di destinazione:
|
IPlogger (9) è un pacchetto di programmi contenente alcuni demoni che si occupano di annotare le connessioni all'interno del registro del sistema. Allo stato attuale si tratta solo di tcplog e di icmplog, in grado rispettivamente di annotare le connessioni TCP e l'utilizzo del protocollo ICMP. Non è niente di eccezionale, ma qualcosa di utile nel caso non si abbiano strumenti migliori.
Non c'è molto da aggiungere sull'utilizzo di questi due demoni: basta fare in modo che la procedura di inizializzazione del sistema provveda ad avviarli e loro si arrangiano. Non occorre alcuna configurazione.
È probabile che questo pacchetto abbia uno sviluppo futuro, aggiungendo varie forme di identificazione di attacchi noti.
Psad, (10) ovvero Port scan attack detector è un sistema di controllo che si basa sull'analisi di una porzione del registro di sistema, alla ricerca di annotazioni fatte dalla gestione del filtro dei pacchetti dei kernel Linux 2.4.*.
In pratica, si comincia dalla definizione di regole di filtro dei pacchetti con Iptables (capitolo 252), a cui si aggiungono delle istruzioni per annotare il traffico che non si desidera:
iptables -t filter -A posizione [altre_opzioni] -j LOG --log-prefix " DROP" |
Generalmente, se si utilizza una politica predefinita di eliminazione dei pacchetti, si inseriscono regole che abilitano espressamente il passaggio di ciò che si desidera lasciare circolare. In questo modo è sufficiente mettere alla fine le istruzioni con cui si richiede di annotare il traffico rimanente, che di conseguenza non è desiderato. Supponendo che venga controllato il traffico in ingresso e quello in attraversamento, si possono aggiungere in coda le istruzioni seguenti:
|
Per utilizzare Psad è necessario, a questo punto, intervenire nel file /etc/syslog.conf
, in modo da dirigere i messaggi di tipo kern.info in un file FIFO (pipe con nome): /var/run/psadfifo
.
|
Se Psad è stato installato a partire da un pacchetto già pronto per la propria distribuzione GNU/Linux, dovrebbe essere messo in funzione in modo automatico, per opera della procedura di inizializzazione del sistema; diversamente può essere avviato l'eseguibile psad, con l'aggiunta eventuale di qualche opzione per indicare al programma la collocazione dei file di configurazione.
I file di configurazione dovrebbero trovarsi nella directory /etc/psad/
e il più importante da prendere in considerazione è /etc/psad/psad.conf
. In questo file di configurazione vengono specificate in particolare le collocazioni dei file utilizzati da Psad per annotare le informazioni ottenute a proposito degli accessi rifiutati dal sistema di filtro dei pacchetti, file che dovrebbero trovarsi nella directory /var/log/psad/
in condizioni normali. In generale, nel file di configurazione /etc/psad/psad.conf
può essere utile specificare un indirizzo di posta elettronica a cui mandare gli avvertimenti generati da Psad, con la direttiva seguente:
|
Teoricamente, Psad potrebbe essere in grado di riprogrammare le regole relative al filtro dei pacchetti (attraverso Iptables), ma questo forse è meglio evitarlo, a meno di conoscere perfettamente il suo funzionamento:
|
Se si mette in funzione Psad quando la gestione del filtro dei pacchetti non include una regola che produce annotazioni adatte nel registro di sistema, viene generato un messaggio di avvertimento, inviato all'indirizzo di posta elettronica previsto per questo genere di informazioni. A ogni modo, si può verificare facilmente se Psad è in grado di svolgere il suo lavoro correttamente, provando una scansione con Nmap (capitolo 266):
nmap indirizzo_ip |
È molto probabile, in base alla configurazione standard contenuta nel file /etc/syslog.conf
, che si vedano apparire le segnalazioni generate dal filtro dei pacchetti anche sulla console attiva. Se la scansione viene intercettata, ovvero, se il sistema di filtro dei pacchetti intercetta la scansione, si dovrebbe ottenere quasi subito un messaggio di posta elettronica, simile a quello seguente:
|
Netcat6 (11) è un programma creato allo scopo di leggere e scrivere dati attraverso delle connessioni di rete TCP o UDP. Si tratta di uno strumento generico, vagamente simile a un cliente TELNET, con la differenza che può funzionare anche con il protocollo UDP. Le potenzialità di questo programma sono notevoli, ma qui vengono mostrate solo alcune delle sue caratteristiche; per il resto si può leggere la sua documentazione, che per essere compresa richiede comunque un po' di esperienza nella gestione delle reti TCP/IP.
Netcat6 può funzionare, quasi indifferentemente, come cliente o servente di una connessione; per questo è uno strumento ottimale per la verifica del funzionamento delle connessioni di rete e non solo. In un certo senso, l'eseguibile nc6, ovvero ciò che costituisce Netcat6, è paragonabile idealmente al programma dd, con la differenza che invece di fare riferimento a dei dispositivi, si lavora con la rete a livello di trasporto TCP e UDP: il quarto nel modello ISO-OSI.
L'eseguibile nc6 è tutto ciò che compone Netcat6. Questo programma instaura una connessione, in qualità di cliente o di servente, utilizzando il protocollo TCP oppure UDP, trasmettendo ciò che ottiene dallo standard input e restituendo attraverso lo standard output ciò che riceve dall'altro capo.
nc6 [opzioni] nodo porta |
nc6 -l -p porta [nodo [porta]] |
L'uso di Netcat6 differisce fondamentalmente a seconda del fatto che si voglia raggiungere un servizio in ascolto presso un nodo, a una porta determinata, oppure che si intenda avviarlo per restare in ascolto in attesa di una richiesta di connessione. Nel secondo caso si usa l'opzione -l (Listen).
Il funzionamento di questo programma si comprende meglio attraverso degli esempi, ma per il momento viene mostrato il significato di alcune opzioni.
|
L'esempio seguente, serve a instaurare una connessione TCP con il servente SMTP dinkel.brot.dg
:
$
nc6 dinkel.brot.dg smtp
[Invio]
Un uso interessante di Netcat6 è quello con il quale si ottiene un trasferimento dati senza bisogno di una shell remota (rsh per esempio). Per questo, da una parte occorre avviare l'eseguibile nc6 in ascolto di una certa porta TCP, mentre dall'altra si utilizza sempre nc6 in modo che cerchi di contattare quella porta di quel nodo. Il canale che si crea può essere sfruttato per questo scopo.
$
nc6 -l -p 1234 | tar xzpvf -
[Invio]
In questo modo, Netcat6 viene avviato in ascolto della porta 1 234, che si presume sia libera. Il suo standard output viene passato a tar che deve occuparsi di estrarne il contenuto nella directory corrente. In pratica, si presume che Netcat6 debba ricevere dalla porta 1 234 un file corrispondente a un archivio tar+gzip e che questo debba essere riprodotto localmente.
$
tar czf - /home/tizio | nc6 dinkel.brot.dg 1234
[Invio]
Questo comando è la controparte dell'esempio mostrato prima: viene archiviata la directory /home/tizio/
e passata all'eseguibile nc6 attraverso un condotto. Evidentemente, dinkel.brot.dg
è il nodo all'interno del quale deve essere riprodotta tale directory.
Netcat6 può essere usato per ridirigere una connessione TCP, per esempio attraverso un firewall. Gli esempi seguenti si riferiscono a Inetd, pertanto si tratta di direttive del file /etc/inetd.conf
.
|
In questo caso, le richieste TCP per la porta www (ovvero 80), sono ridirette attraverso Netcat6 verso il nodo roggen.brot.dg
alla stessa porta.
|
Questa è solo una piccola variante dell'esempio precedente, in cui si presume che il vero servente HTTP si trovi sempre nel nodo roggen.brot.dg
, ma sia in ascolto della porta 1 234.
Appunti di informatica libera 2006.07.01 --- Copyright © 2000-2006 Daniele Giacomini -- <daniele (ad) swlibero·org>
3) Fuser utilizza in pratica le informazioni contenute nella directory /proc/
.
4) Tcpdump software libero con licenza speciale
6) Sniffit software libero con licenza speciale
7) Questo esempio viene mostrato proprio per far comprendere quanto vulnerabile sia un terminale remoto che non utilizzi una comunicazione cifrata.
Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome strumenti_per_il_controllo_e_l_x0027_analisi_del_traffico_ip.htm
[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [translators] [docinfo] [indice analitico]