Strumenti di diagnostica - Dipartimento di Informatica

Transcript

Strumenti di diagnostica - Dipartimento di Informatica
Centro di competenza per la
progettazione di sistemi dedicati
Strumenti di sistema e diagnostica
Tracce di esercitazione per l’uso degli strumenti di diagnostica di rete. Si faccia riferimento alle
slides, ai testi di riferimento per il corso ed all’aiuto on-line per i vari comandi.
tcpdump
Descrizione:
- strumento per leggere il traffico (sniffing): descrizione e sintassi del comando tcpdump
o sintassi del filtro: type (host,net,port), dir (src, dst, src or/and dst), proto
(tcp,udp,arp,ip,arp,rarp ..)
- privilegi utente: nella maggior parte dei casi occorre essere root
E1. Lettura del traffico:
1. Sniffig di tutto il traffico con un numero di pacchetti pari a 30 (tcpdump –c 30) –
individuazione delle principali categorie di pacchetti.
2. Sniffing del traffico ARP (tcpdump arp) – è un traffico di broadcast e quindi tutti i pacchetti
delle richieste sono visibili. Le risposte sono visibili solo se la richiesta è stata fatta dalla
macchina su cui si sta sniffando il traffico.
3. Esempio di espressioni per la selezione del traffico
o
o
o
dst host 157.27.241.15 and port 389 -> ldap
tcp and port 25 -> SMTP
tcp[13]= <n> -> selezione in base al valore dei bit di controllo
ethereal
Descrizione:
Versione grafica per lo sniffing del traffico
- Interfaccia utente
- Filtri di cattura (analoghi a quelli di tcpdump)
- Filtri di visualizzazione – uso del wizard
E2. Lettura del traffico
Eseguire le medesime letture del traffico fatte per tcpdump filtrando i pacchetti con i filtri di
visualizzazione (http://ethereal.com.es/docs/user-guide)
ping
Descrizione:
Strumento per determinare la presenza di una macchina in rete e la sua raggiungibilità.
E3. uso del ping
- Utilizzo del comando per verificare la presenza di un host:
o
-
ping 157.27.241.15
Ping di un indirizzo di broadcast con 2 richieste:
o
ping –c 2 –b x.x.x.255
Si nota che i ttl sono diversi in base ai vari sistemi operativi.
Si ottengono duplicati dei pacchetti. Il primo pacchetto è correttamente ricevuto,
1
presso Dipartimento di Informatica
Università di Verona
Strada Le Grazie 15, 37134 Verona, Italia
Tel. +39 045 8027062, Fax +39 045 8027929
Centro di competenza per la
progettazione di sistemi dedicati
-
mentre i successivi sono considerati duplicati. . In condizioni normali (non di
broadcast) questo può essere sintomo di un problema (es. superflua re-trasmissione
dei pacchetti).
Ping sweep: in base al numero di duplicati si capisce velocemente quante macchine
sono attive sulla rete (meno l’interfaccia di loopback se non si usa l’opzione -L)
Raggiunta di un host con ttl troppo basso in modo da generare il “Time to live
exceeded”:
o
-
o
-
ping –t7 157.27.6.205
Individuazione del ttl della macchina eseguendo ping sulla macchine con l’interfaccia di
loopback
ping 127.0.0.1
Disabilitazione del ping sotto Linux
o Temporaneamente
!
!
!
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_brodcasts
sysctl –w net.ipv4.icmp_echo_ignore_all=”1”
o Definitivamente
! Modifica del file /etc/sysctl.conf impostando il valore della variabile
net.ipv4.icmp_echo_ignore_all e/o
net.ipv4.icmp_echo_ignore_broadcasts
-
Ping di www.google.it (non si raggiunge perché non si riesce a andare oltre il
157.27.7.54)
La lettura del traffico con tcpdump è possibile con il comando:
!
tcpdump –tn icmp and host <host_da_raggiungere>
NOTA: dalla rete 157.27.241.0/24 non si riesce a raggiungere la maggior parte delle
macchine su altre sottoreti. Eccezione vale per il server di risoluzione dei nomi
157.27.10.10 che si può usare per gli esempi sopra. Dato che è ad un solo hop di
distanza è sufficiente impostare un time to live pari a ‘1’ per ottenere la risposta ‘Time
to live exceeded’.
traceroute
Descrizione
Strumento per l’individuazione di percorsi in rete. Utile per individuare punti di rottura della rete e
malfunzionamento.
E4. Uso del comando traceroute
- Utilizzo del comando per individuare i percorsi per raggiungere degli host a distanze
(hop) diverse (Es. masterdir – 157.27.6.205 a 8 hop di distanza dalla 242.255)
- Traceroute www.google.it (si ferma al 7.54)
- Lettura del traffico con tcpdump del comando sopra (meglio risolvere www.google.it in
66.249.95.99 per evitare le richieste al nameserver)
o
tcpdump –vt \
(dst host 66.249.95.99 and udp) or \
(icmp and host 157.27.242.80)
Si vede che traceroute invia richieste udp verso le porte [33435/6/7 …] (prima parte
2
presso Dipartimento di Informatica
Università di Verona
Strada Le Grazie 15, 37134 Verona, Italia
Tel. +39 045 8027062, Fax +39 045 8027929
Centro di competenza per la
progettazione di sistemi dedicati
del filtro) con ttl incrementato di una unità fino al timeout (max hop). Le risposte
sono di tipo icmp (seconda parte del filtro) da parte dei router. Il hop successivo a
157.27.7.54 non risponde alle richieste ECHO_REQUEST.
NOTA: dalla rete filtrata dei laboratori non si riesce ad utilizzare in modo appropriato
questo tool. Le prove possono essere fatte utilizzando i server accessibili dalla rete,
come ad esempio il name server (157.27.10.10)
netstat
Descrizione
Comando per visualizzare dati sul sottosistema di rete
E5. Visualizzazione di alcuni parametri del sottosistema di rete
- visualizzazione delle connessioni di rete come socket aperti (opzioni –a –n e –p le più
utili)
(descrizione del problema del massimo numero di inode)
- visualizzazione della tabella di routing (netstat –route)
nslookup
Descrizione:
Strumento per l’interrogazione di server DNS. Generalmente si usa per fare interrogazioni di tipo A
(da un nome ad un indirizzo) o di tipo PTR (da un indirizzo ad un nome). E’ comunque possibile
fare interrogazioni su tutti i tipi di record come MX, NS e CNAME.
E6. Esempi del comando nslookup
- Modalità non interattiva:
o
o
-
nslookup
nslookup
nslookup
nslookup
157.27.242.81 (Richiesta di record tipo PTR)
zeus.sci.univr.it (Richiesta di record tipo A)
zeus (Richiesta A senza estensione di dominio)
zeus 157.27.6.20 (Richiesta con particolare server dns)
o
o
Modalità interattiva
o
o
o
o
o
o
o
o
o
o
o
o
o
o
o
$>
$>
$>
$>
$>
$>
$>
$>
$>
$>
$>
$>
$>
$>
$>
nslookup
set all
zeus (richiesta di tipo A)
set domain=univr.it (cambio del dominio di ricerca)
zeus (richiesta di tipo A – fallisce)
set domain=sci.univr.it
set querytype=MX
sci.univr.it
univr.it (notare la risposta non autoritaria)
set querytype=PTR
zeus (richiesta di tipo A che fallisce)
set querytype=ANY
set debug (modalità di debug)
zeus (è mostrato il record MX relativo al dominio)
zeus
3
presso Dipartimento di Informatica
Università di Verona
Strada Le Grazie 15, 37134 Verona, Italia
Tel. +39 045 8027062, Fax +39 045 8027929
Centro di competenza per la
progettazione di sistemi dedicati
Nella modalità di debug sono mostrati tutti i campi della risposta: (1) Question, (2)
Answer, (3)Authority, (4) Additional. Inoltre con alcune versioni di nslookup (es.
Windows) si ha anche la visualizzazione della richiesta dei dati sul server prima di
inoltrare la richiesta vera e propria.
-
Visualizzazione del traffico generato con tcpdump:
o
tcpdump –vvtns 200 \
host 157.27.10.10 and udp
$> tcpdump -vvtns 200 host 157.27.10.10 and udp
tcpdump: listening on eth0
157.27.242.70.39404 > 157.27.10.10.domain: [udp sum ok] 40450+ A? zeus.sci.univr.it. (35) (DF)
(ttl 64, id 0, len 63)
157.27.10.10.domain > 157.27.242.70.39404: [udp sum ok] 40450*
q: A? zeus.sci.univr.it. 1/2/2 zeus.sci.univr.it. A 157.27.242.81
ns: sci.univr.it. NS ns.sci.univr.it., sci.univr.it. NS www.sci.univr.it.
ar: ns.sci.univr.it. A 157.27.10.10, www.sci.univr.it. A 157.27.10.20 (118) (DF) (ttl 63, id
20276, len 146)
In alcuni casi non si riesce a visualizzare il traffico completo nelle varie parti per
problemi (sembra) con la scheda (bad udp sum). In questi casi usare Ethereal.
host
Descrizione
Strumento di interrogazione DNS molto simile a nslookup
E7. Esempi dell’uso di host
- Interrogazioni di base:
o
o
o
host zeus
host –a 157.27.242.81 157.27.6.20
host –t=MX zeus.sci.univr.it
telnet
Descrizione
Client tcp per connessione remota. Utile per verificare la funzionalità dei servizi in modalità
testuale.
E8. Uso di telnet per la diagnostica
- Connessione ad un server http e smtp e realizzare alcune richieste
o POP3: username <username>
o SMTP: helo domain, mail from: account, rcpt to: account, data <cr>, input + .
o HTTP: GET /index.htm
- Visualizzazione del 3-way handshaking. Con tcpdump inviduare lo scambio dei
pacchetti tra client e server nella connessione http o smtp con telnet.
o 1. Client invia un SYN packet (control bits = 2)
!
tcpdump –tn tcp[13]=2 and dst host <server_host>
o 2. Server risponde con un SYN/ACK packet (control bits = 18)
!
tcpdump –tn tcp[13]=18 and src host <server_host>
4
presso Dipartimento di Informatica
Università di Verona
Strada Le Grazie 15, 37134 Verona, Italia
Tel. +39 045 8027062, Fax +39 045 8027929
Centro di competenza per la
progettazione di sistemi dedicati
o 3. Client invia un ACK packet (control bits = 16)
!
CWR
7
-
tcpdump –tn tcp[13]=16 and dst host <server_host>
ECE
6
URG
5
TCP Control octet
ACK
PSH
RST
4
3
2
SYN
1
FIN
0
Lettura del traffico con tcpdump con l’opzione –X attiva per visualizzare i dati scambiati
in formato ascii.
nmap
Descrizione
Strumento per la rilevazione di informazioni sulla rete:
E9. Scansioni della rete con nmap
- esempi di diversi tipi di scansione:
o ping sweep:
!
!
nmap –sP 157.27.241.15
nmap –sP 157.27.241.15/24
o Scansioni particolari (-sT, -sS)
!
!
!
nmap –sS 157.27.241.15/24 (silent scan)
nmap –sT 157.27.241.15/24 (attacco individuabile)
visualizzazione con tcpdump dei pacchetti generati per la
scansione delle porte individuando una macchina in
particolare (157.27.241.xx) ed utilizzando un filtro del
tipo:
• src or dst host 157.27.241.xx
o Visualizzazione con uno sniffer del traffico generato da nmap per effettivamente
vedere la generazione dei pacchetti fittizi (-sF, -sX, -sN) distinguendo sulla base
dei bit di controllo.
! FYN =1 => tcp[13]=1
! NULL =>tcp[13]=0
! Xmas => tcp[13]= ?
o Attivazione del verbose (-v) e dell’opzione –O per desumere i dati del sistema
operativo
-
nmapfe: tool grafico per effettuare interrogazioni con nmap.
5
presso Dipartimento di Informatica
Università di Verona
Strada Le Grazie 15, 37134 Verona, Italia
Tel. +39 045 8027062, Fax +39 045 8027929