Εδώ στοιβάζονται τρία μεταφορικά επίπεδα και το καθένα έχει τη δική του πλαισίωση. Το φορτίο του VPN ταξιδεύει μέσα σε μια συνεδρία TLS, αυτή η συνεδρία TLS ταξιδεύει μέσα σε μια σύνδεση TCP προς μια θύρα loopback, και τα byte αυτής της σύνδεσης ταξιδεύουν μέσα σε SSH προς έναν κεντρικό υπολογιστή αναμετάδοσης, που ανοίγει την πραγματική σύνδεση TCP προς τον ακροατή του VPN. Τίποτα στη διάταξη δεν αλλάζει αυτό που OpenVPN πιστοποιεί, και τίποτα σε αυτήν δεν κάνει έναν ακροατή UDP προσβάσιμο μέσω TCP. Διαβάστε τα υπόλοιπα ως περιγραφή της διαδρομής των byte, όχι ως συνταγή παράκαμψης ενός ελέγχου δικτύου.

Τι μεταφέρει πραγματικά η τοπική προώθηση

Ο πελάτης SSH ακούει σε μια τοπική θύρα. Όταν μια τοπική διεργασία συνδέεται, ο πελάτης συσκευάζει τα byte στο κρυπτογραφημένο κανάλι του, και η πλευρά του διακομιστή ανοίγει μια νέα σύνδεση TCP προς τον προορισμό που ονομάζεται στο αίτημα προώθησης.

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

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

Στρέψτε τον πελάτη στον τοπικό ακροατή

Ένα δηλωμένο παράδειγμα: ο κόμβος αναμετάδοσης φτάνει έναν ακροατή TCP στη διεύθυνση gw.internal.example:443, και μια υψηλή τοπική θύρα εκθέτει αυτή τη διαδρομή μόνο σε αυτό το μηχάνημα.

ssh -N -L 127.0.0.1:24011:gw.internal.example:443 [email protected]

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

Έπειτα βάλτε τον πελάτη VPN σε λειτουργία TCP και στρέψτε τον στη διεύθυνση 127.0.0.1:24011. Αν το προφίλ χρησιμοποιεί UDP, αυτός ο σχεδιασμός δεν μπορεί να βοηθήσει: η προώθηση μεταφέρει ροή byte και δεν υπάρχει διαδρομή datagram μέσα από αυτήν.

Κρατήστε τις δύο πιστοποιήσεις χωριστά

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

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

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

Μην χτίζετε βρόχο κάτω από τη σήραγγα

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

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

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

Κλείστε τον ακροατή όταν τελειώσετε

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

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

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