Κρατήστε τις ιδιωτικές διαδρομές και αφαιρέστε την ανακατεύθυνση: σήραγγα OpenVPN με διαχωρισμό
Μια σήραγγα μόνο για ιδιωτικά δίκτυα χρειάζεται δύο κανόνες: τα ιδιωτικά προθέματα περνούν από αυτήν, η συνηθισμένη περιήγηση κρατά την τοπική της διαδρομή. Η διαγραφή μιας προεπιλεγμένης διαδρομής δεν είναι πολιτική.
Η σήραγγα σηκώνεται, η εφαρμογή φορτώνει και τότε όλα τα υπόλοιπα στον φορητό υπολογιστή αρχίζουν να συμπεριφέρονται παράξενα. Αυτή είναι η συνηθισμένη μορφή μιας πολιτικής μόνο για ιδιωτικά δίκτυα που υλοποιείται με τη διαγραφή μιας γραμμής. Η αφαίρεση μιας προωθημένης προεπιλεγμένης διαδρομής αλλάζει όντως πού πηγαίνει η κίνηση, αλλά δεν λέει πού πρέπει να πάει η κίνηση αντί για αυτό, και δεν αγγίζει καθόλου την επίλυση ονομάτων. Μια πολιτική χρειάζεται δύο θετικά μισά πριν μπορεί να δοκιμαστεί.
Η διαγραφή της ανακατεύθυνσης είναι μόνο το μισό της αλλαγής
Μια ανακατεύθυνση πλήρους σήραγγας και μια πολιτική μόνο για ιδιωτικά δίκτυα διαφέρουν σε αυτό που ισχυρίζονται για τον κόσμο. Η ανακατεύθυνση διεκδικεί κάθε προορισμό, ενώ η ιδιωτική πολιτική διεκδικεί μια λίστα και αφήνει τα υπόλοιπα ήσυχα. Η διαγραφή της διεκδίκησης χωρίς τη συγγραφή της λίστας παράγει έναν πελάτη που δεν φτάνει πουθενά εκτός από το τοπικό δίκτυο, κάτι που μοιάζει με αποτυχία δρομολόγησης και όχι με κενό στην πολιτική. Γράψτε τη λίστα πριν αφαιρέσετε τη διεκδίκηση, και τότε η σειρά αυτών των δύο βημάτων παύει να έχει σημασία.
Και τα δύο μισά είναι απαιτήσεις και όχι προεπιλογές. Τα ιδιωτικά προθέματα πρέπει να μπαίνουν στη σήραγγα, και οι συνηθισμένοι προορισμοί πρέπει να κρατούν τη διαδρομή που είχαν πριν από τη σύνδεση.
Αν ένας οργανισμός επιβάλλει πλήρη σήραγγα, τίποτα από αυτά δεν ισχύει. Ο σχεδιασμός μόνο για ιδιωτικά δίκτυα ανήκει σε εγκαταστάσεις όπου η διαχωρισμένη δρομολόγηση είναι εγκεκριμένη.
Το pull-filter είναι αντιστοίχιση, όχι διακόπτης
Η οδηγία pull-filter αφαιρεί τις προωθημένες επιλογές των οποίων τα ονόματα ταιριάζουν με ένα πρόθεμα, και αυτό είναι το μόνο που κάνει. Η αγνόηση της ανακατεύθυνσης αφήνει κάθε άλλη προωθημένη επιλογή στη θέση της, που συνήθως είναι το επιθυμητό: διαδρομές, ρυθμίσεις DNS και η τιμή πύλης διαδρομής φτάνουν ακόμη. Δεν μπορεί επίσης να αφαιρέσει μια οδηγία γραμμένη στο τοπικό προφίλ, γιατί το φιλτράρισμα ισχύει για ό,τι προωθεί ο διακομιστής.
Αντισταθείτε στον πειρασμό να αγνοήσετε κάθε επιλογή που αρχίζει με route. Αυτό το μοτίβο πετάει επίσης τις ιδιωτικές διαδρομές που χρειάζεται η σύνδεση, και μπορεί να χάσει πληροφορίες πύλης από τις οποίες εξαρτάται η σήραγγα.
Το route-nopull είναι ευρύτερη απόφαση απ’ ό,τι φαίνεται. Σταματά τον πελάτη να δέχεται προωθημένες διαδρομές και επιλογές τύπου DHCP ως σύνολο, που είναι διαφορετική πολιτική από το φιλτράρισμα μιας επιλογής.
Γράψτε τη λίστα διαδρομών από την εφαρμογή προς τα έξω
Ξεκινήστε από αυτό που ανοίγει πραγματικά ο χρήστης και μετά προσθέστε τα υποστηρικτικά μέρη. Μια εφαρμογή στο 10.60.20.15 υπονοεί το υποδίκτυό της 10.60.0.0/16, και ένα ιδιωτικό όνομα υπονοεί τον μετατροπέα που το απαντά. Επομένως ένας χρήστης που ζήτησε μία εφαρμογή χρειάζεται δύο προορισμούς και μία απόφαση DNS. Ό,τι βρίσκεται πέρα από αυτή τη λίστα είναι εκτός πεδίου εκ κατασκευής, και αυτό κρατά την πολιτική ελέγξιμη.
Σε έναν συνεργαζόμενο διακομιστή αυτά γίνονται δύο προωθημένες διαδρομές, και καμία από τις δύο δεν είναι ανακατεύθυνση. Κρατήστε την τοπολογία της σήραγγας και τις τιμές πύλης διαδρομής που παρέχει η υπάρχουσα υπηρεσία.
Όταν μόνο μερικοί χρήστες χρειάζονται αυτή την πολιτική, εφαρμόστε την ανά πελάτη ή ανά ομάδα. Το να αλλάξετε τη δρομολόγηση όλων για να διορθώσετε την απαίτηση μιας ομάδας είναι ο τρόπος με τον οποίο μια διαχωρισμένη σήραγγα γίνεται διακοπή.
| Destination | Intended path |
|---|---|
10.60.0.0/16 | Tunnel, for the approved application services |
10.61.0.53/32 | Tunnel, to reach the internal resolver |
corp.example queries | Internal resolver, selected per namespace |
| Everything else | Local path and local resolver |
Κάντε το DNS να ακολουθεί την ίδια διαδρομή
Μια διαδρομή προς τον μετατροπέα δεν είναι πολιτική μετατροπέα. Σε έναν πελάτη systemd-resolved το σημασιολογικό αποτέλεσμα είναι ένας τομέας δρομολόγησης για τον ιδιωτικό χώρο ονομάτων που δείχνει στον εσωτερικό μετατροπέα, και αυτό κάνει μόνο αυτά τα ονόματα να τον χρησιμοποιούν. Ένας πελάτης Windows χρειάζεται αντ’ αυτού δικό του μηχανισμό πολιτικής χώρου ονομάτων. Μια γραμμή διακομιστή DNS στο προφίλ δεν εγκαθιστά κανένα από τα δύο από μόνη της.
Ελέγξτε τι επέλεξε το λειτουργικό σύστημα και όχι τι ζήτησε το προφίλ. Στο Linux το resolvectl status δείχνει τον τομέα και τον διακομιστή ανά ζεύξη· στα Windows ο πίνακας πολιτικής χώρου ονομάτων είναι το αντίστοιχο στοιχείο.
Κρατήστε τον μετατροπέα προσβάσιμο μέσω της σήραγγας, αλλιώς η πολιτική δείχνει σε μια διεύθυνση που δεν μπορεί να ερωτηθεί. Μια διεύθυνση μετατροπέα που η σήραγγα δεν φτάνει μετατρέπει μια πολιτική που λειτουργεί σε λήξη χρόνου.
Επαληθεύστε και τα δύο μισά σε μια επανασύνδεση
Συνδέστε ξανά τον πελάτη μετά την αλλαγή και εξετάστε την ενεργή διαδρομή προς μια ιδιωτική και προς μια δημόσια διεύθυνση. Έπειτα επιλύστε ένα ιδιωτικό όνομα και ένα δημόσιο όνομα και επιβεβαιώστε ότι το καθένα χρησιμοποίησε τον προβλεπόμενο μετατροπέα. Η φόρτωση μιας δημόσιας ιστοσελίδας αποδεικνύει μόνο το δεύτερο μισό, και αυτό είναι το μισό που συνήθως λειτουργεί κατά τύχη.
Καταγράψτε την τελική πολιτική σε μία πρόταση: αυτά τα προθέματα και ονόματα χρησιμοποιούν αυτή τη σύνδεση, όλα τα άλλα ακολουθούν την τοπική διαδρομή. Έπειτα κρατήστε την στο προφίλ αντί να επισκευάζετε ρυθμίσεις προσαρμογέα μετά από κάθε σύνδεση.