Σε ένα ανοιχτό δίκτυο, το σημείο πρόσβασής σας δεν παραδίδει απλώς πακέτα στο διαδίκτυο. Ένα σημείο πολιτικής πιο πάνω ελέγχει αν η συσκευή σας έχει εξουσιοδοτηθεί ακόμη, και μέχρι να εξουσιοδοτηθεί, σχεδόν τα πάντα απορρίπτονται. Ο πελάτης VPN διαβάζει αυτή τη σιωπή ως νεκρό διακομιστή. Σπάνια το λέει: το WireGuard επαναλαμβάνει μια χειραψία στο κενό, το OpenVPN αναφέρει λήξη χρόνου σύνδεσης, και το IKEv2 επιστρέφει ως σφάλμα 809 για έναν απομακρυσμένο διακομιστή που δεν απαντά.

Τι ελέγχει στην πραγματικότητα η πύλη

Μια πύλη σύλληψης είναι δύο πράγματα κολλημένα μαζί: ένα σημείο απόφασης πολιτικής και ένας ανακατευθυντής. Όταν η συσκευή σας συνδέεται και παίρνει μίσθωση DHCP, το δίκτυο σας τοποθετεί σε κατάσταση πριν από την εξουσιοδότηση.

Αυτή η κατάσταση είναι ένα σύνολο κανόνων τείχους προστασίας. Συνήθως επιτρέπει DNS και επιτρέπει HTTP ή HTTPS προς μια σύντομη λίστα διακομιστών της πύλης, και απορρίπτει όλα τα άλλα. Η επιτρεπόμενη λίστα είναι ο περιφραγμένος κήπος, και σχεδόν ποτέ δεν περιλαμβάνει τελικό σημείο VPN.

Καμία από αυτές τις απορρίψεις δεν είναι ευγενική. Τα πακέτα που στοχεύουν σε διακομιστή VPN απορρίπτονται αντί να απορριφθούν με άρνηση, οπότε ο πελάτης δεν λαμβάνει ούτε ICMP unreachable ούτε TCP reset, μόνο την απουσία απάντησης. Ανάλογα με τον κατασκευαστή, ο ανακατευθυντής μπορεί να απαντήσει στη θύρα 80 με ανακατεύθυνση στη σελίδα σύνδεσης, ενώ η θύρα 443 απορρίπτεται ή υποκλέπτεται. Οι ανακατευθύνσεις εντοπίζονται εύκολα γιατί μεταφέρουν μια απλή απάντηση HTTP· η υποκλοπή στη 443 χρειάζεται πιστοποιητικό που το πρόγραμμα περιήγησής σας θα αρνηθεί να εμπιστευτεί.

Η ίδια η εξουσιοδότηση συνήθως συνδέεται με τη διεύθυνση MAC της συσκευής, μερικές φορές με τη μισθωμένη IP, και ζει σε έναν πίνακα συνεδριών με χρονόμετρο. Η σύνδεση δημιουργεί μια εγγραφή. Ο κανόνας του τείχους προστασίας που αφήνει την κίνησή σας να περάσει υπάρχει μόνο όσο υπάρχει αυτή η εγγραφή, και γι' αυτό όλο το πρόβλημα επιστρέφει αργότερα χωρίς να αλλάξει τίποτα από τη μεριά σας.

Γιατί η χειραψία VPN πεθαίνει πριν ξεκινήσει

Κάθε πρωτόκολλο έχει τη δική του μεταφορά, και το τείχος προστασίας πριν από την εξουσιοδότηση σπάει το καθένα διαφορετικά. Το IKEv2 σε Windows και iOS κινείται σε UDP 500 και UDP 4500· μια απόρριψη σε αυτές τις θύρες εμφανίζεται ως 809, ή ως αποτυχία τύπου επίλυσης ονομάτων σε πελάτες που αναφέρουν τα στάδια χωριστά. Το OpenVPN πάνω από UDP 1194 μένει στην κατάσταση σύνδεσης μέχρι να λήξει το χρονικό του όριο. Το OpenVPN πάνω από TCP 443 είναι η ενδιαφέρουσα περίπτωση, γιατί η πύλη μπορεί να ολοκληρώσει τη χειραψία TCP και μετά να απαντήσει με τη σελίδα ανακατεύθυνσης, οπότε βλέπετε σφάλμα TLS αντί για λήξη χρόνου.

