Η διεύθυνση του ομότιμου άλλαξε στη μέση της συνεδρίας: τι κάνει το float στο OpenVPN
Το float επιτρέπει σε έναν πιστοποιημένο ομότιμο να αλλάξει την εξωτερική του διεύθυνση στη μέση της συνεδρίας. Δεν ανακαλύπτει τελικά σημεία, δεν ανοίγει ξανά έναν νεκρό σύνδεσμο και δεν παρακάμπτει ελέγχους ταυτότητας.
Ο φορητός υπολογιστής μετακινείται από το Wi-Fi του γραφείου σε hotspot τηλεφώνου, η σήραγγα αντέχει λίγα δευτερόλεπτα ακόμη και μετά η κίνηση σταματά, ενώ η διεπαφή εξακολουθεί να ισχυρίζεται ότι είναι συνδεδεμένη. Στον διακομιστή, η λίστα κατάστασης εξακολουθεί να δείχνει την παλιά δημόσια διεύθυνση. Αυτή είναι η κατάσταση για την οποία υπάρχει το float, και είναι επίσης η κατάσταση όπου οι άνθρωποι περιμένουν από αυτό πολύ περισσότερα απ' όσα κάνει. Το σωστό όριο μετατρέπει μια μπερδεμένη ακινητοποίηση είτε σε αλλαγή διαμόρφωσης μιας γραμμής είτε σε εντελώς διαφορετική έρευνα.
Τι χαλαρώνει το float και τι δεν χαλαρώνει ποτέ
Κανονικά μια συνεδρία συνεχίζει να μιλά με την εξωτερική διεύθυνση και τη θύρα με τις οποίες ξεκίνησε, και τα πακέτα που φτάνουν από οπουδήποτε αλλού αγνοούνται. Η επιλογή float αφαιρεί αυτόν τον αυστηρό δεσμό μόλις ο ομότιμος έχει ήδη αποδείξει τον εαυτό του, ώστε μια αλλαγμένη αντιστοίχιση πηγής να μπορεί να συνεχίσει την ίδια συνεδρία αντί να απορριφθεί. Τίποτα στους κρυπτογραφικούς ελέγχους δεν αλλάζει: τα κλειδιά, τα πιστοποιητικά και οποιαδήποτε προστασία HMAC παραμένουν ακριβώς όπως έχουν διαμορφωθεί.
Πρόκειται για απόφαση ανά πακέτο, όχι για πολιτική σχετικά με το ποιος επιτρέπεται να συνδεθεί. Ένα άγνωστο μηχάνημα που στέλνει πακέτο από νέα διεύθυνση δεν έχει αποδείξει τίποτα, και το πακέτο του απορρίπτεται όπως κάθε άλλη μη πιστοποιημένη κίνηση. Μόνο κίνηση που περνά τον έλεγχο ταυτότητας της ίδιας της συνεδρίας μπορεί να μετακινήσει την καταγεγραμμένη διεύθυνση του ομότιμου, και γι' αυτό είναι ασφαλές να αφήνετε το float ενεργό σε περιβάλλοντα όπου οι πελάτες περιπλανώνται.
Δεν λέει επίσης τίποτα για την εσωτερική σήραγγα. Μια μετακινημένη εξωτερική διεύθυνση δεν εκχωρεί ξανά διεύθυνση σήραγγας, δεν αλλάζει το σύνολο διευθύνσεων και δεν δίνει στον ομότιμο πρόσβαση σε κάτι νέο. Μέσα στη σήραγγα ισχύουν η ίδια ταυτότητα και οι ίδιες προωθημένες διαδρομές πριν και μετά τη μετακίνηση. Η περιπλάνηση δεν επαναδιαπραγματεύεται ούτε το κανάλι δεδομένων, οπότε ο συμφωνημένος αλγόριθμος κρυπτογράφησης και τα κλειδιά συνεχίζουν.
Το πακέτο που μετακινεί μια συνεδρία πρέπει να πιστοποιηθεί
Ξεκινήστε μια συνεδρία με τον συνηθισμένο τρόπο προς το διαμορφωμένο απομακρυσμένο άκρο, και το float χειρίζεται το τι συμβαίνει όταν αλλάζει η αντιστοίχιση. Ένας πάροχος κινητής που αλλάζει αρίθμηση στη μέση της ροής, μια πύλη NAT που ξαναγράφει την αντιστοίχιση θύρας ή ένας φορητός που αλλάζει ζεύξη ανόδου παράγουν όλα το ίδιο σχήμα: πιστοποιημένα πακέτα από νέα πλειάδα, που φτάνουν σε μια συνεδρία που ακόμη πιστεύει στην παλιά.
Όταν σας ρωτούν αν το float λειτουργεί, η χρήσιμη απόδειξη είναι μια ολοκληρωμένη χειραψία ακολουθούμενη από μια αποδεκτή αλλαγή πηγής, όχι μια γραμμή αρχείου καταγραφής μόνο για τη διεύθυνση. Συσχετίστε την παλιά και τη νέα εξωτερική διεύθυνση με τη συνεδρία που έμεινε ζωντανή και μετά επιβεβαιώστε ότι η κίνηση συνεχίστηκε πράγματι μέσα από τη σήραγγα.
Αν η συνεδρία πεθάνει αντί να μετακινηθεί, το πακέτο που έφτασε από τη νέα διεύθυνση πιθανότατα απέτυχε στην πιστοποίηση ή δεν έφτασε καθόλου. Και οι δύο περιπτώσεις φαίνονται ίδιες από την πλευρά του πελάτη. Στον διακομιστή, μια καταγραφή στη δημόσια διεπαφή σας λέει ποια από τις δύο έχετε πριν αγγίξετε οποιαδήποτε διαμόρφωση.
Η ανακάλυψη είναι εντελώς ξεχωριστός μηχανισμός
Το float δεν επιλύει ονόματα με χρονόμετρο και δεν παρακολουθεί δυναμική εγγραφή DNS. Αν το όνομα κεντρικού υπολογιστή του διακομιστή αρχίσει να επιλύεται σε νέα διεύθυνση, ένας αδρανής πελάτης δεν έχει λόγο να το προσέξει και δεν έχει πακέτο από το νέο τελικό σημείο για να πιστοποιήσει. Αυτό το πρόβλημα ανήκει στη λογική επανασύνδεσης, στη συμπεριφορά επανάληψης του ίδιου του πελάτη και στο DNS, όχι στο float.
Η προσθήκη της επιλογής για άλλη μια φορά δεν μπορεί να αντισταθμίσει την έλλειψη διαδρομής προς τη νέα διεύθυνση. Δεν βοηθά ούτε όταν ο ομότιμος σιωπά, γιατί ένας σιωπηλός ομότιμος δεν στέλνει ποτέ το πιστοποιημένο πακέτο που θα μετακινούσε κάτι.
Το τείχος προστασίας από κάτω έχει επίσης λόγο. Ένας κανόνας που επιτρέπει μόνο το παλιό εξωτερικό άκρο αποκλείει τη νέα διεύθυνση πριν τη δει καν το OpenVPN, και καμία διαμόρφωση στην πλευρά του πελάτη δεν το διορθώνει. Εξετάστε τον κύκλο ζωής των επιτρεπόμενων διευθύνσεων ως ξεχωριστό έργο. Η επέκταση του κανόνα σε οποιαδήποτε πηγή ανταλλάσσει ένα μικρό πρόβλημα με ένα μεγάλο.
Όταν το NetworkManager κατέχει το προφίλ
Ένα προφίλ γραμμής εντολών και μια εισαγμένη σύνδεση είναι ξεχωριστές διαμορφώσεις, και η επεξεργασία της μίας δεν αγγίζει την άλλη. Πριν υποθέσετε ότι η επιλογή δεν υποστηρίζεται, καθορίστε ποιον τύπο πρόσθετου χρησιμοποιεί πραγματικά το αποθηκευμένο προφίλ και πού ζουν οι τιμές του. Το UUID του προφίλ είναι το αναγνωριστικό που μετρά όταν επιθεωρείτε ή τροποποιείτε οτιδήποτε.
Επιθεωρήστε την αποθηκευμένη σύνδεση και όχι το αρχικό αρχείο εισαγωγής. Μια γραμμή που επιβιώνει σε ένα αρχείο .ovpn δεν αποδεικνύει τίποτα αν ο ενεργός διαχειριστής δεν την εφάρμοσε ποτέ, και ένας επεξεργαστής χωρίς πλαίσιο ελέγχου για μια δεδομένη επιλογή δεν αποδεικνύει επίσης τίποτα για τις δυνατότητες του πρωτοκόλλου.
Μην επιδιορθώνετε ένα πακέτο πρόσθετου για να προσθέσετε τη συμπεριφορά, ειδικά όχι με ένα diff γραμμένο για ιστορική έκδοση άσχετου στοιχείου. Αν η εγκατεστημένη ενσωμάτωση πραγματικά δεν μπορεί να εκφράσει τη ρύθμιση, το σωστό βήμα είναι ένα υποστηριζόμενο προφίλ ή μια διαφορετική διαδρομή πελάτη εγκεκριμένη από όποιον κατέχει την ανάπτυξη.
Αποδείξτε τη μετάβαση αντί να την υποθέσετε
Εκτελέστε τη δοκιμή με τον τρόπο που συμβαίνει η αποτυχία. Συνδεθείτε, επαληθεύστε την κίνηση μέσα από τη σήραγγα, αναγκάστε την εξωτερική διεύθυνση να αλλάξει και μετά ελέγξτε τρία πράγματα: η συνεδρία υπάρχει ακόμη, η καταγεγραμμένη διεύθυνση του ομότιμου έχει μετακινηθεί και ένα πραγματικό αίτημα φτάνει ακόμη στον προορισμό του. Οτιδήποτε λιγότερο από τα τρία είναι μερική απάντηση.
Κρατήστε διαθέσιμη την πρόσβαση ανάκτησης όσο δοκιμάζετε, γιατί τα πειράματα περιπλάνησης έχουν τη συνήθεια να εγκλωβίζουν το μηχάνημα από το οποίο εργάζεστε. Μια σειριακή κονσόλα ή μια διαδρομή εκτός ζώνης μετατρέπει μια αποτυχημένη δοκιμή σε ανάκτηση πέντε λεπτών αντί σε επίσκεψη στον χώρο.
Τέλος, περιγράψτε μόνο την περίπτωση που δοκιμάσατε. Μια επιτυχής αλλαγή διεύθυνσης κατά τη διάρκεια μιας συνεδρίας δεν είναι απόδειξη ότι οι μεταναστεύσεις DNS, μια διαφορετική υλοποίηση πελάτη ή ένα ανακατασκευασμένο προφίλ θα συμπεριφερθούν το ίδιο. Η τεκμηρίωση του link-options δηλώνει με ακρίβεια το εύρος της επιλογής. Το αρχείο καταγραφής της δοκιμής σας πρέπει να δηλώνει ποιο μέρος αυτού του εύρους καλύψατε πραγματικά.