OpenVPN μέσω διακομιστή μεσολάβησης HTTP: διαβάστε πρώτα την απάντηση CONNECT
Ένας διακομιστής μεσολάβησης CONNECT προωθεί byte, άρα και τα δύο άκρα χρειάζονται TCP. Διαβάστε 407, 403 και 503 πριν κατηγορήσετε τα πιστοποιητικά, και κρατήστε ενεργή την επαλήθευση του διακομιστή.
Στρέψτε έναν πελάτη VPN σε έναν εταιρικό διακομιστή μεσολάβησης HTTP, και το πρώτο χρήσιμο γεγονός είναι ότι ο μεσολαβητής δεν μιλά το πρωτόκολλο του VPN. Ανοίγει μια συνηθισμένη σύνδεση TCP στη διεύθυνση που δώσατε και μετά αποσύρεται, αφήνοντας τον πελάτη και τον διακομιστή να κάνουν τη δική τους ανταλλαγή μέσα από αυτή τη ροή. Ό,τι χρειάζεται ο πελάτης, από τον τύπο μεταφοράς έως τον ακροατή του διακομιστή, πρέπει να ταιριάζει με αυτή τη διάταξη. Δύο αναντιστοιχίες εξηγούν τις περισσότερες αποτυχίες: ένα προφίλ UDP που στοχεύει μεσολαβητή CONNECT, και μια απάντηση μεσολαβητή που εκλαμβάνεται ως σφάλμα VPN.
Τι μεταφέρει ο μεσολαβητής και τι όχι
Ο μεσολαβητής είναι μόνο ένα βήμα μεταφοράς. Δεν γίνεται ο μεσολαβητής του προγράμματος περιήγησής σας, δεν αποθηκεύει προσωρινά τους ιστότοπους που επισκέπτεστε μέσω της σήραγγας, και δεν βλέπει την εσωτερική κίνηση εκτός αν κάποιος διαμόρφωσε σκόπιμα επιθεώρηση. Η σήραγγα που ανοίγει είναι αδιαφανής γι' αυτόν εκ σχεδιασμού.
Αυτό σημαίνει επίσης ότι ο μεσολαβητής δεν μπορεί να διορθώσει έναν διακομιστή χωρίς αντίστοιχο ακροατή. Η άδεια να φτάσετε σε έναν προορισμό και μια υπηρεσία που ακούει σε αυτόν τον προορισμό είναι δύο ξεχωριστά γεγονότα, και μόνο το πρώτο ανήκει στον διαχειριστή του μεσολαβητή.
Ο φορέας πρέπει να είναι TCP και στα δύο άκρα
Ένας συμβατικός μεσολαβητής CONNECT προωθεί μόνο μια ροή byte , άρα ο πελάτης πρέπει να χρησιμοποιεί μεταφορά ροής. Ένα απόσπασμα πελάτη για αυτή την περίπτωση μοιάζει έτσι:
proto tcp-client
remote vpn.example.net 1194
http-proxy proxy.corp.example 3128Η πλευρά του διακομιστή χρειάζεται πραγματικό ακροατή TCP στη θύρα που αναφέρεται στη γραμμή remote. Η αλλαγή του proto udp σε proto tcp-client σε ένα προφίλ δημιουργεί πελάτη που περιμένει ροή· δεν δημιουργεί τη ροή στην άλλη πλευρά. Αν ο ίδιος διακομιστής απαντά και σε UDP σε αυτή τη θύρα, αυτός είναι άλλος ακροατής, όχι δεύτερη λειτουργία του ίδιου.
Όπου υπάρχει ξεχωριστή παρουσία TCP, η συσκευή σήραγγας, η δεξαμενή διευθύνσεων και η δρομολόγησή της είναι δικοί της πόροι. Η αντιγραφή μιας λειτουργικής διαμόρφωσης και η αλλαγή της λέξης μεταφοράς αφήνει αυτούς τους πόρους να δείχνουν στην αρχική παρουσία, κάτι που παράγει σύνδεση που πιστοποιείται και μετά δεν δρομολογεί τίποτα.
Διαβάστε την απάντηση του μεσολαβητή πριν από το αποτέλεσμα του VPN
Η πρώτη ανταλλαγή του πελάτη είναι μια γραμμή αιτήματος που ονομάζει τον κεντρικό υπολογιστή και τη θύρα προορισμού. Η απάντηση σε αυτή τη γραμμή σας λέει αν υπάρχει καθόλου ροή byte, και φτάνει πριν ελεγχθεί οποιοδήποτε πιστοποιητικό ή διαπιστευτήριο:
CONNECT vpn.example.net:1194 HTTP/1.1
Host: vpn.example.net:1194| Proxy reply | What it means | Where to look next |
|---|---|---|
407 Proxy Authentication Required | The proxy wants its own credentials | The client's proxy auth options, not the VPN account |
403 Forbidden | The destination or method is not permitted | The proxy's access policy for that host and port |
503 Service Unavailable | The proxy could not complete the upstream connection | The proxy's own logs and the server's listener |
Μια απάντηση κλάσης 200 στο CONNECT σημαίνει ότι η ροή υπάρχει. Δεν λέει τίποτα για το αν το πιστοποιητικό της πύλης είναι αξιόπιστο, αν το κοινόχρηστο κλειδί ταιριάζει ή αν ο λογαριασμός χρήστη είναι έγκυρος. Αυτοί οι έλεγχοι γίνονται μετά, μέσα στη ροή, και αποτυγχάνουν με τα δικά του μηνύματα του πελάτη και όχι με γραμμή κατάστασης HTTP. Διαβάστε το αρχείο καταγραφής του πελάτη για το πρώτο OpenVPN γεγονός μετά τη χειραψία με τον μεσολαβητή, όχι για την τελευταία γραμμή πριν κλείσει το παράθυρο.
Τα διαπιστευτήρια του μεσολαβητή και τα διαπιστευτήρια του VPN είναι συχνά διαφορετικές ταυτότητες σε διαφορετικές ομάδες. Ένα 407 δεν είναι κακός κωδικός πρόσβασης στον λογαριασμό VPN, και ένα πιστοποιητικό που απορρίφθηκε δεν είναι πρόβλημα δικαιωμάτων του μεσολαβητή.
Τι δεν αποκαλύπτει το CONNECT
Μια ρητή σήραγγα CONNECT δεν είναι υποκλοπή. Ο μεσολαβητής προωθεί byte και δεν τερματίζει τη συνεδρία TLS του VPN, άρα η επαλήθευση του πιστοποιητικού του διακομιστή από τον πελάτη παραμένει ουσιαστική και πρέπει να μείνει ενεργή. Η απενεργοποίηση της επαλήθευσης για να περάσετε έναν μεσολαβητή λύνει διαφορετικό πρόβλημα από το δικό σας.
Υπάρχουν ξεχωριστές ρυθμίσεις όπου ένας οργανισμός τερματίζει και επιθεωρεί το TLS σκόπιμα. Αυτές απαιτούν τη δική τους διαμόρφωση εμπιστοσύνης και τη δική τους απόφαση πολιτικής, και δεν είναι αυτό που ζητά μια συνηθισμένη γραμμή http-proxy.
Το κόστος του TCP μέσα σε TCP
Η μεταφορά της σήραγγας πάνω από TCP κρατά την εξωτερική ροή σε σειρά και με επαναμετάδοση, και η εσωτερική κίνηση είναι συνήθως επίσης TCP. Οι δύο μηχανισμοί ανάκαμψης δεν συντονίζονται, άρα ένα χαμένο τμήμα μπορεί να σταματήσει ό,τι μοιράζεται αυτή την εξωτερική ροή μέχρι να μεταδοθεί ξανά. Είναι πραγματικό αντιστάθμισμα για συμβατότητα, όχι δωρεάν αναβάθμιση.
Χρησιμοποιήστε τη διαδρομή μέσω μεσολαβητή όταν το δίκτυο δεν σας αφήνει εναλλακτική, και προτιμήστε άμεση διαδρομή UDP όπου το επιτρέπει η πολιτική. Σε κάθε περίπτωση, μετά από μια αλλαγή επιβεβαιώστε ότι ο ίδιος μεσολαβητής, ο ίδιος προορισμός και το ίδιο προφίλ φτάνουν στο επόμενο στάδιο· ένα πρόγραμμα περιήγησης που φορτώνει σελίδα σε αυτή τη διεύθυνση ασκεί άλλο πρωτόκολλο και δεν αποδεικνύει τίποτα για τη σήραγγα.