Προφίλ τείχους προστασίας και έξοδος VPN: γιατί το δημόσιο δεν είναι διαδρομή
Ένα προφίλ τείχους προστασίας επιλέγει ποιο σύνολο κανόνων ισχύει. Δεν λέει τίποτα για το ποια διεπαφή μετέφερε το πακέτο, και μια ρητή απαγόρευση υπερισχύει μιας στενότερης άδειας.
Ο κανόνας ακούγεται ακριβής: να επιτρέπεται η τοπική κίνηση στο ιδιωτικό προφίλ και μόνο η κίνηση VPN στο δημόσιο. Δεν είναι, γιατί ένα προφίλ δικτύου επιλέγει ποιο σύνολο κανόνων τείχους προστασίας ισχύει και δεν λέει τίποτα για το ποιος προσαρμογέας μετέφερε ένα πακέτο. Το να αντιμετωπίζεις το όνομα του προφίλ ως απαίτηση διαδρομής είναι το λάθος που κάνει ένα σχέδιο περιορισμένης εξόδου να φαίνεται τελειωμένο ενώ δεν είναι.
Γράψτε πρώτα τις ροές και μετά αποφασίστε ποιος μηχανισμός μπορεί πραγματικά να επιβάλει καθεμία. Αυτή η λίστα ροών είναι το μόνο τεχνούργημα που επιβιώνει από την επόμενη αλλαγή κανόνων.
Η κατηγορία επιλέγει κανόνες, όχι διαδρομές
Όταν τα Windows χαρακτηρίζουν ένα δίκτυο ως δημόσιο ή ιδιωτικό, το τείχος προστασίας εφαρμόζει το σύνολο κανόνων που έχει ρυθμιστεί για αυτό το προφίλ. Ο χαρακτηρισμός ακολουθεί το δίκτυο στο οποίο συνδέθηκε ο προσαρμογέας, και το σύνολο κανόνων αποφασίζει τι επιτρέπεται σε αυτό. Κανένα από αυτά τα γεγονότα δεν εξαρτάται από το αν η κίνηση μιας εφαρμογής χρησιμοποίησε τη σήραγγα. Αυτή ακριβώς η ανεξαρτησία είναι όλη η δυσκολία.
Την επιλογή διαδρομής την κάνει η δρομολόγηση, μέσω της μετρικής της διεπαφής και του προθέματος που εγκαθιστά η σήραγγα. Ένα προφίλ μπορεί επομένως να χαρακτηρίζεται δημόσιο ενώ η σύνδεση μιας εφαρμογής ακολουθεί τη φυσική διαδρομή, και το τείχος προστασίας θα αναφέρει ακόμη ότι εφαρμόστηκε το δημόσιο σύνολο κανόνων.
Γι αυτό ένας κανόνας περιορισμένος στο προφίλ δεν μπορεί να σημαίνει μόνο σήραγγα. Οι δύο ιδιότητες αποφασίζονται από διαφορετικά στοιχεία και το ένα δεν μπορεί να αντικαταστήσει το άλλο.
| Flow | What decides it | What a rule can enforce |
|---|---|---|
| VPN client to its endpoint | Routing plus the outer transport | Allow the client process before the tunnel exists |
| Application to an internet host | Interface metric and prefix length | Block the process unless the tunnel interface is up |
| Application to a LAN host | Local subnet route | Allow one destination, not the whole category |
Μια ρητή απαγόρευση υπερισχύει μιας στενότερης άδειας
Οι οδηγίες της Microsoft για κανόνες τείχους προστασίας διακρίνουν μια άδεια ως εξαίρεση σε προεπιλεγμένη ενέργεια αποκλεισμού από μια ρητή απαγόρευση που συγκρούεται με άδεια. Οι ρητές απαγορεύσεις κερδίζουν αυτή τη σύγκρουση, και οι κανόνες εξερχόμενης κίνησης υπακούουν στην ίδια προτεραιότητα.
Άρα η δημοφιλής συνταγή να προσθέσεις έναν κανόνα που αποκλείει τα πάντα και να βασιστείς σε μια στενότερη άδεια τοποθετημένη πάνω του δεν κάνει αυτό που περιμένει ο συγγραφέας της. Το Τείχος προστασίας των Windows δεν λύνει τη σύγκρουση με τη σειρά κανόνων που ορίζει ο διαχειριστής. Ο αποκλεισμός απλώς εφαρμόζεται, και η εφαρμογή που συνδέεται αναφέρει λήξη χρόνου. Ο κανόνας που έμοιαζε με την εξαίρεση δεν ήταν ποτέ στο παιχνίδι.
Η υποστηριζόμενη μορφή είναι μια πολιτική προεπιλεγμένης άρνησης με εγκεκριμένους κανόνες άδειας, όπου κάθε άδεια ονομάζει ένα πρόγραμμα, μια υπηρεσία ή έναν προορισμό αρκετά ακριβώς ώστε να μπορεί να ελεγχθεί. Αυτό το σχέδιο αντέχει σε έλεγχο, γιατί κάθε εξαίρεση είναι ορατή και καμία δεν εξαρτάται από τη σειρά δημιουργίας της.
Δύο κανόνες που αντιφάσκουν μεταξύ τους είναι χειρότεροι από έναν κανόνα, γιατί η συμπεριφορά που προκύπτει είναι ταυτόχρονα σωστή και ανεξήγητη.
Δώστε στην εξερχόμενη πολιτική έναν μόνο ιδιοκτήτη
Ένας υποστηριζόμενος πελάτης VPN διατηρεί ήδη τη δική του συμπεριφορά αποκλεισμού και τις δικές του εξαιρέσεις τελικών σημείων. Η προσθήκη ασυντόνιστων χειροκίνητων κανόνων μπορεί να αφήσει αυτόν τον πελάτη έξω από τη σήραγγα που χρειάζεται για τη ρύθμιση, ή να αφήσει ανοιχτή μια δεύτερη διαδρομή που κανείς δεν πρόσεξε.
Αποφασίστε ποιος κατέχει την εξερχόμενη πολιτική πριν γράψετε κανόνες: η ίδια η διαμόρφωση του πελάτη, μια διαχειριζόμενη πολιτική τείχους προστασίας ή μια τεκμηριωμένη τοπική λίστα εξαιρέσεων με ιδιοκτήτη. Έπειτα εναρμονίστε τα επίπεδα αντί να στοιβάζετε πειράματα μέχρι να συνδεθεί κάτι. Ο ονομαστικός ιδιοκτήτης είναι και αυτός στον οποίο απευθύνεστε όταν δύο επίπεδα διαφωνούν.
Διατηρήστε ένα κανάλι ανάκτησης πριν αλλάξετε οτιδήποτε. Ένα απομακρυσμένο μηχάνημα κλειδωμένο έξω από τη δική του διαδρομή διαχείρισης είναι χειρότερο αποτέλεσμα από το κενό πολιτικής που κλείνατε. Ο κανόνας ανάκτησης δικαιολογείται ευκολότερα όταν είναι γραμμένος εκ των προτέρων, και βρίσκεται ευκολότερα όταν μια αλλαγή πάει στραβά σε ώρα που κανείς δεν απολαμβάνει.
Δοκιμάστε τέσσερα αποτελέσματα αντί να διαβάσετε την ετικέτα
Μια πολιτική είναι τόσο καλή όσο οι περιπτώσεις που διακρίνει, οπότε αντιμετωπίστε την ετικέτα του προφίλ ως αφετηρία και όχι ως αποτέλεσμα. Τέσσερα αποτελέσματα σας λένε αν λειτουργεί: το προβλεπόμενο αίτημα LAN πετυχαίνει, ένα καλυμμένο αίτημα στο διαδίκτυο πετυχαίνει, ένα απαγορευμένο άμεσο αίτημα αποτυγχάνει, και η περίπτωση αποτυχίας της σήραγγας συμπεριφέρεται όπως σχεδιάστηκε αντί να υποχωρεί σιωπηλά. Γράψτε τα τέσσερα αποτελέσματα δίπλα στην αλλαγή κανόνων. Ένα σχέδιο δοκιμών με τέσσερις ονομασμένες περιπτώσεις είναι αρκετά σύντομο για να εκτελείται κάθε φορά και αρκετά συγκεκριμένο για να αποτυγχάνει ηχηρά.
Get-NetConnectionProfile | Select-Object Name,NetworkCategory,InterfaceAlias Get-NetFirewallProfile | Select-Object Name,DefaultOutboundAction Get-NetFirewallRule -Direction Outbound -Enabled True | Where-Object Action -eq Block | Select-Object DisplayName,Profile
Η πρώτη εντολή δείχνει πώς χαρακτηρίζεται κάθε συνδεδεμένο δίκτυο, που συχνά δεν είναι αυτό που υπέθεσε το άτομο που έγραψε τον κανόνα. Η δεύτερη δείχνει την προεπιλεγμένη ενέργεια ανά προφίλ, και η τρίτη απαριθμεί ενεργοποιημένους εξερχόμενους αποκλεισμούς, περιλαμβανομένων όσων θα ακυρώσουν σιωπηλά μια στενότερη άδεια.
Εκτελέστε ξανά τις τέσσερις περιπτώσεις μετά από αλλαγή δικτύου, γιατί ένα προφίλ μπορεί να επαναχαρακτηριστεί όταν το μηχάνημα συνδεθεί σε διαφορετικό δίκτυο. Μια ετικέτα προφίλ που ταιριάζει δεν είναι απόδειξη ότι η διαδρομή ήταν αυτή που σκοπεύατε.