ECE 316 - Operating Systems and Networking Laboratory Practical Assignment 1 (Due: 25/01/2018) Report: Your report should be sent via email to lab teaching assistant (akoulo02@ucy.ac.cy or gplast01@ucy.ac.cy ) prior the assignment examination and must include the usual cover page. In your report, include any comments and description you may want to add. Email subject line should only consist of ECE316_1_2018. Naming format for the zip file: lastname.zip Σκοπός της πρώτης σειράς ασκήσεων είναι, κατ αρχήν, η εξοικείωση με τις βασικές δικτυακές δυνατότητες της οικογένειας λειτουργικών συστημάτων Linux και Microsoft Windows (παρόμοια εργαλεία υπάρχουν και στα δύο λειτουργικά). Επιπλέον, θα έχετε μια πρώτη επαφή με το wireshark, το οποίο είναι ένα εργαλείο ανάλυσης πρωτοκόλλων σε γραφικό περιβάλλον. Για την ανεύρεση των στοιχείων που ζητούνται στη συνέχεια, μπορείτε να χρησιμοποιήσετε είτε εντολές του λειτουργικού συστήματος ή πληροφορίες μέσω του γραφικού περιβάλλοντος. Χρήσιμες εντολές τερματικού είναι οι hostname, ip a (Linux) ή ipconfig (Windows), net, netstat, nbtstat και route. 1. [10%] Βασικά χαρακτηριστικά καρτών δικτύωσης: Κάθε κάρτα δικτύου διαθέτει μια φυσική διεύθυνση, αυτήν του υποστρώματος MAC. Έχει μήκος 48 bit και η δομή της ορίζεται στο πρότυπο IEEE 802. Το πρώτο bit ορίζει το εάν πρόκειται για Ομαδική ή Ατομική διεύθυνση, το δεύτερο bit το εάν είναι Τοπική ή Μοναδική διεύθυνση, τα επόμενα 22 bit προσδιορίζουν τον κατασκευαστή της κάρτας και τα τελευταία 24 bit είναι ο αύξων αριθμός της κάρτας. Διεύθυνση με μόνο 11 1 υποδηλώνει εκπομπή (broadcast). Για τον υπολογιστή σας, βρείτε και καταγράψτε: a. Την ονομασία της κάρτας δικτύου (Network adapter) b. Την ταχύτητα της σύνδεσης c. Τη διεύθυνση υποστρώματος MAC σε δεκαεξαδική μορφή d. Τον κατασκευαστή της κάρτας δικτύωσης. e. Τα συνδεδεμένα με αυτήν πρωτόκολλα δικτύωσης f. Τη διακοπή (interrupt - IRQ) που χρησιμοποιεί 2. [20%] Βασικά πρωτόκολλα επικοινωνίας και τα ports τους: Επεξηγήστε τι σημαίνουν τα αρχικά TCP και UDP, τη σημασία τους και τις διαφορές μεταξύ τους. Στη συνέχεια βρείτε και καταγράψτε την ονομασία και τα διαφόρα ports που αντιστοιχούν στο καθένα από τα πάρακάτω πρωτόκολλα καθώς και μια γραμμή όπου να επεξηγείτε με λίγα λόγια τη σημασία τους και σε ποια κατηγορία πρωτοκόλλων ανήκουν: 1
# Protocol Acronym Protocol Name Port Number Description TCP/UDP 0 HTTP Hyper-Text Transfer Protocol 80 8080 1 HTTPS 2 FTP 3 FTPS 4 IMAP 5 POP3 6 SMTP 7 NTP 8 DNS 9 DHCP 10 Telnet 11 SSH Αποτελεί το κυρίως πρωτόκολλο που χρησιμοποιείται από τους πλοηγούς διαδικτύου για να μεταφέρει τα διάφορα πακέτα ανάμεσα σε client και server. TCP 3. [20%] Πρωτόκολλο επικοινωνίας TCP/IP Κάθε δικτυακή διεπαφή ενός host διαθέτει τη δική της διεύθυνση IP, η οποία είναι λογική (όχι φυσική). Οι δρομολογητές έχουν πολλαπλές διεπαφές και κάθε μία διαθέτει τη δική της διεύθυνση IP. Η τρέχουσα έκδοση του IP είναι η 4 και οι αντίστοιχες διευθύνσεις λέγονται IPv4. Αυτές έχουν μήκος 4 byte και δομή ιεραρχίας δύο επιπέδων: 1. Αριθμός δικτύου 2. Αριθμός host Το όριο μεταξύ των επιπέδων αυτών, καθορίζεται από τη μάσκα υποδικτύου (subnet mask). Οι διευθύνσεις IP διακρίνονται από τα αρχικά bit της διεύθυνσης σε κατηγορίες (classes): 0: class A (πρώτο byte <128) 10: class B (πρώτο byte στην περιοχή < 128-191) 110: class C (πρώτο byte στην περιοχή < 192-223) 1110: class D (πρώτο byte στην περιοχή < 224-239) 11110: class E (πρώτο byte στην περιοχή < 240-247) Αφού μελετήσετε το help για τις εντολές hostname, ip a (Linux), ipconfig (Windows), route, netstat, nbtstat και net, δίνοντας έμφαση στις επιλογές view και config της τελευταίας, να απαντήσετε στα ακόλουθα ερωτήματα και να καταγράψετε μαζί με την απάντηση την ακριβή σύνταξη της εντολής που χρησιμοποιήθηκε: a. Το όνομα του υπολογιστή σας b. Την περιοχή (Workstation/Logon domain) που ανήκει ο υπολογιστής σας c. Τη διεύθυνση IP του υπολογιστή σας d. Την κατηγορία (class) που ανήκει η διεύθυνση IP του υπολογιστή σας. e. Τη διεύθυνση υποστρώματος MAC f. Τη μάσκα του υποδικτύου 2
g. Τη διεύθυνση IP της προκαθορισμένης πύλης (default gateway) h. Το όνομα της περιοχής DNS i. Τη διεύθυνση IP του εξυπηρετητή DNS j. Τη διεύθυνση IP του εξυπηρετητή DHCP και τη διάρκεια της περιόδου απονομής (lease) k. Τον αριθμό των πιο κάτω που στάλθηκαν/ελήφθησαν από τον υπολογιστή σας: i. Πακέτων IP ii. Μηνυμάτων ICMP iii. Τμημάτων TCP iv. Δεδομενογραφημάτων UDP 4. [30%] Αναλυτής Πρωτοκόλλων Wireshark Το Wireshark είναι ένα ανοιχτού κώδικα λογισμικό που χρησιμοποιείται για ανάλυση δικτύου, παρακολούθηση δικτύου, εντοπισμό και αντιμετώπιση προβλημάτων στα δίκτυα και για εκπαίδευση. Η άσκηση αυτή αποτελεί εισαγωγή στη χρήση του αναλυτή πρωτοκόλλων Wireshark, του οποίου οι βασικές λειτουργίες είναι οι εξής: α) καταγραφή-σύλληψη (capture) και β) ανάλυση της δικτυακής κίνησης του υπολογιστή. Το Wireshark χρησιμοποιεί τη δικτυακή βιβλιοθήκη libpcap για την σύλληψη (ανάλυση) των πακέτων. Προσφέρει τη δυνατότητα χρήσης φίλτρων για διαφορετικούς τύπους πακέτων που θέλουμε να ανιχνεύσουμε καθώς επίσης και στατιστική ανάλυση και ανάλυση με γράφους. Το Wireshark είναι εργαλείο ανίχνευσης όπου σε καμιά περίπτωση δεν μπορεί ο χρήστης να στείλει πακέτα με αυτό ούτε μπορεί να χρησιμοποιηθεί ως προειδοποίηση για κάποιο εισβολέα του δικτύου. Για κάθε λειτουργία ο χρήστης μπορεί να ορίσει κατάλληλα φίλτρα καταγραφής/ανάλυσης τα οποία περιορίζουν την κίνηση που καταγράφεται/αναλύεται σύμφωνα με τα κριτήριά του. Έτσι, σύμφωνα με την ορολογία του Wireshark διακρίνουμε τα capture και τα display filters αντίστοιχα, τα οποία θα αναλυθούν στις επόμενες σειρές ασκήσεων. Ως εισαγωγικό παράδειγμα θα παρατηρήσετε την κίνηση που παράγεται από την επίσκεψη μιας ιστοσελίδας. Αφού ξεκινήσετε το Wireshark, οι διάφορες επιλογές που αφορούν τη λειτουργίας της καταγραφής ρυθμίζονται ακολουθώντας από το μενού επιλογών της διαδρομής Capture Options. Στο παράθυρο που εμφανίζεται βεβαιωθείτε ότι στο πεδίο Interface αναφέρεται το όνομα της κάρτας δικτύου του υπολογιστή σας (ερώτημα 2.1) και επιπλέον ότι η επιλογή Enable network name resolution είναι ενεργοποιημένη. **Στην περίπτωση που δεν σας εμφανίζει τις κάρτες δικτύων τρέξτε το Wireshark σαν administrators (δεξί κλικ στο εικονίδιο του Wireshark ->Run as administrator)! Πατώντας το Start αρχίζει η καταγραφή και εμφανίζεται σχετικό ενημερωτικό παράθυρο. Χρησιμοποιήστε ένα πλοηγό διαδικτύου (π.χ., Chrome) για να επισκεφτείτε κάποια ιστοσελίδα, π.χ. http://www.ucy.ac.cy/ece/en/undergraduate/general-information. 3
Μόλις φορτωθεί πλήρως η σελίδα πατήστε το Stop για να σταματήσει η καταγραφή. Στο κυρίως παράθυρο του Wireshark, φαίνεται η καταγεγραμμένη δικτυακή κίνηση, μπορεί όμως να παρατηρήσετε κίνηση που δε σχετίζεται με την επίσκεψη της ιστοσελίδας. Η ζητούμενη κίνηση μπορεί να απομονωθεί με την εφαρμογή φίλτρου παρατήρησης ως εξής: πηγαίνετε Analyze Display Filters και πατήστε το πλήκτρο Expression. Από το πεδίο Field name βρείτε την επιλογή IP, πατήστε το +, διαλέγετε την επιλογή ip.addr, από το πεδίο Relation διαλέξτε το ==, στο πεδίο Value (IPv4 address) πληκτρολογήστε την διεύθυνση IP που σας ενδιαφέρει (π.χ. 194.42.1.70) και πατήστε OK. Το φίλτρο ενεργοποιείται με το πάτημα του Apply. Κλείνοντας το παράθυρο διαλόγου (με ΟΚ) θα διαπιστώσετε ότι η κίνηση είναι ενδεχομένως περιορισμένη σε σχέση με την παρατήρηση χωρίς φίλτρο. a. Ποια είναι η διεύθυνση IP του http://www.ucy.ac.cy/ece/en/undergraduate/generalinformation b. Να καταγράψετε τα πρωτόκολλα που παρατηρείτε ότι χρησιμοποιούνται για την επικοινωνία με την ιστοσελίδα. c. Για καθένα από τα πρωτόκολλα του προηγούμενου ερωτήματος να γραφεί το επίπεδο που ανήκει σύμφωνα με το πρότυπο OSI. d. Γιατί εμφανίζονται τόσες πολλές συνδέσεις για την συγκεκριμένη ηλεκτρονική διεύθυνση? ( Για παράδειγμα, μία μόνο σύνδεση θα μπορούσε να μεταφέρει όλα τα δεδομένα της συγκεκριμένης ιστοσελίδας ) e. Πώς μπορούμε να διακρίνουμε με πoια TCP πακέτα συσχετίζεται ένα συγκεκριμένο HTTP πακέτο; f. Τοποθετήστε τον δρομέα σε ένα πακέτο HTTP, πιέστε το δεξί πλήκτρο του ποντικιού και επιλέξτε το Follow TCP Stream. Στο παράθυρο που θα εμφανισθεί, παρουσιάζονται τα δεδομένα που μεταφέρθηκαν μέσω του TCP, στη συγκεκριμένη περίπτωση, τα μηνύματα πρωτοκόλλου HTTP. i. Από το κείμενο που εμφανίζεται βρείτε: 1. Tον τύπο του εξυπηρετητή ιστού που φιλοξενεί τη σελίδα που επισκεφθήκατε 2. Tον τίτλο και το αντίστοιχο HTML tag της σελίδας που επισκεφθήκατε 3. Σε πιο σημείο του παραθύρου του browser εμφανίζεται αυτός ο τίτλος ii. Ποια είναι η σύνταξη του φίλτρου που εμφανίζεται τώρα στο παράθυρο του φίλτρου ανάλυσης; iii. Κλείστε το νέο παράθυρο που δημιουργήθηκε από το Follow TCP Stream. 1. Πόσα πακέτα με TCP πρωτόκολλο και πόσα με HTTP πρωτόκολλο εμφανίζονται τώρα στο κυρίως παράθυρο? Ποιος ο σκοπός των TCP και ποιος των HTTP; g. Πόσο χρόνο χρειάστηκε για να φορτωθεί η σελίδα με βάση το Wireshark; ( Χρόνος από το πρώτο μέχρι το τελευταίο πακέτο που λήφθηκε. ) 5. [20%]Αναπαραγωγή κλήσης Voice over IP (VoIP) με το Wireshark Αφού έχετε εξοικειωθεί με το λογισμικό Wireshark θα δούμε πως μπορούμε να αναπαραστήσουμε μία συνομιλία (VoIP) χρησιμοποιώντας τα πακέτα από το Wireshark. 4
Για το παράδειγμα θα χρησιμοποιήσουμε έτοιμο αρχείο από την καταγραφή μιας συνομιλίας. 1. Κατεβάστε το αρχείο με τα πακέτα της συνομιλίας από την σελίδα του Wireshark χρησιμοποιώντας το link: Wireshark VoIP capture sample. (Μπορείτε να κατεβάσετε και άλλα παραδείγματα από την ιστοσελίδα αν θέλετε να ασχοληθείτε περισσότερο) 2. Ανοίξτε το Wireshark λογισμικό. 3. Φορτώστε το αρχείο που κατεβάσατε. Στο κυρίως παράθυρο θα εμφανιστούν τα πρωτόκολλα UDP (User Datagram Protocol), RTCP (Real Time Transport Control Protocol) και RTP(Real Time Transport Protocol). Όπως ξέρεται το πρωτόκολλο UDP είναι πιο γρήγορο από το TCP αλλά δεν μπορεί να εγγυηθεί την αξιοπιστία της σύνδεσης. Έτσι πολλές φορές χρησιμοποιούνται σε συνδυασμό μαζί του τα πρωτόκολλα RTCP και RTP για να αυξήσουν την αξιοπιστία της σύνδεσης χωρίς να θυσιάζουν την ταχύτητα σε μεγάλο βαθμό. Το RTCP αναλαμβάνει την αξιοπιστία της σύνδεσης καθώς το RTP αναλαμβάνει την μετάδοση του μηνύματος μέσω του UDP. (Προσοχή : Για εξασφάλιση της αξιοπιστίας χρειάζεται το TCP πρωτόκολλο) 4. Αφού φορτώσετε το αρχείο, επιλέξτε το Telephony κουμπί από το κυρίως μενού και ακολούθως επιλέξτε VoIP Calls από τις επιλογές που εμφανίζονται. 5. Ένα καινούργιο παράθυρο θα ανοίξει όπου εμφανίζονται οι κλήσεις που περιλαμβάνονται στα πακέτα που φορτώσατε. h. Επιλέξτε την πρώτη συνομιλία που εμφανίζεται και ακολούθως επιλέξτε το κουμπί Prepare Filter. Ποια είναι η σύνταξη του φίλτρου που εμφανίζεται τώρα στο παράθυρο του φίλτρου ανάλυσης; 6. Πατήστε το κουμπί Play Stream από το καινούργιο παράθυρο για να αναπαραστήσετε την συνομιλία. a. Αποθηκεύστε σαν εικόνα το νέο παράθυρο του RTP Player με την συνομιλία που εμφανίζεται. 5