Γιατί το proxy του Cloudflare δεν μπορεί να μεταφέρει το OpenVPN σε ένα όνομα
Μια εγγραφή με proxy χειρίζεται HTTP και HTTPS. Διαχωρίστε τα ονόματα, κρατήστε δύο listeners και δώστε σε κάθε σύνδεση το πιστοποιητικό που εμπιστεύεται πραγματικά το απέναντι άκρο.
Ένα μηχάνημα τρέχει τον ιστότοπο και τον διακομιστή OpenVPN, και ο πειρασμός είναι να δείξετε ένα όνομα κεντρικού υπολογιστή προς αυτό και να αφήσετε το πορτοκαλί σύννεφο να τακτοποιήσει την κίνηση. Το proxy τακτοποιεί HTTP και HTTPS. Δεν τακτοποιεί μια συνεδρία OpenVPN, ανεξάρτητα από το ποιο port χρησιμοποιεί αυτή η συνεδρία. Δύο ονόματα, ένα άμεσο και ένα μέσω proxy, δεν κοστίζουν τίποτα και αφαιρούν ολόκληρη την κατηγορία σύγχυσης.
Δύο ονόματα, δύο μεταφορές
Δώστε στον ιστότοπο μια εγγραφή μέσω proxy ώστε η κίνηση HTTP και HTTPS του να περνά από το Cloudflare. Δώστε στο VPN μια εγγραφή μόνο DNS που επιλύεται απευθείας στη δημόσια είσοδο του VPN, και αφήστε τον πελάτη να χρησιμοποιήσει το port UDP ή TCP για το οποίο έχει ρυθμιστεί.
Και τα δύο ονόματα μπορούν να καταλήξουν στο ίδιο μηχάνημα προέλευσης. Η διαφορά είναι τι συμβαίνει μεταξύ του πελάτη και αυτού του μηχανήματος, και αυτή η διαφορά είναι το νόημα του διαχωρισμού.
Η αναφορά θυρών δικτύου του Cloudflare απαριθμεί ποιες θύρες δέχεται το συνηθισμένο web proxy. Αυτή η λίστα αφορά HTTP και HTTPS σε αυτές τις θύρες, όχι αυθαίρετα πρωτόκολλα που τυχαίνει να μοιράζονται έναν αριθμό.
Η θύρα δεν είναι το πρωτόκολλο
Η μετακίνηση του OpenVPN στο TCP 443 δεν το μετατρέπει σε HTTPS. Το proxy εξακολουθεί να περιμένει ένα αίτημα HTTP στην αρχή της σύνδεσης, και ένας πελάτης OpenVPN στέλνει αντίθετα ένα δυαδικό μήνυμα ελέγχου. Η σύνδεση αποτυγχάνει με τρόπο που μοιάζει με αποκλεισμό δικτύου, επειδή τίποτα χρήσιμο δεν φτάνει σε κάποιο αρχείο καταγραφής.
Αν η απαίτηση είναι πραγματικά να βάλετε ένα προϊόν Cloudflare στη διαδρομή δεδομένων του VPN, αξιολογήστε ένα που τεκμηριώνει υποστήριξη του πρωτοκόλλου που χρειάζεστε. Μην υποθέσετε ότι το πορτοκαλί σύννεφο είναι γενική σήραγγα TCP ή UDP, γιατί είναι αντίστροφο proxy για κίνηση ιστού με συγκεκριμένη δουλειά.
Μια εγγραφή μόνο DNS είναι η βαρετή απάντηση που λειτουργεί, και είναι αυτή στην οποία πρέπει να καταφύγετε πρώτα.
Ένα μηχάνημα χρειάζεται ακόμη δύο listeners
Τα χωριστά ονόματα δεν επιτρέπουν σε δύο διεργασίες να δεσμεύσουν την ίδια διεύθυνση, θύρα και μεταφορά ταυτόχρονα. Αν ο διακομιστής ιστού κρατά ήδη το TCP 443 σε όλες τις διευθύνσεις, ένα στιγμιότυπο OpenVPN δεν μπορεί να το πάρει επίσης χωρίς σκόπιμη ρύθμιση.
Δέστε τον listener του VPN σε διαφορετική θύρα, ή σε διαφορετική διεύθυνση, ή βάλτε μπροστά έναν τεκμηριωμένο πολυπλέκτη και δεχτείτε το λειτουργικό κόστος που συνεπάγεται. Καθεμία από αυτές τις επιλογές πρέπει να είναι ορατή στους κανόνες του firewall, γιατί ένας listener που δεν τεκμηρίωσε κανείς είναι αυτός που χάνεται κατά τη διάρκεια ενός περιστατικού. Γράψτε τη δεσμευμένη επιλογή στο ίδιο runbook που περιγράφει τη σήραγγα. Έτσι ο επόμενος άνθρωπος δεν θα την ανακαλύψει ξανά στις δύο τα ξημερώματα.
Τα πιστοποιητικά ακολουθούν τη σύνδεση που προστατεύουν
Η σύνδεση TLS του προγράμματος περιήγησης προς το Cloudflare και η σύνδεση του Cloudflare προς την προέλευσή σας είναι δύο ξεχωριστές σχέσεις με δύο ξεχωριστά πιστοποιητικά. Το πρόγραμμα περιήγησης βλέπει ένα πιστοποιητικό άκρου. Η προέλευση παρουσιάζει το δικό της πιστοποιητικό στο Cloudflare, και ένα πιστοποιητικό Cloudflare Origin CA προορίζεται ακριβώς για τη δεύτερη σχέση.
Αυτό το πιστοποιητικό προέλευσης το εμπιστεύεται το Cloudflare στη λειτουργία Full (strict) και δεν είναι ένα γενικά έμπιστο πιστοποιητικό προγράμματος περιήγησης. Αν κάποιος επισκεφθεί απευθείας το όνομα κεντρικού υπολογιστή μόνο DNS και λάβει προειδοποίηση, αυτό είναι η αναμενόμενη συνέπεια μιας αλλαγμένης διαδρομής εμπιστοσύνης, όχι απόδειξη ότι η κρυπτογράφηση σταμάτησε.
Ένας ιστότοπος που επισκέπτεται άμεσα χρειάζεται επομένως μια αλυσίδα πιστοποιητικών που εμπιστεύονται τα προγράμματα περιήγησής του. Αυτό μπορεί να συνυπάρχει με έναν ιστότοπο μέσω proxy του οποίου η προέλευση δεν προορίζεται καθόλου για επίσκεψη.
Το OpenVPN μεταφέρει τη δική του ταυτότητα διακομιστή και την αυθεντικοποίηση πελάτη, με τη δική του αρχή πιστοποιητικών και τη δική του προστασία του καναλιού ελέγχου. Μια κλειδαριά στον ιστότοπο δεν παρέχει τίποτα από αυτά, και οι δύο διαδικασίες παροχής πρέπει να παραμείνουν χωριστές.
Η έκθεση ακολουθεί το όνομα
Μια εγγραφή VPN μόνο DNS δημοσιεύει τη διεύθυνση στην οποία δείχνει. Αν αυτή η διεύθυνση είναι και η προέλευση του ιστού, η προέλευση δεν είναι κρυμμένη, και το να την περιγράφετε ως κρυμμένη επειδή το άλλο όνομα περνά από proxy είναι λάθος που επιβιώνει μέχρι κάποιος να τη σαρώσει.
Αποφασίστε ποια αιτήματα ιστού μπορούν να φτάσουν απευθείας στην προέλευση και επιβάλτε το στην προέλευση, μετά επιτρέψτε τον listener του VPN με τους δικούς του όρους. Οι σελίδες διαχείρισης, οι λήψεις προφίλ και ο listener δεδομένων μπορούν να έχουν τρεις διαφορετικές απαιτήσεις έκθεσης ακόμη και όταν ένα πακέτο παρέχει και τα τρία.
Κρατήστε τους παραγόμενους συνδέσμους στο δημόσιο όνομα ιστού και στο σχήμα HTTPS, και κρατήστε τα προφίλ πελατών στο όνομα του VPN με το πραγματικό πρωτόκολλο και τη θύρα. Καμία από τις δύο υπηρεσίες δεν πρέπει να εξαρτάται από την αντιστροφή της ρύθμισης proxy της άλλης κατά την κανονική λειτουργία.
Σειρά εργασίας: όνομα μέσω proxy για τον ιστότοπο, όνομα μόνο DNS για το VPN, ξεχωριστοί listeners, πιστοποιητικό ανά σχέση, και μετά μία δοκιμή που αποδεικνύει ότι κάθε όνομα φτάνει μόνο στην υπηρεσία που πρέπει.