Mac VPN client: Network Extension ή System Extension
Το Network Extension είναι δυνατότητα και το System Extensions μηχανισμός παράδοσης: διαχωρίστε τα για να επιλέξετε το βήμα έγκρισης στο macOS και το αρχείο καταγραφής που θα διαβάσετε.
Δύο όροι της Apple χρησιμοποιούνται σαν να ονομάζουν το ίδιο πράγμα, και αυτή η σύγχυση στέλνει τους ανθρώπους σε λάθος πίνακα ρυθμίσεων. Το Network Extension περιγράφει μια δυνατότητα: έναν υποστηριζόμενο τρόπο υλοποίησης σηράγγων VPN, διαμεσολαβητών και φίλτρων. Το System Extensions περιγράφει έναν μηχανισμό παράδοσης και έγκρισης για επεκτάσεις στον χώρο χρήστη. Ένας σύγχρονος πελάτης VPN για Mac χρειάζεται συνήθως και τα δύο, και γι' αυτό καμία από τις δύο ετικέτες δεν εξηγεί από μόνη της ένα σύμπτωμα. Ο διαχωρισμός των δύο απαντά ποιο στοιχείο να ελέγξετε και ποιο βήμα έγκρισης να περιμένετε.
Δύο ερωτήματα, όχι μία ετικέτα
Ρωτήστε τι κάνει το στοιχείο πριν ρωτήσετε πώς εγκαθίσταται. Η δυνατότητα καθορίζει ποια κλάση παρόχου υπάρχει και επομένως ποιος κώδικας χειρίζεται τα πακέτα σας. Ο μηχανισμός παράδοσης καθορίζει πώς φτάνει το δυαδικό αρχείο, πώς εγκρίνεται και πού καταγράφεται η κατάστασή του. Ένα προϊόν μπορεί να υλοποιεί σήραγγα πακέτων χωρίς να παραδίδει επέκταση συστήματος σε παλαιότερες εκδόσεις, και μπορεί να παραδίδει επέκταση συστήματος που υλοποιεί κάτι άλλο από σήραγγα.
Οι επεκτάσεις πυρήνα είναι ο τρίτος όρος που μπερδεύουν οι άνθρωποι. Ήταν ο παλαιότερος τρόπος εκτέλεσης προνομιακού κώδικα δικτύου, απαιτούσαν διαφορετικές εγκρίσεις, και η Apple απομακρύνει τους προγραμματιστές από αυτές εδώ και χρόνια. Η εφαρμογή μιας συνταγής έγκρισης επέκτασης πυρήνα σε έναν σύγχρονο πελάτη χάνει χρόνο σε ένα παράθυρο διαλόγου που δεν θα εμφανιστεί ποτέ.
Διαβάστε τις σημειώσεις ανάπτυξης του προμηθευτή για την έκδοση macOS που χρησιμοποιείτε αντί για μια δημοσίευση φόρουμ από παλαιότερη έκδοση. Η αρχιτεκτονική άλλαξε περισσότερες από μία φορές, και οι οδηγίες γερνούν άσχημα. Μια σημείωση που αναφέρει έγκριση επέκτασης πυρήνα περιγράφει μια άλλη εποχή του προϊόντος.
Τι παρέχει το Network Extension
Το πλαίσιο παρέχει τύπους παρόχου για τις συνήθεις εργασίες δικτύου: σήραγγα πακέτων για κίνηση VPN, διαμεσολαβητή εφαρμογών για ροές ανά εφαρμογή, φίλτρο περιεχομένου για επιθεώρηση κίνησης και διαχείριση διαμεσολαβητή DNS για τη συμπεριφορά του επιλυτή. Ο τύπος παρόχου καθορίζει τι μπορεί να κάνει η επέκταση, και ένας πελάτης που παραδίδει δύο παρόχους μπορεί να εκτελεί δύο διαφορετικές εργασίες.
Αυτό έχει σημασία κατά τη διάγνωση, γιατί το ίδιο σύμπτωμα συνδεσιμότητας μπορεί να προέρχεται από σήραγγα, φίλτρο ή διαμεσολαβητή DNS. Ο αποκλεισμός ιστοτόπου είναι απόφαση φίλτρου, η αποτυχία πρόσβασης σε ιδιωτικό υποδίκτυο είναι συνήθως απόφαση σήραγγας, και η επίλυση λάθος διεύθυνσης είναι συνήθως απόφαση επιλυτή. Η ονομασία του τύπου παρόχου στενεύει την αναζήτηση πριν διαβαστεί οποιοδήποτε αρχείο καταγραφής.
Τίποτα στο πλαίσιο δεν υποδηλώνει στάση απορρήτου. Μια επέκταση στον χώρο χρήστη έχει ακόμη άδειες, διαμόρφωση και έναν χειριστή πίσω της, οπότε αντιμετωπίστε την αρχιτεκτονική ως λεπτομέρεια υλοποίησης και όχι ως σήμα εμπιστοσύνης. Ρωτήστε ποιος διαχειρίζεται το τελικό σημείο και τι είναι διαμορφωμένο να συλλέγει.
Τι αλλάζει το System Extensions
Ο μηχανισμός μετακινεί προνομιακό κώδικα έξω από τον πυρήνα και στον χώρο χρήστη, και αλλάζει τον τρόπο με τον οποίο το λειτουργικό σύστημα ζητά συγκατάθεση. Η ενεργοποίηση είναι ξεχωριστό βήμα από την εγκατάσταση, και ο χρήστης ή ένα προφίλ MDM πρέπει να το επιτρέψει. Πελάτης που εγκαθίσταται αλλά δεν ενεργοποιείται ποτέ φαίνεται παρών στον φάκελο Applications και δεν κάνει τίποτα για τη συνδεσιμότητα.
Η κατάσταση καταγράφεται από το σύστημα και όχι από την εφαρμογή, κάτι χρήσιμο γιατί μπορεί να ερωτηθεί. Η εντολή παρακάτω απαριθμεί τις επεκτάσεις που γνωρίζει το σύστημα και την κατάσταση ενεργοποίησής τους.
systemextensionsctl list
scutil --nc list
Η πρώτη εντολή απαντά αν το στοιχείο είναι εγκατεστημένο και ενεργοποιημένο. Η δεύτερη απαριθμεί τις διαμορφώσεις VPN που κρατά το σύστημα, που είναι διαφορετικό ερώτημα και συχνά αυτό που μετρά όταν λείπει ένα προφίλ σύνδεσης αντί να είναι χαλασμένο.
Ποιο να ελέγξετε για ένα δεδομένο σύμπτωμα
Ταιριάξτε το σύμπτωμα με το επίπεδο πριν ανοίξετε έναν πίνακα ρυθμίσεων. Η απούσα διαμόρφωση είναι θέμα προφίλ, ένα εγκατεστημένο αλλά ανενεργό στοιχείο είναι θέμα παράδοσης, και ένα ενεργό στοιχείο που δεν περνά κίνηση είναι θέμα δυνατότητας.
| Symptom | First place to look |
|---|---|
| No VPN entry at all | Configuration profile or scutil list |
| Client installed, nothing happens | Extension activation state |
| Tunnel up, private host unreachable | Tunnel provider routes and policy |
| One app blocked, others fine | Filter or app proxy provider |
Η ροή καταγραφής είναι το κοινό αποδεικτικό για τις δύο τελευταίες γραμμές. Η ανάγνωση του υποσυστήματος επέκτασης δικτύου λέει ποιος πάροχος χειρίστηκε τη ροή, και μια απόφαση φίλτρου φαίνεται διαφορετική από μια αποτυχία σήραγγας ακόμη και όταν ο χρήστης περιγράφει και τα δύο ως χαλασμένο VPN.
log show --last 10m --predicate 'process == "nesessionmanager"'
Μην συμπεράνετε ότι μια επέκταση είναι ενεργή επειδή υπάρχει εικονίδιο στη γραμμή μενού. Τα εικονίδια επιβιώνουν αποτυχημένων ενεργοποιήσεων, και ένα παρωχημένο εικονίδιο είναι ένας από τους συνηθέστερους λόγους που μια κλήση υποστήριξης ξεκινά στο λάθος σημείο. Διαβάστε την κατάσταση ενεργοποίησης, γιατί αυτή καταγράφει το σύστημα.
Έγκριση, MDM και ο μύθος της επέκτασης πυρήνα
Σε διαχειριζόμενα Mac το βήμα έγκρισης ανήκει στο προφίλ MDM, και ένας χρήστης που κάνει κλικ στο Allow στις System Settings μπορεί ακόμη να αποκλείεται από μια πολιτική που δεν έχει ενημερωθεί. Ρωτήστε την ομάδα επιφάνειας εργασίας ποιος μηχανισμός εγκρίνει την επέκταση για αυτόν τον στόλο πριν ζητήσετε από τον χρήστη να κάνει κλικ σε οτιδήποτε.
Σε Mac χωρίς διαχείριση, το μήνυμα έγκρισης εμφανίζεται μία φορά και μια απόρριψη μπορεί να είναι μόνιμη μέχρι να επανεγκατασταθεί η επέκταση. Αυτή η συμπεριφορά εξηγεί το μηχάνημα όπου ο πελάτης λειτουργούσε πριν από αναβάθμιση του λειτουργικού και τώρα αναφέρει σύνδεση που δεν εγκαθίσταται ποτέ.
Σημειώστε τον τύπο παρόχου, την κατάσταση ενεργοποίησης και τον μηχανισμό έγκρισης για τον πελάτη που αναπτύσσετε. Αυτά τα τρία γεγονότα απαντούν στις περισσότερες μελλοντικές ερωτήσεις για VPN σε Mac χωρίς να ανοίγουν ξανά τη συζήτηση δυνατότητα εναντίον παράδοσης.