OpenVPN στη θύρα 443 ακόμη μπλοκαρισμένο; Δείτε τι επιθεωρεί το δίκτυο
Η θύρα 443 αλλάζει τον αριθμό, όχι τη μορφή του πρωτοκόλλου. Αν η διαδρομή επιθεωρεί ή τερματίζει το TLS, το επόμενο τεστ είναι ένα περιτύλιγμα και σωστή διαδρομή προς τον κόμβο.
Το τούνελ συνδέεται από οικιακή γραμμή και κολλάει σε δίκτυο ξενοδοχείου ή γραφείου, και η μεταφορά του διακομιστή στη θύρα 443 δεν άλλαξε τίποτα. Αυτό το αποτέλεσμα είναι αρκετά συνηθισμένο ώστε να έχει μορφή: η θύρα ήταν το εύκολο μέρος, και το υπόλοιπο της απόφασης ανήκει σε ό,τι βρίσκεται ανάμεσα στον πελάτη και τον διακομιστή. Δύο ερωτήματα λύνουν τις περισσότερες περιπτώσεις, και κανένα από αυτά δεν αφορά κρυπτογράφηση. Δέχεται το δίκτυο χειραψία TLS σε αυτή τη διεύθυνση, και κρατά ο πελάτης διαδρομή προς το δικό του περιτύλιγμα όσο το τούνελ είναι ενεργό;
Η χειραψία προδίδει περισσότερα από τον αριθμό
Ένας εγγενής ακροατής VPN στην TCP 443 μιλά το δικό του πρωτόκολλο από το πρώτο πακέτο. Ένα ClientHello έχει πεδίο έκδοσης, τυχαία τιμή και λίστα επεκτάσεων, και μια συσκευή που διαβάζει λίγες εκατοντάδες byte μπορεί να δει τη διαφορά χωρίς να αποκρυπτογραφήσει τίποτα. Οι αριθμοί θυρών ικανοποιούνται φτηνά, και η μορφή του πρωτοκόλλου είναι αυτό που ελέγχει πραγματικά το φίλτρο. Οι κανόνες γράφονται συνήθως και ανά πρωτόκολλο, οπότε μια πολιτική που επιθεωρεί TLS δεν λέει τίποτα για UDP.
Ένας διαφανής μεσολαβητής που απαιτεί έγκυρη συνεδρία TLS ρίχνει τη σύνδεση κατά τη ρύθμιση, συχνά αφού ολοκληρωθεί η χειραψία TCP. Αυτή η λεπτομέρεια μετρά αργότερα, γιατί σημαίνει ότι το αρχείο καταγραφής του πελάτη σταματά αφού στηθεί ο υποδοχέας.
Το τύλιγμα της ροής δημιουργεί δύο σημεία αποτυχίας
Ένα περιτύλιγμα TLS όπως το stunnel επαναφέρει την αναμενόμενη μορφή: ο πελάτης συνδέεται σε τοπικό ακροατή, το περιτύλιγμα ανοίγει πραγματική συνεδρία TLS προς τον διακομιστή στη θύρα 443, και ένα δεύτερο περιτύλιγμα στον διακομιστή προωθεί τα αποκρυπτογραφημένα byte στον δαίμονα VPN. Η εξωτερική συνεδρία τώρα μοιάζει με οποιαδήποτε άλλη σύνδεση HTTPS. Ο δαίμονας VPN στον διακομιστή θα πρέπει να ακούει μόνο στο loopback, γιατί τίποτα έξω από το περιτύλιγμα δεν χρειάζεται να τον φτάσει.
Τρία ξεχωριστά πράγματα πρέπει να ευθυγραμμιστούν για αυτόν τον σχεδιασμό. Το προφίλ του πελάτη δείχνει στον τοπικό ακροατή, το πιστοποιητικό του διακομιστή ταιριάζει με το όνομα που επαληθεύει ο πελάτης, και η προώθηση στην πλευρά του διακομιστή στοχεύει τη θύρα που χρησιμοποιεί πραγματικά ο δαίμονας. Κάντε λάθος σε οποιοδήποτε από αυτά και η σύνδεση πεθαίνει πριν φτάσει στο επίπεδο VPN. Τότε μια αναντιστοιχία πιστοποιητικού εμφανίζεται ως σφάλμα περιτυλίγματος και όχι ως σφάλμα VPN, και γι’ αυτό αξίζει να διαβάζονται και τα δύο αρχεία καταγραφής δίπλα δίπλα.
Η διαδρομή προς το περιτύλιγμα είναι η παγίδα
Μόλις σηκωθεί το τούνελ, η προεπιλεγμένη διαδρομή δείχνει μέσα του, και η εξωτερική συνεδρία TLS χρειάζεται μια διαδρομή που δεν μπαίνει στο τούνελ που μεταφέρει. Ένας συνηθισμένος πελάτης VPN προστατεύει τη διεύθυνση που καλεί, ενώ ένας τυλιγμένος πελάτης καλεί το δικό του loopback, οπότε η διεύθυνση προορισμού του περιτυλίγματος είναι αόρατη σε αυτή την προστασία.
sudo ip route add 198.51.100.20 via 192.168.0.1
sudo openvpn --config client.ovpn
sudo ip route del 198.51.100.20
Τις ακριβείς διευθύνσεις τις συμπληρώνετε εσείς, και η διαδρομή πρέπει να υπάρχει σε όλη τη διάρκεια ζωής της σύνδεσης, όχι μόνο στην εκκίνηση. Ένα μικρό σενάριο περιτυλίγματος που προσθέτει τη διαδρομή πριν από τον πελάτη και την αφαιρεί μετά είναι πιο αξιόπιστο από μια εντολή που θυμάστε.
Στο Android, το αντίστοιχο αυτής της εξαίρεσης είναι μια ρύθμιση ανά εφαρμογή: εξαιρέστε την εφαρμογή περιτυλίγματος από το τούνελ ώστε η δική της κίνηση να βγαίνει από τη σύνδεση κινητής. Χωρίς την εξαίρεση το περιτύλιγμα δρομολογείται μέσα στο τούνελ που προσπαθεί να χτίσει, και ο βρόχος επανασύνδεσης μοιάζει με πρόβλημα διακομιστή.
Διαβάστε το χρονικό πριν αλλάξετε οτιδήποτε
Μια συνεδρία που πεθαίνει μετά το ίδιο διάστημα κάθε φορά είναι υπογραφή πολιτικής και όχι κρυπτογραφική αποτυχία, και τα μακροχρόνια όρια ροής παράγουν ακριβώς αυτό το μοτίβο. Μια σύνδεση που επαναφέρεται αμέσως μετά τη χειραψία υποδηλώνει μεσολαβητή που δεν του άρεσε η αλυσίδα πιστοποιητικών.
Συγκρίνετε τον εκδότη του πιστοποιητικού μιας συνηθισμένης τοποθεσίας HTTPS και από τα δύο δίκτυα. Αν ο εκδότης διαφέρει στο περιορισμένο δίκτυο, κάτι τερματίζει το TLS στη μέση, και κανένα περιτύλιγμα δεν θα επιβιώσει αυτής της υποκλοπής χωρίς αλλαγή. Η ίδια σύγκριση σας λέει αν ο αποκλεισμός στοχεύει το όνομα του διακομιστή σας ή κάθε συνεδρία TLS σε αυτή τη διεύθυνση.
Καταγράψτε τη συμπεριφορά που παρατηρήσατε: πόσο κράτησε η συνεδρία, αν άνοιξε ο υποδοχέας, αν το περιτύλιγμα κατέγραψε χειραψία. Κάθε ένα από αυτά στενεύει το επόμενο τεστ.
Δοκιμάζετε μία μεταβλητή κάθε φορά
Ελέγξτε πρώτα το UDP, γιατί μερικά δίκτυα το ρίχνουν εντελώς και μια αποτυχία UDP δεν λέει τίποτα για τη θύρα 443. Μετά δοκιμάστε TCP 443 χωρίς το περιτύλιγμα, και μετά το περιτύλιγμα στη θύρα 443. Διαβάζετε το αρχείο καταγραφής του πελάτη σε κάθε βήμα και σταματήστε μόλις αλλάξει η συμπεριφορά.
Αλλάξτε ένα στοιχείο ανά προσπάθεια. Νέα θύρα, νέο περιτύλιγμα και νέος αλγόριθμος κρυπτογράφησης στην ίδια δοκιμή σας αφήνουν ανίκανους να πείτε ποιο από τα τρία μετρούσε.