Το WireGuard δείχνει τον μηχανισμό καθαρότερα. Είναι μόνο UDP εκ σχεδιασμού, χωρίς εφεδρική TCP, οπότε ένα τείχος προστασίας που απορρίπτει άγνωστο UDP αφαιρεί εντελώς τη μεταφορά. Ο πελάτης συνεχίζει να στέλνει εκκινήσεις χειραψίας με αυξανόμενη καθυστέρηση και αναφέρει μια χειραψία που δεν ολοκληρώνεται ποτέ. Τίποτα σε αυτό το μήνυμα δεν αναφέρει Wi-Fi, και τίποτα δεν υποδηλώνει ότι πρέπει να ανοίξετε πρόγραμμα περιήγησης.

Οι πλατφόρμες προσπαθούν να αντιληφθούν την κατάσταση πριν από το VPN σας. Τα Windows ανακτούν μια γνωστή διεύθυνση URL για να αποφασίσουν αν θα δείξουν την ειδοποίηση σύνδεσης, το Android ζητά ένα τελικό σημείο που θα έπρεπε να απαντήσει 204 No Content, και οι συσκευές Apple ανοίγουν ένα μικρό παράθυρο δικτύου σύλληψης. Αυτοί οι έλεγχοι λειτουργούν γιατί η πύλη απαντά με ανακατεύθυνση αντί για το αναμενόμενο σώμα. Η ίδια συμπεριφορά εξηγεί πώς μια πύλη μπορεί να φαίνεται απόλυτα υγιής ενώ η σήραγγά σας είναι νεκρή: ο έλεγχος και η σήραγγα κρίνονται με διαφορετικούς κανόνες.

Τι επαναφέρει πραγματικά η λήξη μιας συνεδρίας

Οι χώροι λήγουν συνεδρίες για λόγους άσχετους με τον λογαριασμό VPN σας: λήξη αδράνειας, μέγιστο μήκος συνεδρίας, νέα μίσθωση DHCP ή επανασύνδεση σε άλλο σημείο πρόσβασης. Όταν ενεργοποιηθεί το χρονόμετρο, η εγγραφή στον πίνακα συνεδριών εξαφανίζεται και το σύνολο κανόνων πριν από την εξουσιοδότηση επιστρέφει ακριβώς όπως ήταν κατά την άφιξη.

Μια εγκατεστημένη σήραγγα συχνά επιβιώνει αρκετά για να φαίνεται υγιής. Τα μηνύματα διατήρησης ζωής συνεχίζουν να βγαίνουν, και το αν ο πελάτης το αντιλαμβάνεται εξαρτάται από το πώς χειρίζεται την κίνηση χωρίς απάντηση, οπότε η λυχνία κατάστασης μπορεί να μείνει πράσινη για λίγο αφού χαθεί η διαδρομή. Μετά η σήραγγα πέφτει και κάθε απόπειρα επανασύνδεσης αποτυγχάνει στις ίδιες μπλοκαρισμένες θύρες.

Σε εκείνο το σημείο, το σφάλμα του πελάτη σας λέει σε ποιο στάδιο βρίσκεστε, αν το διαβάσετε προσεκτικά:

SymptomWhat it meansNext check
Handshake times out with no replyPre-authorization drop on UDPLoad any HTTP page and see whether the portal appears
Immediate TLS error on 443The portal answered your TCP connectionAuthorize, then retry the same profile
Authentication rejectedYour credentials reached the serverThe network is fine, so treat this as an account problem
Connects, then drops repeatedlySession or lease churnWatch the portal timer and the lease time

