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