Αρχιτεκτονικές Δικτύων & Πρωτόκολλα Ι Ενότητα : Ανίχνευση κίνησης δικτύου - Εργαλείο Wireshark. Όνομα Καθηγητή : Δημήτριος Λυμπερόπουλος, Σπύρος Δενάζης Τμήμα : Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών
1. Σκοποί ενότητας... 2 2. Περιεχόμενα ενότητας... 2 3. Εισαγωγή... 2 4. Wireshark.... 3 5. Φίλτρα - διαχείριση, εφαρμογή.... 5 6. Ασκήσεις - Εφαρμογές.... 6 6.1 Εφαρμογή 1 Capture... 6 6.2 Εφαρμογή 2 Filters... 6 6.3 Εφαρμογή 3 FTP transaction... 6 1. Σκοποί ενότητας Η ενότητα αυτή αναλύει μια σειρά από εργαλεία λογισμικού και μεθόδους που επιτρέπουν σε ένα χρήστη να ανιχνεύσει, να απομονώσει και να επεξεργαστεί δεδομένα κίνησης σε ένα δίκτυο. Η άσκηση ξεκινάει με την παρουσίαση του εργαλείου ανίχνευσης δικτύων, Wireshark και των βασικών εντολών που μπορεί να εκτελέσει ένας χρήστης σε αυτό (start/stop capture, set capture interface κτλ.). Στη συνέχεια γίνεται εκτενής αναφορά στην διαχείριση φίλτρων και στις εκφράσεις που δίνουν την δυνατότητα απομόνωσης πακέτων με συγκεκριμένα χαρακτηριστικά. Τέλος η άσκηση ολοκληρώνεται με την ανίχνευση της κίνησης που δημιουργεί μία FTP σύνδεση για την μεταφορά ενός αρχείου. 2. Περιεχόμενα ενότητας Εισαγωγή. Wireshark. Φίλτρα - διαχείριση, εφαρμογή. Ασκήσεις - Εφαρμογές 3. Εισαγωγή. Σκοπός της άσκησης είναι η εξοικείωση του φοιτητή με την έννοια του πρωτοκόλλου, της στοίβας πρωτοκόλλων, και πως μέσα από μια σειρά εργαλείων λογισμικού και συγκεκριμένων μεθόδων μπορεί κάποιος να ανιχνεύσει, να διακρίνει και να επεξεργαστεί δεδομένα κίνησης σε ένα δίκτυο. Ο φοιτητής καλείται να χρησιμοποιήσει ένα ευρέως διαδεδομένο λογισμικό ανίχνευσης κίνησης δικτύου και να αναγνωρίσει τα διαφορετικά επίπεδα πρωτοκόλλων και τις διάφορες καταστάσεις που αυτά υπεισέρχονται κατά την διάρκεια επικοινωνίας υπολογιστών. Ένας network sniffer (επίσης γνωστός ως αναλυτής δικτύων, αναλυτής πρωτοκόλλων, Ethernet sniffer, wireless sniffer κ.α) είναι ένα λογισμικό ή υλικό υπολογιστών που μπορεί να ανιχνεύσει και να καταγράψει πληροφορίες που μεταδίδονται σε ένα ψηφιακό δίκτυο ή σε μέρος αυτού. Καθώς τα ρεύματα δεδομένων (data streams) ταξιδεύουν μέσα στο δίκτυο, ο sniffer συλλαμβάνει κάθε πακέτο, το αποκωδικοποιεί και αναλύει το περιεχόμενό του σύμφωνα με τον κατάλληλο RFC ή άλλες αντίστοιχες προδιαγραφές και μοντέλα. Ενδεικτικά αναφέρονται κάποιοι γνωστοί sniffers. Wireshark NetStumbler Σελίδα 2
tcpdump EtherPeek WildPackets AiroPeek (wireless sniffer) 4. Wireshark. Η εφαρμογή Wireshark είναι ίσως ο δημοφιλέστερος από τους sniffers που κυκλοφορούν σήμερα. Πρόκειται για ένα λογισμικό ανοιχτού κώδικα που κάποιος μπορεί να κατεβάσει και να εγκαταστήσει στον υπολογιστή του από την σελίδα http://www.wireshark.org/. Όταν ένας χρήστης εκκινήσει το την εφαρμογή στον υπολογιστή του, βλέπει το παράθυρο της εικόνας 1. Σε αυτό το παράθυρο μπορεί να εισάγει ρυθμίσεις σχετικά με την ανίχνευση που θέλει να κάνει, ή απλά να επιλέξει την δικτυακή διεπαφή (network interface) που θέλει και να ξεκινήσει την διαδικασία ανίχνευσης. Κατά την διαδικασία ανίχνευσης, το Wireshark συλλέγει πακέτα που ανίχνευσε από την διεπαφή δικτύου και τα απεικονίζει στο κεντρικό παράθυρο της εφαρμογής (Εικόνα 1). Όπως βλέπουμε το κεντρικό παράθυρο χωρίζεται σε τρία μέρη. Το πάνω μέρος δείχει με χρονική σειρά τα πακέτα που έχουν συλλεχθεί ως τώρα. Κάθε γραμμή αντιστοιχεί σε ένα πακέτο. Σε κάθε ένα από αυτά τα πακέτα ο χρήστης μπορεί να δεί την IP διεύθυνση του αποστολέα και του παραλήπτη, το πρωτόκολλο επικοινωνίας που εξυπηρετεί κάθε πακέτο, και μία μικρή επεξήγηση (info). Το μεσαίο και το κατώτερο μέρος της εφαρμογής ενεργοποιείται όταν ο χρήστης επιλέξει (πατήσει με το ποντίκι) κάποιο συγκεκριμένο πακέτο από την λίστα τα πακέτα στο πάνω μέρος της οθόνης. Στο μεσαίο τμήμα εμφανίζόνται αναλυτικά όλες οι πληροφορίες του επιλεγμένου πακέτου, όπως πρωτόκολλα σύνδεσης και μεταφοράς, διευθύνσεις δικτύου αποστολέα και παραλήπτη, φυσικές διευθύνσεις (MAC addresses), port numbers κ.α. Τέλος στο κατώτατο μέρος της εφαρμογής ο χρήστης μπορεί να δεί τα πραγματικά δεδομένα που αποστάλλησαν με αυτό το πακέτο σε δεκαεξαδική μορφή. Εικόνα 1: Απεικόνιση του Wireshark. Σελίδα 3
Βασικές εντολές buttons List of available capture interfaces Πατώντας το αντίστοιχο κουμπί εμφανίζεται ένα μενού με τα διαθέσιμα network interfaces που μπορούμε να κάνουμε capture. Εικόνα 2: Network Interfaces. Show the capture options Με αυτήν την επιλογή μπορούμε να επιλέξουμε και να διαμορφώσουμε διάφορες επιλογές για την λειτουργία της ανίχνευσης της κίνησης του δικτύου. Εικόνα 3: Capture Options. Start Stop a new live capture Με αυτό το κουμπί ξεκινάμε την διαδικασία capture πακέτων από το interface που επιλέξαμε. Σελίδα 4
5. Φίλτρα - διαχείριση, εφαρμογή. Τα φίλτρα είναι ειδικές εντολές που μας επιτρέπουν να επιλέγουμε μέσα από μια πληθώρα captured πακέτων, να διαχωρίσουμε αυτά που μας ενδιαφέρουν. Ο διαχωρισμός γίνεται συνήθως με βάση κάποιο ιδιαίτερο χαρακτηριστικό που έχουν τα δεδομένα που ψάχνουμε. Τέτοια χαρακτηριστικά μπορεί να είναι η IP διεύθυνση του αποστολέα, το πρωτόκολλο μεταφοράς, το πρωτόκολλο εφαρμογής, το μέγεθος πακέτων κ.α. Η διαχείριση φίλτρων γίνεται με τις παρακάτω εντολές: Edit capture filter Edit apply display filter Εικόνα 4: Edit-apply filters. Πολλές φορές αντί για πακέτα με ένα μόνο συγκεκριμένο χαρακτηριστικό μπορεί να μας ενδιαφέρουν πακέτα με περισσότερα ιδιαίτερα στοιχεία. Χρησιμοποιώντας τους λογικούς τελεστές AND (&), OR ( ), NOT (!=) μπορούμε να δημιουργούμε σύνθετα φίλτρα. Εικόνα 5: Filters και λογικοί τελεστές. Σελίδα 5
6. Ασκήσεις - Εφαρμογές. 6.1 Εφαρμογή 1 Capture Έχοντας ενεργό το capture του Wireshark, κάντε ένα ping request σε υπολογιστή της εταιρίας google. Η εντολή που πρέπει να χρησιμοποιήσετε είναι $ ping www.google.com Αναγνωρίστε όλα τα πρωτόκολλα εφαρμογής, μεταφοράς και δικτύου στα πακέτα που καταγράφηκαν στον sniffer. 6.2 Εφαρμογή 2 Filters Έχοντας ενεργό το capture του Wireshark, κάντε ένα ping request σε έναν υπολογιστή της εταιρίας google (όπως και στην εφαρμογή 1). Σταματήστε το capture μετά από 20 δευτερόλεπτα. Χρησιμοποιώντας την χρήση φίλτρων προσπαθήστε να διαχωρίσετε από το σύνολο των πακέτων που καταγράφηκαν: 1. τα πακέτα που έφυγαν από τον υπολογιστή σας προς το δίκτυο. 2. τα πακέτα που ήρθαν στον υπολογιστή σας από το δίκτυο. 3. τα πακέτα που έφυγαν από τον υπολογιστή σας και πήγαν στον υπολογιστή της google. 4. τα πακέτα που ήρθαν στον υπολογιστή σας από τον υπολογιστή της google. 5. τα πακέτα που έφυγαν από τον υπολογιστή σας αλλά δεν κατέληξαν στον υπολογιστή της google. 6. τα πακέτα που έφυγαν από τον υπολογιστή σας και πήγαν στον υπολογιστή της google και ταυτόχρονα τα πακέτα που ήρθαν στον υπολογιστή σας από τον υπολογιστή της google. 6.3 Εφαρμογή 3 FTP transaction Θα κάνουμε ένα ftp transaction παράλληλα με κάποια άλλη επικοινωνία στο δίκτυο, και θα ανιχνεύσουμε τα πακέτα που ανταλλάχτηκαν. Θα γίνει αναγνώριση των διαφόρων πεδίων των πακέτων, και διαχωρισμός των πρωτοκόλλων. ΣΗΜΕΙΩΣΗ: Για τους σκοπούς της συγκεκριμένης άσκησης, θα συνδεθούμε σε έναν FTP server που βρίσκεται στην IP address 10.10.10.10. Στον συγκεκριμένο υπολογιστή υπάρχει ένας user με τα παρακάτω χαρακτηριστικά. username: netuser password: netuser123 Στο home directory /home/netuser του συγκεκριμένου χρήστη υπάρχει ένας κατάλογος mydir που περιέχει το αρχείο myfile.txt Αν θέλετε να ρυθμίσετε τον δικό σας ftp server, υπενθυμίζουμε πως η εντολή για να ξεκινήσει η εφαρμογή είναι: ~$ vsftpd & Στην συνέχεια στον δικό μας υπολογιστή ανοίγουμε ένα τερματικό (ή το command prompt αν είμαστε σε περιβάλλον windows) και πληκτρολογούμε την εντολή. Σελίδα 6
~$ ftp 10.10.10.10 Αν έχουν γίνει τα πάντα σωστά θα πρέπει να εμφανιστεί στην οθόνη μας τα παρακάτω: Connected to 10.10.10.10. 220 (vsftpd 2.0.4) 530 Please login with USER and PASS. Name (localhost:root): Πληκτρολογούμε το username και password του χρήστη που θέλουμε να συνδεθούμε. (τα στοιχεία θα δοθούν κατά τη διάρκεια του εργαστηρίου). 331 Please specify the password. Password: Εικόνα 6: FTP Username. Εικόνα 7: FTP Password. Αφού συνδεθούμε στον Server, μπορούμε να διαχειριστούμε τα αρχεία του χρήστη. Αυτό μπορεί να γίνει με μία σειρά εντολών. ftp> ls Σελίδα 7
Με την εντολή ls βλέπουμε τα αρχεία του καταλόγου στον οποίο βρισκόμαστε. ftp> cd mydir Με την εντολή cd directory μεταφερόμαστε στον αντίστοιχο κατάλογο. ftp> bin Με την εντολή bin ενεργοποιούμε την κατάσταση binary mode. ftp> mget myfile.txt Με την εντολή mget file κάνουμε download το αρχείο file από τον server. ftp> bye Με την εντολή bye αποσυνδεόμαστε από τον server. Αφού ολοκληρώσετε την παραπάνω διαδικασία σταματήστε το capture και αναζητήστε τα παρακάτω πακέτα με την χρήση φίλτρων. 1. Το πακέτο στο οποίο στάλθηκε το username από τον υπολογιστή σας στον ftp server. 2. To πακέτο στο οποίο στάλθηκε το password από τον υπολογιστή σας στον ftp server. 3. Το πακέτο με το οποίο έγινε μεταφορά του αρχείου file.txt από τον ftp server στον υπολογιστή σας. Σελίδα 8
Αναφορές https://www.wireshark.org/ Σημειώματα Σημείωμα Ιστορικού ΕκδόσεωνΈργου Το παρόν έργο αποτελεί την έκδοση 1.0.0 Σημείωμα Αναφοράς Copyright Πανεπιστήμιον Πατρών, Δημήτριος Λυμπερόπουλος, Σπύρος Δενάζης, 2015 «Αρχιτεκτονικές Δικτύων & Πρωτόκολλα Ι - Ανίχνευση κίνησης δικτύου - Εργαλείο Wireshark». Έκδοση: 1.0.0 Πάτρα 2015. Διαθέσιμο από τη δικτυακή διεύθυνση: https://eclass.upatras.gr/courses/ee799/. Σημείωμα Αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά Δημιουργού-Μη Εμπορική Χρήση CC BY-NC [1] Αυτή η άδεια σας επιτρέπει να διανείμετε, να αναμείξετε, και να δημιουργήσετε πάνω σε αυτό το έργο, κατά μη-εμπορικό τρόπο, και παρόλο που τα νέα σας έργα θα πρέπει επίσης να αποδίδουν αναγνώριση και να είναι μη-εμπορικά, δεν οφείλουν να υπαγάγουν τα παράγωγα έργα τους στους ίδιους όρους. [1] http://creativecommons.org/licenses/by-nc/4.0/ Σελίδα 9
Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στo πλαίσιo του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Πανεπιστήμιο Αθηνών» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. Σελίδα 10