Μόνο το τείχος προστασίας των Windows ως διακόπτης VPN: αντέχει;
Οι κανόνες τύπου διασύνδεσης μπορούν να μπλοκάρουν τους φυσικούς προσαρμογείς, αλλά η σήραγγα τρίτου μέρους συχνά φαίνεται ενσύρματη. Ελέγξτε την ταξινόμηση, τη διαδρομή προς το τελικό σημείο και μετά το DNS.
Ρωτήστε αν το τείχος προστασίας των Windows μπορεί από μόνο του να λειτουργήσει ως διακόπτης ασφαλείας και θα πάρετε δύο σίγουρες και ασύμβατες απαντήσεις. Η μία λέει ότι ο κανόνας τύπου διασύνδεσης κάνει όλη τη δουλειά· η άλλη ότι δεν δουλεύει χωρίς σενάρια. Και οι δύο περιγράφουν το μισό του ίδιου μηχανισμού. Το τείχος μπορεί να εκφράσει τον αποκλεισμό, και αν το αποτέλεσμα όντως αποτυγχάνει κλειστά εξαρτάται από τρία πράγματα: πώς τα Windows ταξινομούν τον προσαρμογέα σήραγγας, αν επιβιώνει η εξαίρεση του τελικού σημείου και αν καλύπτονται η επίλυση ονομάτων και το IPv6. Κάντε λάθος σε ένα από αυτά και το μηχάνημα είτε διαρρέει είτε χάνει κάθε συνδεσιμότητα.
Τρεις προϋποθέσεις, με αυτή τη σειρά
Η πρώτη προϋπόθεση είναι η ταξινόμηση και αποφασίζει αν ο κανόνας που θέλετε είναι καν εκφράσιμος. Οι κανόνες του τείχους προστασίας των Windows μπορούν να περιοριστούν κατά τύπο διασύνδεσης: ενσύρματη, ασύρματη ή απομακρυσμένη πρόσβαση. Μια πολιτική που μπλοκάρει την εξερχόμενη κίνηση στους φυσικούς τύπους και επιτρέπει τη σήραγγα λειτουργεί μόνο αν τα Windows αναγνωρίζουν τη σήραγγα ως απομακρυσμένη πρόσβαση.
Η δεύτερη προϋπόθεση είναι η εξαίρεση του τελικού σημείου. Πριν υπάρξει οποιαδήποτε σήραγγα, ο πελάτης πρέπει να φτάσει στον διακομιστή VPN μέσω του φυσικού προσαρμογέα, άρα ένας γενικός αποκλεισμός σε αυτόν τον προσαρμογέα εμποδίζει ακριβώς τη σύνδεση που θα έκανε τον αποκλεισμό περιττό. Η εξαίρεση πρέπει να ονομάζει τον διακομιστή και τη θύρα του, και το πακέτο πρέπει να δρομολογείται έξω από τη φυσική πύλη και όχι μέσα σε σήραγγα που δεν έχει ακόμη σηκωθεί.
Η τρίτη είναι η κάλυψη. Ένα σύνολο κανόνων που μπλοκάρει το IPv4 και ξεχνά το IPv6, ή που επιτρέπει στον τοπικό επιλυτή την αναζήτηση του τελικού σημείου και άρα επιτρέπει κάθε άλλη αναζήτηση, αποτυγχάνει ανοιχτά ακριβώς στο παράθυρο που υπάρχει για να καλύψει ο διακόπτης. Αυτό είναι κενό σχεδίασης και όχι σφάλμα του τείχους. Είναι επίσης το κενό που επιβιώνει από κάθε δοκιμή σε γραφείο.
Η ταξινόμηση είναι η πρώτη πύλη
Δείτε τι πιστεύουν τα Windows για τους προσαρμογείς πριν γράψετε έστω έναν κανόνα. Μια εγγενής σύνδεση VPN των Windows εμφανίζεται συνήθως ως απομακρυσμένη πρόσβαση. Ένας πελάτης τρίτου μέρους που δημιουργεί τον δικό του εικονικό προσαρμογέα εμφανίζεται συχνά ως ενσύρματος, που σημαίνει ότι ένας αποκλεισμός περιορισμένος σε ενσύρματους προσαρμογείς μπλοκάρει και τη σήραγγα.
Get-NetConnectionProfile | Select-Object Name,InterfaceAlias,NetworkCategory
Get-NetAdapter | Select-Object Name,InterfaceDescription,Status,ifIndex
Get-NetFirewallProfile | Select-Object Name,Enabled,DefaultOutboundAction
Η τρίτη εντολή σας λέει αν ισχύει ήδη ένας προεπιλεγμένος αποκλεισμός εξερχόμενης κίνησης, κάτι που αλλάζει όλο το σχήμα της σχεδίασης. Αν η προεπιλογή είναι ήδη αποκλεισμός, γράφετε κανόνες επιτρεπτικούς και όχι εξαιρέσεις σε μια ανεκτική βάση, και αυτή είναι μια πολύ ευκολότερη στάση για συλλογισμό.
Αν ο προσαρμογέας σήραγγας αναφέρεται ως ενσύρματος, το μόνο τείχος δεν είναι το σωστό εργαλείο για σχεδίαση κλειστής αποτυχίας, και καμία ρύθμιση κανόνων δεν το αλλάζει. Αυτή είναι η περίπτωση όπου η δεύτερη γνώμη σε κάθε νήμα φόρουμ είναι σωστή.
Η εξαίρεση του τελικού σημείου χρειάζεται διαδρομή εκτός από κανόνα
Ας υποθέσουμε ότι η ταξινόμηση δουλεύει. Η εξαίρεση είναι δύο κομμάτια και ζουν σε διαφορετικά υποσυστήματα. Ο κανόνας του τείχους επιτρέπει την κίνηση· η διαδρομή του κεντρικού υπολογιστή την κάνει να βγει από τη σωστή διασύνδεση όσο η σήραγγα είναι κάτω.
New-NetFirewallRule -DisplayName "VPN endpoint allow" -Direction Outbound -Action Allow \
-Protocol TCP -RemoteAddress 203.0.113.9 -RemotePort 443 -InterfaceType Wired,Wireless
New-NetRoute -DestinationPrefix 203.0.113.9/32 -InterfaceIndex 12 -NextHop 192.168.1.1
Get-NetRoute -DestinationPrefix 203.0.113.9/32
Χωρίς τη διαδρομή, η εξαίρεση βοηθά μόνο όσο μια προεπιλεγμένη διαδρομή δείχνει ακόμη στη φυσική πύλη. Μόλις ο πελάτης εγκαταστήσει τη δική του προεπιλεγμένη διαδρομή και μετά πεθάνει, τα επιτρεπόμενα πακέτα δεν έχουν πού λογικά να πάνε και η σύνδεση δεν μπορεί να αποκατασταθεί. Αυτή η αποτυχία μοιάζει με χαλασμένο πελάτη και στην πραγματικότητα είναι μια διαδρομή που λείπει.
Κρατήστε την εξαίρεση τόσο στενή όσο επιτρέπει ο πελάτης. Μία διεύθυνση και μία θύρα ελέγχονται· ένα εύρος που καλύπτει όλο το δίκτυο του παρόχου όχι. Ο ευρύτερος κανόνας επιτρέπει και οτιδήποτε άλλο φιλοξενείται στον ίδιο πάροχο, που συνήθως είναι περισσότερο από ό,τι σκοπεύατε.
Το DNS και το IPv6 είναι εκεί όπου αποτυγχάνει ανοιχτά
Η επίλυση ονομάτων είναι η κλασική διαρροή. Αν το τελικό σημείο είναι όνομα κεντρικού υπολογιστή, ο πελάτης πρέπει να το επιλύσει πριν υπάρξει η σήραγγα, που σημαίνει ότι στον φυσικό προσαρμογέα πρέπει να επιτραπεί να φτάσει σε επιλυτή. Η ίδια άδεια αφήνει έξω κάθε άλλη αναζήτηση όσο η σήραγγα είναι κάτω, και μία αναζήτηση αρκεί για να αποκαλύψει τι επρόκειτο να επισκεφθείτε.
Το IPv6 είναι το δεύτερο. Κανόνες γραμμένοι για IPv4 δεν καλύπτουν την άλλη οικογένεια, και πολλοί πελάτες εγκαθιστούν μόνο διαδρομές IPv4. Έτσι ένα μηχάνημα με εγγενή συνδεσιμότητα IPv6 μπορεί να συνεχίσει να μιλά στο διαδίκτυο όσο η πλευρά IPv4 είναι σταθερά μπλοκαρισμένη, και ο διακόπτης αναφέρει επιτυχία σε όλη τη διάρκεια.
| Gap | What leaks | Control |
|---|---|---|
| Resolver permitted for endpoint lookup | Every name queried while down | Pin the endpoint as an address, or block non-tunnel DNS |
| Rules only for IPv4 | Full IPv6 connectivity | Add the same rules for the other family |
| Application bound to physical interface | Its own traffic | Firewall cannot fix this; change the binding |
Η τρίτη σειρά αξίζει κατανόηση αντί παράκαμψη. Ένα τείχος αποφασίζει για πακέτα, όχι για το ποια διασύνδεση ζήτησε να χρησιμοποιήσει μια εφαρμογή, και ένα πρόγραμμα που δεσμεύεται ρητά μπορεί να είναι δύσκολο να περιοριστεί. Αυτό είναι επιχείρημα υπέρ ενός διακόπτη από την πλευρά του πελάτη που λειτουργεί κάτω από την εφαρμογή, όχι υπέρ περισσότερων κανόνων.
Δοκιμάστε σταματώντας τον πελάτη, όχι τραβώντας το καλώδιο
Η μόνη ουσιαστική δοκιμή είναι αυτή που μιμείται την αποτυχία από την οποία προστατεύεστε. Σταματήστε την υπηρεσία, σκοτώστε τη διεργασία ή απενεργοποιήστε τον προσαρμογέα που δημιούργησε ο πελάτης και μετά προσπαθήστε να φτάσετε το διαδίκτυο και ένα όνομα:
Stop-Service -Name "YourVpnService" -Force
Test-NetConnection -ComputerName 1.1.1.1 -Port 443
Resolve-DnsName example.com
Test-NetConnection -ComputerName 2606:4700:4700::1111 -Port 443
Και τα τρία πρέπει να αποτύχουν. Αν το πρώτο πετύχει, ο αποκλεισμός δεν ισχύει· αν το δεύτερο πετύχει εκεί που απέτυχε το πρώτο, έχετε διαρροή DNS· αν πετύχει το τρίτο, το IPv6 δεν καλύπτεται. Κάθε αποτέλεσμα δείχνει ακριβώς ένα από τα κενά παραπάνω.
Επαναλάβετε τη δοκιμή μετά από αναστολή και επαναφορά, γιατί το προφίλ του τείχους μπορεί να αλλάξει όταν τα Windows κρίνουν ένα δίκτυο δημόσιο ή ιδιωτικό, και οι κανόνες που περιορίζονται σε προφίλ το ακολουθούν. Μια σχεδίαση που αντέχει σε γραφείο και αποτυγχάνει σε τρένο είναι σχεδίαση που δοκιμάστηκε μία φορά.
Αν η πύλη ταξινόμησης ή η απαίτηση DNS καθιστούν ανέφικτη την προσέγγιση μόνο με τείχος, ένας διακόπτης από την πλευρά του πελάτη είναι η έντιμη απάντηση. Αν η σήραγγα τερματίζει σε δρομολογητή, την πολιτική πρέπει να την έχει ο δρομολογητής, γιατί ένας κανόνας εκεί καλύπτει κάθε συσκευή πίσω του και δεν εξαρτάται από το πώς τα Windows ονομάζουν έναν προσαρμογέα.