Μια λεπτομέρεια μπερδεύει τον κόσμο: όταν η συνεδρία είναι δεσμευμένη σε διεύθυνση MAC, η επαναφόρτωση της σελίδας σύνδεσης μπορεί να μη βοηθήσει. Πρέπει να κόψετε τη σύνδεση και να συνδεθείτε ξανά, ώστε η πύλη να δει μια νέα απόπειρα εξουσιοδότησης αντί για μια ληγμένη.

Συνδεθείτε πρώτα, μετά σηκώστε τη σήραγγα

Η σειρά που λειτουργεί είναι: εξουσιοδοτήστε τη συσκευή, αποδείξτε τη διαδρομή, ξεκινήστε το VPN, αποδείξτε τη σήραγγα, και μετά επαναφέρετε το συνηθισμένο σας μπλοκάρισμα. Το τελευταίο βήμα έχει σημασία γιατί η προσωρινή κατάσταση που χρειάζεστε για να φτάσετε στην πύλη είναι ακριβώς η κατάσταση που υπάρχει ένας διακόπτης ασφαλείας για να εμποδίζει.

Ένας πελάτης επιφάνειας εργασίας με επιλογή αποκλεισμού έξω από τη σήραγγα πρέπει να τεθεί σε παύση για να φορτώσει η σελίδα της πύλης, και καλό είναι να κρατάτε τις ευαίσθητες εφαρμογές κλειστές κατά τη διάρκεια αυτού του παραθύρου έξω από τη σήραγγα· είναι το μόνο διάστημα κατά το οποίο η τοπική κίνηση φεύγει χωρίς προστασία. Μια διαχειριζόμενη συσκευή που είναι πάντα ενεργή θα πρέπει να χρησιμοποιεί τη διαδικασία που δημοσίευσε ο ιδιοκτήτης της αντί να αφαιρείτε εσείς την πολιτική. Αν η πύλη εμφανίσει προειδοποίηση πιστοποιητικού, σταματήστε: η αποδοχή της δρομολογεί τη συνεδρία σας μέσω του διακομιστή μεσολάβησης υποκλοπής του χώρου, και αυτός ο διακομιστής μπορεί να διαβάσει ό,τι στέλνετε. Στο Android, το κλείδωμα υπό πάντα ενεργό VPN μπλοκάρει την κίνηση πριν σηκωθεί η σήραγγα, και μερικές εκδόσεις δεν μπορούν να εξαιρέσουν τη ροή της πύλης· αν η δική σας δεν μπορεί, χρησιμοποιήστε την εναλλακτική πρόσβαση του χώρου ή άλλη συσκευή αντί να αφήσετε το κλείδωμα απενεργοποιημένο. Οι κανόνες της Apple κατά παραγγελία μπορούν να γραφτούν ώστε να αρνούνται τη σήραγγα μέχρι να πετύχει ένας έλεγχος, και αυτή είναι η συμπεριφορά που θέλετε σε δίκτυα ξενοδοχείων.

Επαληθεύστε με τη σειρά με τα εργαλεία που έχετε ήδη. Πριν από τη σήραγγα, εκτελέστε τον έλεγχο με τις κεφαλίδες και το σώμα και τα δύο ορατά, και προσέξτε αν η μεταφορά VPN λαμβάνει καθόλου απάντηση:

curl -sS -D - http://captive.apple.com/hotspot-detect.html -o -
sudo tcpdump -ni any 'udp port 500 or udp port 4500 or udp port 1194'

