Διέλευση IPsec σε οικιακό δρομολογητή: τι κάνει στην πραγματικότητα
Ο διακόπτης προωθεί ένα πρωτόκολλο μέσα από τη μετάφραση διευθύνσεων· δεν καταχωρεί τον δρομολογητή ως πελάτη. Καταγράψτε την ανταλλαγή, διαβάστε τους συσχετισμούς και μετά αποφασίστε.
Οι διακόπτες διέλευσης του δρομολογητή είναι παραχωρήσεις προώθησης για μια συσκευή πίσω τους, όχι υπηρεσίες VPN. Δεν καταχωρούν τον δρομολογητή ως πελάτη, δεν κρατούν διαπιστευτήρια και δεν περνούν κάθε συσκευή του σπιτιού μέσα από απομακρυσμένη έξοδο. Αυτό που κάνουν είναι να διαμορφώνουν πώς ένα πρωτόκολλο διασχίζει τη μετάφραση διευθύνσεων και τα φίλτρα. Μόλις αυτό γίνει σαφές, ο διακόπτης γίνεται εύκολος στη δοκιμή και εύκολος στην απενεργοποίηση.
Τι κάνει στην πραγματικότητα ο δρομολογητής
Ο δρομολογητής βρίσκεται ανάμεσα σε έναν πελάτη και έναν ομότιμο IPsec και προωθεί πακέτα που δεν σχεδιάστηκε ποτέ να κατανοεί. Οι κατασκευαστές υλοποιούν τη λειτουργία με τουλάχιστον τρεις τρόπους: έναν βοηθό πρωτοκόλλου που παρακολουθεί ή ξαναγράφει κατάσταση, μια εξαίρεση φίλτρου που σταματά την απόρριψη του ESP, ή μια λειτουργία συμβατότητας για παλαιότερους πελάτες. Η ετικέτα στη διεπαφή ιστού σπάνια λέει ποια από τις τρεις έχετε. Μόνο οι σημειώσεις υλικολογισμικού ή μια καταγραφή πακέτων θα το πουν.
Ένας βοηθός μπορεί επίσης να χειροτερέψει τα πράγματα. Βοήθεια γραμμένη για παλαιότερη ροή μερικές φορές εμποδίζει έναν πελάτη που ήδη χειρίζεται σωστά τη μετάφραση. Όταν ένας σύγχρονος πελάτης λειτουργεί με την επιλογή κλειστή, το να την κρατήσετε κλειστή είναι η καλύτερη διαμόρφωση.
Η διέλευση δεν δίνει ποτέ στον δρομολογητή τα κλειδιά των ομοτίμων. Εξακολουθεί να βλέπει τις εξωτερικές διευθύνσεις και θύρες και εξακολουθεί να εφαρμόζει τη δική του πολιτική προώθησης σε αυτές.
Το NAT και το NAT-T αποφασίζουν τη διαδρομή
Το IPsec δεν φτιάχτηκε για να επιβιώνει της μετάφρασης διευθύνσεων, γι’ αυτό τα πρότυπα πρόσθεσαν ένα περίβλημα. Το NAT traversal ενθυλακώνει το ESP μέσα σε UDP, επιτρέποντας σε έναν συνηθισμένο πίνακα NAT να μεταφέρει τη ροή, και η διαπραγμάτευση συμφωνεί αυτή την αλλαγή κατά τη διάρκεια του IKE (RFC 3948). Το ίδιο το IKE χρησιμοποιεί UDP 500, ενώ η ενθυλακωμένη διαδρομή χρησιμοποιεί συνήθως UDP 4500.
Γι’ αυτό ένας κανόνας τείχους προστασίας που επιτρέπει μόνο το πρωτόκολλο 50 δεν αρκεί σε μεταφρασμένη διαδρομή. Ο αποκλεισμός του 4500 σπάει την περίπτωση για την οποία υπάρχει το περίβλημα, και ο αποκλεισμός του 500 σταματά τη διαπραγμάτευση πριν σχηματιστεί οποιαδήποτε σήραγγα. Και οι δύο κατευθύνσεις μετράνε, γιατί ένας δρομολογητής με κατάσταση συνήθως επιτρέπει την απάντηση μόνο αφού δει το αίτημα. Το να φτάσετε σε μια θύρα δεν είναι το ίδιο με το να ολοκληρώσετε την ταυτοποίηση, ούτε με το να προωθήσετε προστατευμένη κίνηση.
Οι παλαιότερες ρυθμίσεις διαφέρουν αρκετά ώστε ένας οδηγός γραμμένος γι’ αυτές να παραπλανά. Όταν ένας πελάτης προσφέρει και τις δύο λειτουργίες, δοκιμάστε αυτή που τεκμηριώνει ο ομότιμός σας και όχι αυτή με περισσότερα αποτελέσματα αναζήτησης.
Βρείτε το στάδιο που αποτυγχάνει
Χωρίστε το πρόβλημα σε διαπραγμάτευση, ταυτοποίηση, προστασία θυγατρικής και εσωτερική προώθηση και μετά συλλέξτε στοιχεία για ένα στάδιο κάθε φορά. Μια επανεκκίνηση που αλλάζει προσωρινά το αποτέλεσμα αποδεικνύει μόνο ότι κάποια κατάσταση εμπλεκόταν.
sudo tcpdump -ni any 'udp port 500 or udp port 4500'
ip xfrm state list
ip xfrm policy list
Η καταγραφή δείχνει αν η ανταλλαγή φτάνει στον ομότιμο και αν οι απαντήσεις επιστρέφουν, κάτι που ξεχωρίζει πρόβλημα φιλτραρίσματος από πρόβλημα διαπιστευτηρίων. Η λίστα κατάστασης δείχνει εγκατεστημένους συσχετισμούς ασφαλείας, οπότε μια κενή λίστα μετά από μια προσπάθεια δείχνει διαπραγμάτευση και όχι δρομολόγηση. Η λίστα πολιτικής δείχνει ποιοι επιλογείς έχουν εγκατασταθεί, και εκεί ακριβώς εξαιρείται ένας προορισμός εκτός υποδικτύου. Διαβάστε και τις δύο εξόδους xfrm πριν αγγίξετε τον δρομολογητή, γιατί περιγράφουν τι πιστεύει ο κεντρικός υπολογιστής και όχι τι επιτρέπει ο δρομολογητής.
Αν τα πακέτα φεύγουν και δεν επιστρέφει τίποτα, μετακινήστε την καταγραφή στην πλευρά WAN του δρομολογητή. Η σύγκριση των δύο καταγραφών εντοπίζει την απόρριψη χωρίς εικασίες.
Κλείστε ό,τι δεν χρειάζεστε
Ένας μόνο φορητός που δουλεύει δεν αποδεικνύει ότι ο δρομολογητής εξυπηρετεί πολλούς πελάτες ταυτόχρονα. Κάθε πελάτης δημιουργεί τη δική του κατάσταση μετάφρασης και τη δική του διαπραγμάτευση, και μερικοί βοηθοί παρακολουθούν μόνο μία ροή. Δοκιμάστε τον αριθμό ταυτόχρονων συνεδριών που πραγματικά χρειάζεστε, από τα δίκτυα που πραγματικά χρησιμοποιείτε. Αν ο δεύτερος πελάτης αποτυγχάνει ενώ ο πρώτος πάει καλά, αυτό είναι το εύρημα και όχι μια ασταθής σήραγγα.
Κρατήστε την επιλογή ενεργή μόνο όταν μια καταγραφή δείχνει ότι χρειάζεται. Καταγράψτε την έκδοση υλικολογισμικού δίπλα στο αποτέλεσμα, γιατί αυτές οι συμπεριφορές αλλάζουν μεταξύ εκδόσεων. Ο στόχος είναι μια σήραγγα πελάτη που επαληθεύσατε, όχι ένας διακόπτης που ενεργοποιήσατε με ελπίδα.