Θα μπλοκάρει ο διακόπτης ασφαλείας την εφαρμογή που εξαιρέσατε από τη σήραγγα;
Μια εξαιρεμένη εφαρμογή μπορεί να πηγαίνει απευθείας σκόπιμα, ενώ μια προστατευμένη πρέπει να αποτυγχάνει κλειστή. Γράψτε πρώτα την πολιτική ανά εφαρμογή και μετά ελέγξτε τι επιβάλλει ο πελάτης.
Ο διακόπτης ασφαλείας ενεργός, μια εφαρμογή σκόπιμα εξαιρεμένη από τη σήραγγα, και οι δύο απαιτήσεις τώρα αντιφάσκουν. Η μία λέει ότι τίποτα δεν φεύγει παρά μόνο μέσα από τη σήραγγα, η άλλη λέει ότι αυτό το πρόγραμμα πρέπει να πηγαίνει απευθείας. Κάθε πελάτης λύνει αυτή τη σύγκρουση διαφορετικά, και η σελίδα ρυθμίσεων σπάνια εξηγεί ποιος κανόνας υπερισχύει. Γράψτε την πολιτική ανά εφαρμογή πριν εμπιστευτείτε οποιαδήποτε ετικέτα.
Δύο πολιτικές, ένα μηχάνημα
Ο διακόπτης ασφαλείας είναι μια υπόσχεση για την αποτυχία: όταν η σήραγγα δεν προστατεύει την κίνηση, η κίνηση σταματά. Η διαχωρισμένη σήραγγα είναι μια υπόσχεση για την επιλογή: αυτά τα προγράμματα ή οι προορισμοί χρησιμοποιούν τη σήραγγα, και εκείνα όχι. Η δεύτερη υπόσχεση δημιουργεί κίνηση για την οποία πρέπει να αποφασίσει η πρώτη. Καμία υπόσχεση δεν είναι λάθος· απλώς τις έγραψαν διαφορετικοί άνθρωποι για διαφορετικές απειλές.
Τρία αποτελέσματα είναι δυνατά και μόνο ένα είναι αυτό που σκόπευε η ανάπτυξη. Η εξαιρεμένη εφαρμογή μπορεί να μείνει απευθείας κατά τη διάρκεια μιας διακοπής, κάτι που σέβεται τον διαχωρισμό και σπάει τον διακόπτη ασφαλείας. Μπορεί να μπλοκαριστεί μαζί με όλα τα άλλα, κάτι που σέβεται τον διακόπτη και σπάει τον διαχωρισμό. Ή μπορεί να μπλοκάρεται μόνο μερικές φορές, ανάλογα με το πώς η πλατφόρμα αξιολογεί τον κανόνα αφού εξαφανιστεί μια διεπαφή. Η τελευταία περίπτωση είναι αυτή που παράγει αναφορές.
Γράψτε τη λίστα εφαρμογών πριν από τον κανόνα
Καταγράψτε τα προγράμματα που πρέπει να χρησιμοποιούν τη σήραγγα, εκείνα που πρέπει να πηγαίνουν απευθείας, και τα ονόματα ή τους προορισμούς που δεν πρέπει ποτέ να εμφανίζονται σε καμία από τις δύο λίστες. Συμπεριλάβετε χωριστά τη συμπεριφορά του επιλυτή και την πλευρά IPv6, γιατί και τα δύο μπορούν να ακολουθούν διαφορετική πολιτική από την κίνηση των σελίδων.
Οι κανόνες ανά εφαρμογή ταιριάζουν συνήθως με ένα εκτελέσιμο ή ένα πακέτο, όχι με ένα προφίλ μέσα σε αυτό. Ένα προφίλ προγράμματος περιήγησης, ένα ιδιωτικό παράθυρο και μια επέκταση δεν φέρουν δική τους ταυτότητα δικτύου, οπότε κληρονομούν ό,τι έλαβε η διεργασία. Μια βοηθητική διεργασία που εκκίνησε αυτό το πρόγραμμα περιήγησης μπορεί να μην κληρονομήσει καθόλου τον ίδιο κανόνα.
Χρειάζονται δύο λίστες, όχι μία: τι πρέπει να μεταφέρει η σήραγγα και τι δεν πρέπει ποτέ να ταξιδέψει έξω από αυτήν για κανέναν λόγο. Μια εφαρμογή που εμφανίζεται και στις δύο είναι σύγκρουση απαιτήσεων και όχι λεπτομέρεια υλοποίησης, και πρέπει να τακτοποιηθεί πριν ρυθμιστεί ο πελάτης.
Τι κάνει ο πελάτης κατά τη διάρκεια μιας διακοπής
Ορισμένες υλοποιήσεις μπλοκάρουν τις εξαιρεμένες εφαρμογές κατά τη διάρκεια μιας διακοπής και αποκαθιστούν την πρόσβαση στην επανασύνδεση. Άλλες διατηρούν την άμεση διαδρομή σε όλη τη διάρκεια, κάτι που είναι συνεπές με τον διαχωρισμό και ασθενέστερο ως ιδιότητα ασφαλείας. Το κλείδωμα σε επίπεδο πλατφόρμας μπορεί να υπερισχύσει πλήρως της επιλογής ανά εφαρμογή του πελάτη. Αυτή η διαφορά δεν είναι καλλωπιστική, γιατί καθορίζει αν η εξαιρεμένη εφαρμογή είναι εξαίρεση πολιτικής ή τρύπα.
Το πάντα ενεργό VPN του Android με την επιλογή αποκλεισμού συνδέσεων χωρίς VPN είναι η πιο ξεκάθαρη περίπτωση, γιατί η πλατφόρμα επιβάλλει το κλείδωμα και όχι ο πελάτης, και ένα εξαιρεμένο πακέτο μπλοκάρεται μαζί με όλα τα άλλα όσο η σήραγγα είναι κάτω. Ένας πελάτης υπολογιστή που εφαρμόζει εξαιρέσεις ανά εφαρμογή μέσα στον δικό του οδηγό συνήθως αφήνει την εξαιρεμένη διεργασία στη φυσική διεπαφή, γιατί ποτέ δεν κατείχε την κίνηση εκείνης της διεργασίας. Και οι δύο συμπεριφορές είναι υπερασπίσιμες και μόνο μία ταιριάζει με απαίτηση που λέει ότι η εξαιρεμένη εφαρμογή πρέπει να παραμένει χρησιμοποιήσιμη. Ρωτήστε ποιο συστατικό επιβάλλει τον κανόνα πριν ερμηνεύσετε το αποτέλεσμα.
Διαβάστε τη συμπεριφορά για το λειτουργικό σύστημα μπροστά σας και όχι τη ρύθμιση με το ίδιο όνομα αλλού. Τα API επιβολής διαφέρουν, και ένα πλαίσιο ελέγχου μπορεί να σημαίνει αυστηρά διαφορετικά πράγματα σε έναν υπολογιστή και σε ένα τηλέφωνο. Σημασία έχει και η έκδοση, γιατί ο έλεγχος κλειδώματος μετακινήθηκε ανάμεσα σε οθόνες στις εκδόσεις του Android, και μια λίστα εξαιρέσεων στην πλευρά του πελάτη δεν είναι ο ίδιος έλεγχος με ένα κλείδωμα πλατφόρμας.
Τρεις στιγμές: σήραγγα πάνω, σήραγγα κάτω, επανασύνδεση
Χρησιμοποιήστε αβλαβή αιτήματα σε τρεις στιγμές: όσο η σήραγγα λειτουργεί, κατά τη διάρκεια της αποτυχίας που σας απασχολεί, και μετά την επανασύνδεση. Ένα μόνο αποτέλεσμα προγράμματος περιήγησης δεν μπορεί να τεκμηριώσει τη συμπεριφορά της εξαιρεμένης εφαρμογής.
curl -sS --max-time 8 https://api.ipify.org
curl -sS --max-time 8 --interface tun0 https://api.ipify.org
dig +short example.com
Η διεύθυνση εξόδου δείχνει ποια διαδρομή ακολουθήθηκε, και η ρητή δοκιμή διεπαφής δείχνει τι συμβαίνει όταν η σήραγγα είναι η μόνη διαθέσιμη έξοδος. Σημειώστε το αναμενόμενο αποτέλεσμα δίπλα σε κάθε γραμμή πριν εκτελέσετε οποιαδήποτε από αυτές, αλλιώς η έξοδος θα ερμηνευτεί εκ των υστέρων.
Αν μια εξαιρεμένη εφαρμογή βγει εκτός σύνδεσης, ελέγξτε την προτεραιότητα πολιτικής πριν προσθέσετε μια ευρεία άδεια στο τείχος προστασίας, γιατί αυτή η διόρθωση καταστρέφει τη διάκριση που δοκιμάζατε. Αν παραμείνει απευθείας, επιβεβαιώστε ότι ήταν η τεκμηριωμένη εξαίρεση και όχι τυχαία υποχώρηση. Για αυστηρή απαίτηση για ολόκληρη τη συσκευή, συντομεύστε τη λίστα εξαιρέσεων μέχρι να μπορεί να δοκιμαστεί με το χέρι.