Πριν από την εξουσιοδότηση, μια κανονική πύλη δίνει μία από δύο απαντήσεις: ένα 302 του οποίου το Location δείχνει στη σελίδα σύνδεσης, ή ένα 200 με σώμα HTML που είναι η σελίδα της πύλης. Σημειώστε ποιο λάβατε. Μια ανακατεύθυνση δεν είναι αποτυχία πριν από τη σύνδεση· είναι η πύλη που σας λέει πού να πάτε. Αφού η πύλη αναφέρει επιτυχία, επαναλάβετε την εντολή και περιμένετε ένα 200 του οποίου το σώμα είναι η κυριολεκτική λέξη Success. Αυτή η συμβολοσειρά κάνει τον έλεγχο ουσιαστικό. Αν ο διακομιστής απαντά κανονικά πριν συνδεθείτε ποτέ, δεν υπάρχει πύλη υποκλοπής σε αυτό το δίκτυο. Στην καταγραφή, μια απόρριψη πριν από την εξουσιοδότηση είναι εξερχόμενα πακέτα από τα οποία δεν επιστρέφει τίποτα, ενώ μια διαδρομή που λειτουργεί δείχνει απάντηση στην ίδια ροή μέσα σε περίπου ένα δευτερόλεπτο. Συνδεθείτε και μετά επαναλάβετε την καταγραφή.

Αν η σήραγγα εξακολουθεί να αποτυγχάνει αφού η πύλη πει ναι

Η επιτυχής σύνδεση δεν είναι το ίδιο με επιτρεπόμενη μεταφορά. Πολλοί χώροι επιτρέπουν την πύλη και τη συνηθισμένη περιήγηση ενώ μπλοκάρουν εντελώς το UDP, που αφήνει το WireGuard και το OpenVPN πάνω από UDP σπασμένα και το TCP 443 να λειτουργεί. Αν το TCP 443 περνά και το UDP όχι, αυτό είναι πολιτική του χώρου και όχι πελάτης που ρυθμίσατε λάθος, οπότε αλλάξτε μεταφορά ή δεχτείτε τον περιορισμό και προχωρήστε. Αν μια επανασύνδεση εξακολουθεί να αποτυγχάνει μετά από αυτό, κρατήστε το ακριβές σφάλμα· ονομάζει το στάδιο στο οποίο έχετε κολλήσει.

Άλλες αποτυχίες ζουν στη συσκευή. Μια συνεδρία ακόμη δεσμευμένη σε παλιά MAC, ένας δεύτερος προσαρμογέας Wi-Fi με δική του μίσθωση, ή ένας πελάτης που έχει αποθηκεύσει την εξαίρεση πιστοποιητικού της πύλης μπορούν το καθένα να συνεχίσει να αποτυγχάνει μετά από καθαρή επανεξουσιοδότηση. Κόψτε τη σύνδεση, επανεξουσιοδοτήστε και δοκιμάστε μία φορά πριν αγγίξετε τις ρυθμίσεις του πελάτη. Το RFC 8952 αξίζει διάβασμα αν θέλετε την αρχιτεκτονική πίσω από τα εξαρτήματα που παρακολουθείτε.

Αν η ίδια η πύλη αρνείται να εξουσιοδοτήσει, το πρόβλημα είναι στον λογαριασμό ή στην κατανομή συσκευών και καμία ρύθμιση VPN δεν θα το διορθώσει. Η αλλαγή της χώρας εξόδου του VPN δεν επαναφέρει την τοπική κατάσταση πρόσβασης του χώρου· αυτός ο πίνακας είναι δεσμευμένος στη συσκευή σας, όχι στον διακομιστή που επιλέγετε. Ρωτήστε τον διαχειριστή του χώρου και δώστε του χρόνο, γιατί ο πίνακας συνεδριών είναι αυτό που θα κοιτάξει.

Πριν από το επόμενο ταξίδι σας, γράψτε τρία πράγματα: τη σελίδα της πύλης ως βήμα μηδέν, το βήμα παύσης του αποκλεισμού για κάθε συσκευή που κουβαλάτε, και μια εφεδρική μεταφορά που έχετε δοκιμάσει πραγματικά. Όταν μια σήραγγα που λειτουργούσε πριν από δέκα λεπτά σταματήσει ξανά, αντιμετωπίστε το ως ληγμένη εξουσιοδότηση και ελέγξτε ξανά την πύλη πριν αγγίξετε το προφίλ VPN.

Σχετικά άρθρα