Κατάντη υποδίκτυο έναντι VPN επιφάνειας εργασίας: εξαίρεση της διέλευσης, όχι των εφαρμογών
Η παράκαμψη ανά εφαρμογή ταξινομεί μόνο την τοπική έξοδο. Οι συσκευές πίσω από τον σταθμό εργασίας χρειάζονται δική τους πολιτική εισόδου, προώθησης και επιστροφής.
Ένα μηχάνημα, δύο δουλειές, ένα firewall: ένα uplink Wi-Fi, ένα μικρό υποδίκτυο Ethernet πίσω του και ένας πελάτης VPN επιφάνειας εργασίας που υποθέτει ότι ό,τι φεύγει από το μηχάνημα είναι τοπικό. Οι εφαρμογές που εκκινούν τοπικά φεύγουν από την τοπική διαδρομή εξόδου. Οι συσκευές πίσω από τον σταθμό εργασίας φτάνουν στη θύρα Ethernet και χρειάζονται απόφαση προώθησης. Μια εξαίρεση γραμμένη για την πρώτη διαδρομή δεν βλέπει ποτέ τη δεύτερη, και γι' αυτό ένα πρόγραμμα περιήγησης παρακάμπτει τη σήραγγα ενώ οι συσκευές όχι.
Δύο διαδρομές πακέτων, μία πολιτική
| Origin | Path | Decision owner |
|---|---|---|
| Application on the workstation | OUTPUT then egress | The VPN app's routing policy |
| Device behind the workstation | PREROUTING then FORWARD | The workstation's own forwarding policy |
Η πρώτη γραμμή είναι αυτό που περιγράφουν οι περισσότεροι οδηγοί split-tunneling. Η δεύτερη είναι μια ρύθμιση δρομολογητή που τυχαίνει να ζει στο ίδιο μηχάνημα. Το να τις συγχωνεύσετε σε ένα νοητικό μοντέλο είναι το λάθος· μοιράζονται πυρήνα, όχι πολιτική. Σχεδιάστε και τις δύο διαδρομές πριν επεξεργαστείτε οποιονδήποτε κανόνα, και το υπόλοιπο σχέδιο προκύπτει από το ποια διαδρομή λείπει.
Ο πίνακας εξηγεί επίσης γιατί ένα μηχάνημα μπορεί να περάσει ένα τεστ και να αποτύχει σε άλλο. Το πρόγραμμα περιήγησης στον σταθμό εργασίας αποδεικνύει την τοπική διαδρομή· ένα φορητό υπολογιστή συνδεδεμένο στη θύρα Ethernet αποδεικνύει τη διαδρομή προώθησης. Επαληθεύστε μια αλλαγή με καθένα, αλλιώς το δεύτερο μένει αδοκίμαστο όσες φορές κι αν ανανεωθεί το πρόγραμμα περιήγησης.
Τι ταξινομεί πραγματικά μια εξαίρεση εφαρμογής
Μια εξαίρεση ανά εφαρμογή λειτουργεί συνήθως με το να σημαδεύει πακέτα από μια διεργασία ή έναν χρήστη και μετά να δρομολογεί την σημασμένη κίνηση έξω από τη σήραγγα. Αυτό είναι κατασκευή τοπικής εξόδου. Ένα πακέτο από κατάντη συσκευή δεν έχει τοπική διεργασία, οπότε δεν ταιριάζει ποτέ με τον επιλογέα, ό,τι κι αν είναι ο επιλογέας.
Ό,τι κι αν είναι ο επιλογέας, οι δύο λίστες δεν είναι η ίδια λίστα, και αυτό είναι όλο το νόημα. Ο οδηγός Mullvad για Linux περιγράφει σημάδια που καταναλώνει το firewall και η πολιτική δρομολόγησής του, και τα παραδείγματά του στοχεύουν την τοπική έξοδο· δεν είναι υποστηριζόμενη περιγραφή κατάντη δρομολογητή. Η αντιγραφή τους δίνει ένα μηχάνημα που πιστεύει ότι έχει εξαίρεση ενώ προωθεί τα πάντα στη σήραγγα.
Γράψτε το συμβόλαιο διέλευσης
Ονομάστε μαζί το πρόθεμα πηγής κατάντη και τη διεπαφή εισόδου, και μετά περιορίστε αυτό το πρόθεμα στην είσοδο. Χωρίς τον περιορισμό, κάθε συσκευή που φτάνει στη θύρα μπορεί να διεκδικήσει μια εξαιρεμένη διεύθυνση και να φύγει μέσω της παράκαμψης. Αντιμετωπίστε το ως δύο ερωτήματα: επιτρέπεται σε αυτούς τους hosts να χρησιμοποιούν καθόλου αυτό το uplink, και επιτρέπεται να φτάνουν στον σταθμό εργασίας ή στις ιδιωτικές περιοχές της σήραγγας; Αυτά είναι πρόσθετες άδειες, όχι παρενέργειες της επιλογής uplink.
Επιτρέψτε την προώθηση και μετά φιλτράρετέ την. Η πύλη Linux χρειάζεται ενεργοποιημένη προώθηση, κανόνες που επιτρέπουν την επιδιωκόμενη κίνηση και προς τις δύο κατευθύνσεις, και είτε διαδρομή επιστροφής προς τα πάνω είτε σκόπιμα περιορισμένη μετάφραση πηγής. Το NAT μόνο του δεν επιλέγει το uplink και δεν επιτρέπει τη δίοδο μέσα από φίλτρο· ξαναγράφει μια διεύθυνση μόνο μετά από αυτές τις αποφάσεις.
Η ταξινόμηση για τη διέλευση πρέπει να γίνει πριν από την απόφαση διαδρομής προώθησης, δηλαδή στο στάδιο prerouting και όχι στο output. Ένας κανόνας που τοποθετείται μετά την απόφαση μπορεί ακόμη να αλλάξει το πακέτο, αλλά δεν μπορεί να αλλάξει πού έχει ήδη σταλεί.
Τα σημάδια ανήκουν στην εφαρμογή που τα κατέχει
Οι τιμές σημάτων, οι αριθμοί πινάκων και οι προτεραιότητες αλυσίδων είναι μέρος της πολιτικής της εφαρμογής VPN, όχι διαχρονικές σταθερές. Ένα δίκτυο που βασίζεται στην εισαγωγή κανόνα σε πίνακα που αναπαράγει άλλο πρόγραμμα θα σπάσει στην επόμενη ενημέρωση, συνήθως κατά την επανασύνδεση και όχι σε βολική στιγμή.
Η προσθήκη δεύτερης βασικής αλυσίδας με απόφαση accept δεν υπερισχύει απαραίτητα του drop μεταγενέστερης αλυσίδας. Οι βασικές αλυσίδες έχουν άγκιστρα και προτεραιότητες, και η πρώτη απόφαση στη σειρά κερδίζει· ένα accept σε μία αλυσίδα δεν ακυρώνει ένα drop που άλλη αλυσίδα φτάνει πρώτη. Κοιτάξτε το πλήρες σύνολο κανόνων και τη σειρά της πολιτικής δρομολόγησης, όχι τον ένα μετρητή που αυξήθηκε. Ένας μετρητής αποδεικνύει ότι ένας κανόνας εκτελέστηκε, ποτέ ότι η απόφασή του ήταν αυτή που εφαρμόστηκε.
Ενοποιήστε ή μετακινήστε το υποδίκτυο
Τα δύο σχέδια διαφέρουν ως προς το ποιος κατέχει την παράκαμψη. Ένα ενοποιημένο σχέδιο κρατά ένα μηχάνημα και μία πολιτική, με κόστος την εξάρτηση από τον κύκλο ζωής των πινάκων της εφαρμογής VPN και από ένα σύνολο σημάτων που η τεκμηρίωσή της μπορεί να αλλάξει. Ένας αποκλειστικός δρομολογητής για το κατάντη δίκτυο αφαιρεί εντελώς αυτή την εξάρτηση: το υποδίκτυο έχει το δικό του uplink, και ο σταθμός εργασίας παραμένει πελάτης χωρίς ρόλο προώθησης.
Διαλέξτε το δεύτερο όταν το κατάντη δίκτυο πρέπει να συνεχίσει να λειτουργεί μέσα από ενημερώσεις VPN, ή όταν κανείς δεν μπορεί να δοκιμάσει την ενοποιημένη πολιτική μετά από κάθε έκδοση. Διαλέξτε το πρώτο μόνο όταν η ενοποίηση είναι τεκμηριωμένη και κάποιος την έχει.
Επαληθεύστε το όριο σε τέσσερις καταστάσεις: συνδεδεμένο, επανασύνδεση, σκόπιμα αποκλεισμένο και σταματημένο. Ελέγξτε την επίλυση ονομάτων και τις δύο οικογένειες διευθύνσεων σε κάθε μία, γιατί μια παράκαμψη που διαρρέει DNS δεν είναι η εξαίρεση που σχεδιάσατε. Το τεστ πρέπει να αποδεικνύει το ακριβές όριο, όχι απλώς ότι φορτώθηκε μια σελίδα.