Διαχωρισμένη σήραγγα: γιατί ένας σύνδεσμος ανοίγει έξω από το VPN που ρυθμίσατε
Η δρομολόγηση ακολουθεί τη διεργασία που ανοίγει τον υποδοχέα, όχι την εφαρμογή που σας έδειξε τον σύνδεσμο. Αποδείξτε ποιο πρόγραμμα συνδέεται πριν διευρύνετε τις εξαιρέσεις σας.
Η διοχέτευση μιας εφαρμογής μέσα από σήραγγα δεν μεταφέρει τη δρομολόγησή της σε ό,τι κι αν εκκινήσει αυτή η εφαρμογή, ακόμη κι αν η διεπαφή υπονοεί το αντίθετο. Ένας σύνδεσμος παραδίδει ένα αίτημα σε άλλο πρόγραμμα, το πρόγραμμα εκείνο ανοίγει τον δικό του υποδοχέα, και η πλατφόρμα εφαρμόζει τους κανόνες στη νέα διεργασία και όχι σε εκείνη που εμφάνισε το κείμενο. Αυτή η δεύτερη διεργασία είναι ό,τι βλέπει πραγματικά η πολιτική της σήραγγας, και δεν είναι εκείνη που ρυθμίσατε.
Μια εφαρμογή που περιλαμβάνεται μπορεί επομένως να ανοίξει ένα πρόγραμμα περιήγησης που βρίσκεται έξω από τη σήραγγα. Ένα πρόγραμμα περιήγησης που εξαιρείται μπορεί να επιστρέψει εργασία σε μια εφαρμογή που βρίσκεται μέσα σε αυτό. Και οι δύο κατευθύνσεις αυτής της έκπληξης είναι συνήθης συμπεριφορά.
Το κομμάτι της ροής εργασίας που δεν ρύθμισε κανείς
Η πολιτική ανά εφαρμογή γράφεται με βάση την ταυτότητα ενός εκτελέσιμου ή ενός πακέτου, και κάθε σύνδεση αξιολογείται τη στιγμή που δημιουργείται. Το πρόγραμμα περιήγησης, ο προβολέας εγγράφων, το πρόγραμμα αναπαραγωγής πολυμέσων και το φύλλο κοινής χρήσης του συστήματος φέρουν καθένα τη δική του ταυτότητα, και καθένα παίρνει τη δική του ετυμηγορία. Ένας βαθύς σύνδεσμος μεταφέρει δεδομένα, όχι πολιτική.
Γι' αυτό η παρατήρηση μοιάζει αυθαίρετη: το ίδιο κλικ δρομολογείται με δύο τρόπους ανάλογα με το ποιος χειριστής απαντά. Ένας πελάτης αλληλογραφίας μέσα στη σήραγγα ανοίγει έναν σύνδεσμο σε πρόγραμμα περιήγησης που ζει έξω από τη σήραγγα, και η σελίδα φορτώνεται από τη διεύθυνση του σπιτιού σας. Ένα πρόγραμμα περιήγησης έξω από τη σήραγγα ανοίγει ένα έγγραφο σε προβολέα που ζει μέσα της, και το αρχείο φτάνει μέσω της εξόδου. Κανένα από τα δύο αποτελέσματα δεν είναι σφάλμα του πελάτη.
Ένας χειριστής που εκτελείται ήδη κάνει τα πράγματα χειρότερα. Αν το πρόγραμμα περιήγησης είναι ήδη ανοιχτό, ο σύνδεσμος γίνεται μήνυμα προς μια υπάρχουσα διεργασία, και η διεργασία εκείνη διατηρεί όποια δρομολόγηση είχε όταν ξεκίνησε. Το κλείσιμο και το ξανάνοιγμα του χειριστή αλλάζει το αποτέλεσμα, και γι' αυτό το πρόβλημα δεν αναπαράγεται ποτέ κατόπιν αιτήματος.
| Platform | Policy object | What it is evaluated against |
|---|---|---|
| Android | Per-app VPN allowlist | Package name of the process opening the socket |
| Windows | Application traffic filters | Application path in the filter rule |
| Linux | UID or cgroup routing rules | Owner of the socket, which can be a different program |
Ποια διεργασία έκανε στην πραγματικότητα τη σύνδεση
Μετρήστε την πλευρά που λαμβάνει αντί να συλλογίζεστε γι' αυτήν. Κρατήστε τη σήραγγα ανοιχτή, κάντε κλικ σε έναν ακίνδυνο σύνδεσμο και κοιτάξτε τους υποδοχείς που κρατά το νέο πρόγραμμα.
ss -tnp state established '( dport = :443 )' Get-NetTCPConnection -State Established | Select-Object RemoteAddress,OwningProcess
Η πρώτη εντολή ονομάζει τη διεργασία πίσω από κάθε εδραιωμένο υποδοχέα στο Linux, και η δεύτερη κάνει το ίδιο στα Windows επιλύοντας το αναγνωριστικό της διεργασίας που τον κατέχει. Συγκρίνετε το όνομα της διεργασίας με τα ονόματα στην πολιτική σας. Αν το όνομα είναι το πρόγραμμα περιήγησης και το πρόγραμμα περιήγησης εξαιρείται, το κλικ έφυγε από τη σήραγγα εκ σχεδιασμού και όχι εξαιτίας σφάλματος. Η αντιστοίχιση ενός κανόνα πολιτικής με έναν ζωντανό υποδοχέα είναι ολόκληρη η μέθοδος.
Επαναλάβετε τον έλεγχο με τον χειριστή να εκτελείται ήδη και έπειτα με αυτόν κλειστό. Τα δύο αποτελέσματα μπορεί να διαφέρουν, και αυτή η διαφορά εξηγεί τις περισσότερες περιστασιακές αναφορές για συνδέσμους που διαφεύγουν από μια σήραγγα.
Η κάλυψη είναι ιδιότητα της ροής εργασίας
Αν μια εργασία πρέπει να μείνει μέσα στη σήραγγα από την αρχή ως το τέλος, κάθε στοιχείο που μπορεί να προσεγγίσει πρέπει να βρίσκεται μέσα στην πολιτική: ο εκκινητής, ο χειριστής, ο προβολέας και οποιοσδήποτε μεσολαβητής παρεμβάλλει η πλατφόρμα ανάμεσά τους. Η ευρύτερη κάλυψη είναι συχνά η ειλικρινής απάντηση, και είναι φθηνότερη από τον έλεγχο κάθε στόχου κοινής χρήσης.
Το να εξαιρέσετε έναν μεσολαβητή του συστήματος για να διορθώσετε μία εφαρμογή είναι συνηθισμένο λάθος. Οι μεσολαβητές μοιράζονται, οπότε η εξαίρεση ακολουθεί κάθε άλλη εφαρμογή που χρησιμοποιεί την ίδια διαδρομή, συνήθως χωρίς να το προσέξει κανείς μέχρι να φτάσει μια αναφορά εβδομάδες αργότερα. Διαβάστε τι άλλο εξαρτάται από το στοιχείο πριν το εξαιρέσετε.
Κρατήστε την ταυτότητα χωριστά από τη δρομολόγηση. Ένας σύνδεσμος μπορεί να μεταφέρει διακριτικό συνεδρίας ή αναγνωριστικό λογαριασμού ανεξάρτητα από το ποια έξοδος λαμβάνει το αίτημα. Ένα σωστά δρομολογημένο κλικ μπορεί ακόμη να πει στον προορισμό ακριβώς ποιος το ακολούθησε.
Τεκμηριώστε τη ροή εργασίας, όχι το πρώτο πλαίσιο ελέγχου. Όταν μια εργασία απλώνεται σε τέσσερα προγράμματα, το διάγραμμα με τα τέσσερα προγράμματα είναι εκείνο που προβλέπει πού πάει η κίνηση, και η ρύθμιση για μία εφαρμογή είναι μόνο μία γραμμή του.