Laboratorio
di Software per le Telecomunicazioni
Verifica Intermedia
A metà del corso, viene svolta una prova di laboratorio
obbligatoria, che ha lo scopo di stimolare la percezione da parte dello
studente del livello di assimilazione di quanto appreso fin qui. Tale
prova ha pertanto il senso di una verifica, e si svolge con una di due
modalità alternative:
oppure
- svolgimento di una tesina su di un argomento specifico
In entrambi i casi, i risultati devono essere inviati per email all'indirizzo alef@infocom.ing.uniroma1.it entro il 15 Aprile 2007, citando nell'oggetto "prova intermedia". Inoltre, ci si iscriva anche alla mailing list LabSofTel appositamente predisposta.
Qui di seguito, la descrizione di uno strumento per il login remoto, ed alcune esercitazioni svolte con il fine preparatorio alla verifica intermedia.
Habemus SSH
Dopo avere individuato e contattato il fornitore di connettività
Internet della sede di Cisterna, ora è possibile entrare in un
computer che si trova in via Eudossiana, e da lì eseguire i
comandi che sarebbero altrimenti bloccati (ICMP, ping, traceroute, whois, nmap). Presso 151.100.122.171 (labtel.ing.uniroma1.it) è presente un account cisterna, con cui autenticarsi con le solite credenziali.
Per entrare nel computer remoto, si utilizza il protocollo ssh
(Secure Shell), che offre una shell remota (ovvero una finestra
terminale localizzata su labtel), con in più la caratteristica
che i dati in transito sono crittografati, in modo da poter usare con
disinvoltura anche password di amministrazione, dato che anche se la
connessione è intercettata, è praticamente impossibile
leggerne il contenuto.
Un'altra caratteristica molto importante di ssh, è il port forwarding,
che permette di rispondere in locale alle connessioni che raggiungono
il computer remoto, ed in particolare, di ricevere in locale le
finestre delle applicazioni grafiche che sono eseguite sul computer
remoto.
Pertanto, ogni volta che i comandi eseguiti localmente non hanno
effetto, a causa delle limitazioni imposte al routing, questi possono
essere eseguiti sulla macchina remota:
- aggiungere la linea 151.100.122.171 labtel nel file /etc/hosts (si usi il comando gedit /etc/hosts) in modo da poter invocare il nome anziché l'indirizzo IP
- verificare che la modifica abbia avuto effetto mediante il comando getent hosts
- eseguire ssh -X -l cisterna labtel, inserire
la password consueta (l'opzione -X configura automaticamente anche alcune
variabili di ambiente)
Esercitazioni preparatorie
Avendo a disposizione il login remoto via ssh, è possibile sperimentare alcune delle esercitazioni precedenti:
- svolgere gli esercizi di traceroute
- fare il traceroute con il cile (o qualche altro posto ameno preso da qui)
- contare i salti (es 20)
- esaminare i ritardi, e provare a desumere i collegamenti transoceanici
- usando i comandi whois e host,
tentare di verificare dove si trovano e da chi sono gestiti, i router
agli estremi dei collegamenti a lunga distanza. Es: interrogando whois bbint-santgo-rinconadasal-2-pto-0-3.uninet.net.mx non si ottiene risposta, ma con host il dominio si risolve in 201.125.235.65, che risulta intestato a Uninet S.A. de C.V. di Città del Messico
- tentare di raccogliere informazioni relative al sistema
autonomo a cui appartiene il router selezionato. Ad esempio, cercando
con google Uninet S.A. de C.V., trovo questa pagina,
che lo associa a AS28513, mostrando quali sono i prefissi annunciati, e
quali gli altri AS con cui viene fatto peering. In modo equivalente, a
partire dal record ownerid: MX-USCV4-LACNIC restituito dalla precedente query whois, una successiva query whois MX-USCV4-LACNIC rivela anche la proprietà di AS8151, e evidenzia tutti i prefissi annunciati
- eseguire gli esercizi relativi al portscan
- eseguendo (su labtel) il comando netstat -tcp -n (si consulti la pagina man
per capirne il significato) si osservi l'indirizzo da cui risulta
arrivare la conssione sulla porta 22 (ssh), scoprendo quindi
l'indirizzo con cui ci presentiamo
- eseguiamo il comando nmap diretto verso il nostro indirizzo di cisterna, ed osserviamo il risultato. Quali sono i servizi attivi ?
- confrontiamo ciò che si è ottenuto prima, con
quello che si può ottenere eseguendo un nmap da cisterna, verso
label.
Per semplificare le cose, ho catturato questo traffico mentre ero collegato in ssh da remoto su labtel, ed ho visitato questi link:
Farsi spiegare come si programma un filtro di visualizzazione per
Wireshark. Quindi, dopo aver caricato il file di traffico catturato,
eseguire le analisi indicate ai punti 9-18 della prima prova di questa esercitazione. Quindi, sempre a partire dallo stesso file di cattura, eseguire le analisi indicate ai punti 10-21 della seconda prova della stessa esercitazione.
Verifica
Sono previste due
modalità alternative:
oppure
- svolgimento di una tesina su di un argomento specifico
In entrambi i casi, i risultati devono essere inviati per email all'indirizzo alef@infocom.ing.uniroma1.it
entro il 15 Aprile 2007, citando nell'oggetto "prova intermedia". Le
risposte devono contenere il numero della domanda a cui si riferiscono.
E' possibile lavorare compilando un file, e
spedirlo alla fine, in allegato. Nel caso di domande dirette, è
sconsigliato rispondere con un semplice copia-e-incolla.
Esperimenti Guidati
- 1. cos'è il modello ISO/OSI ?
- 2. qual'è lo scopo dello strato di trasporto?
- 3. qual'è la differenza più evidente tra lo strato di rete e quello di trasporto ?
- 4. in cosa consiste l'incapsulamento ?
- 5. in una URI del tipo http://en.wikipedia.org/wiki/URI_scheme, qual'è la parte relativa al fully qualified domain name?
Aprire il programma Wireshark, e caricare questo file di capture
- 6. qual'è l'indirizzo IP di destinazione del pacchetto numero 12? chiamiamolo Ip0
- 7. qual'è l'indirizzo Ethernet di destinazione dello stesso ? Chiamiamolo Et1
- 8. di quanti byte è costituita l'intestazione ethernet? e quella IP?
- 9. qual'è il protocollo di trasporto incapsulato nel pacchetto 12 ?
- 10. qual'è indirizzo di trasporto del mittente del pacchetto 12? e quello del destinatario?
Risalendo all'indietro con i numeri di pacchetto, trovare il primo
pacchetto che presenta come indirizzo Ethernet di sorgente, lo stesso (Et1) individuato nella domanda precedente, come destinazione.
- 11. di che pacchetto si tratta?
- 12. qual'è l'indirizzo IP dell'host che ha indirizzo ethernet Et1? Chiamiamolo Ip1
- 13. Ip0 ed Ip1 sono uguali o diversi ? Che tipo di dispositivo potrebbe essere, quello con IP pari ad Ip1 ?
spostiamo ora l'attenzione al pacchetto n. 13, una risposta da parte del DNS
- 14. quante domande, risposte, record autorevoli ed addizionali, sono presenti?
- 15. cosa significano i tipi di RR presenti tra le risposte?
- 16. se fosse stata presente solo la prima risposta, la domanda sarebbe potuta essere considerata esaudita ?
- 17. cosa viene comunicato nella sezione di risposta autorevole ? a cosa può servire questa informazione ?
- 18. per qualunque cosa potessero servire i dati della
risposta autorevole, sarebbero stati sufficienti, se non ci fossero le
informazioni presenti nella sezione addizionale ?
- 19. insomma, qual'è la risposta alla domanda originaria ? annotarsi questo indirizzo come Ip2
Proviamo ad investigare un pò sul computer che ospita le pagine
di wikipedia versione italiana. Colleghiamoci in ssh ad un computer di
Ingegneria di Roma, in modo da poter eseguire il comando whois,
digitando ssh 151.100.122.171, ed eseguendo il comando whois Ip2 (mettendo ovviamente, l'indirizzo vero)
- 20. chi risulta essere OrgName ?
- 21. leggendo ciò che è scritto nei commenti, si
apprende che l'intestatario esatto dell'IP può essere
localizzato presso http://www.ripe.net/whois, dove dirigiamo il nostro browser web, per ripetere la domanda relativa a Ip2. Chi risulta ora, nel campo descr ? Sappiamo trovare una email a cui rivolgerci? un telefono ?
- 22. più in basso, cliccare sul link offerto dalla chiave origin, troviamo delle informazioni... su che cosa ?
- 23. proviamo a visitare allora http://www.robtex.com/asmacro/as-surfnet.html ... ci dice qualcosa? cosa potremmo stare osservando?
- 24. cambiamo argomento, ora. Quali servizi starà offrendo
il computer che ospita wikipedia versione italiana?? Dalla nostra ssh, eseguiamo nmap Ip2. Quali servizi rispondono?
Riprendendo i risultati della analisi a cui si era giunti alla
domanda 13, ordinare il traffico in base all'indirizzo di sorgente, e
posizionarsi all'altezza dei pacchetti che hanno Ip1 come IP di origine
- 25. cosa si trova scritto alla colonna protocollo, per questi pacchettti?
- 26. posizionarsi sulla finestra intermedia, sopra il nome del
protocollo appena trovato, cliccare con il tasto destro del mouse,
e selezionare Wiki protocol page. Cosa appare ? Trascrivere il nome del protocollo, e chiudere la nuova finestra che si è aperta.
- 27. posizionarsi ora sulla riga del protocollo più esterno
(IP), aprirne il dissettore dei campi, ed individuare il numero di
protocollo incapsulato da questi pacchetti.
proviamo ora a seguire ciò che accade quando si richiede una pagina web
- 28. cosa rappresentano i pacchetti 14, 15 e 16? qual'è il loro scopo?
- 29. qual'è il numero di porta effimera di trasporto usata dal lato client?
- 30. che dimensione ha l'intestazione di un pacchetto TCP? come si confronta con quella dell'UDP ?
cliccando con il tasto destro sul pacchetto n. 14, e richiedendo Follow TCP Stream, generare il filtro di visualizzazione che mostra solo il traffico della pagina richiesta. Cliccando su Statistics/Summary, con il display filter attivo, notare
- 31. quanto tempo passa tra il primo pacchetto di apertura TCP, e quello della sua chiusura
- 32. la velocità media di questa comunicazione
- 33. il numero totale di bytes scambiati
- 34. il numero totale di bytes diretti nella sola direzione del
client (suggerimento: modificare il display filter selezionando anche
l'IP di destinazione, e ripetere il comando Statistics/Summary
ma se parliamo di TCP...
- 35. quante e quali chiamate di sistema devono essere effettuate verso l'interfaccia socket, perché un programma applicativo possa eseguire una richiesta TCP ad un server?
- 36. qual'è il comando accessibile direttamente dalla
shell, che permette di dialogare direttamente (da tastiera) con un
server TCP?
- 37. quali sono le diverse modalità di gestione delle richieste, da parte di un server TCP?
Ora però, tocca al traceroute. Caricare in Wireshark, il capture del traffico generato nell'ambito della ricerca dell'instradamento tra l'ISP libero e l'australia, ed applicare il display filter (!(dns)) && !(arp)
- 38. quanti pacchetti sono rimasti?
- 39. a cosa servivano le richiese al DNS che sono state eliminate dal filtro?
- 40. richiedere Statistics/Flow Graph, ed osservare il risultato. Quanti tentativi vengono fatti per ogni hop ?
- 41. quanto vale il campo TTL dell'intestazione IP del pacchetto n. 55?
- 42. cosa contiene il payload ICMP del pacchetto n. 56?
Tesine
Le tracce delle tesine, così come le loro assegnazioni e svolgimento, si trovano ora nella sezione Wiki del corso.