Μπορεί μία υπηρεσία VPN να καλύψει επιτραπέζιους Windows, Mac και Linux;
Ένα σχέδιο πρόσβασης μπορεί να εξυπηρετήσει επιτραπέζιους Windows, Mac και Linux, αλλά μόνο αφού καθοριστούν η ταυτότητα της πύλης, το διαπιστευτήριο, οι διαδρομές και η πολιτική του resolver.
Τρία φορητά σε μία ομάδα, τρία διαφορετικά μενού VPN και ένα δελτίο που λέει ότι η σύνδεση λειτουργεί παντού εκτός από το Mac. Το σχέδιο πίσω από αυτούς τους πελάτες μπορεί να είναι ίδιο ακόμη και όταν τα μενού δεν είναι. Αυτό που πρέπει να ταιριάξει είναι στενότερο από ό,τι υποθέτουν οι περισσότερες αναπτύξεις: μία ταυτότητα πύλης, ένας τύπος διαπιστευτηρίου, ένα σύνολο διαδρομών και μία πολιτική resolver. Γράψτε αυτά τα τέσσερα πριν εξαγάγει κάποιος προφίλ, και η δουλειά της πλατφόρμας γίνεται λίστα ελέγχου αντί για έρευνα.
Ξεκινήστε από το συμβόλαιο πρόσβασης, όχι από το αρχείο του πελάτη
Το συμβόλαιο πρόσβασης είναι πέντε γραμμές που μπορεί να ελέγξει ένας κριτικός χωρίς να ανοίξει κονσόλα προμηθευτή. Ονομάζει τα ιδιωτικά προθέματα που πρέπει να είναι προσβάσιμα, τα εσωτερικά ονόματα που πρέπει να επιλύονται, τον resolver που απαντά σε αυτά, την κίνηση που επιτρέπεται να μείνει στην τοπική διαδρομή και το πιστοποιητικό της πύλης που πρέπει να περιμένει ο πελάτης. Όλα τα άλλα στην ανάπτυξη είναι μετάφραση αυτών των γραμμών σε μορφή αρχείου.
Ένα παράδειγμα γραφείου κάνει το σχήμα συγκεκριμένο: διακομιστές εφαρμογών στο 10.60.0.0/16, ιδιωτικά ονόματα κάτω από το corp.example, έναν εσωτερικό resolver στο 10.61.0.53 και τη συνηθισμένη περιήγηση στη διαδρομή που χρησιμοποιεί ήδη η συσκευή. Το τελευταίο στοιχείο είναι απόφαση πολιτικής και όχι προεπιλογή του πελάτη, και αρκετοί πελάτες θα στείλουν τα πάντα μέσα από τη σήραγγα αν δεν πει κανείς το αντίθετο. Καταγράψτε το συμβόλαιο με ημερομηνία και υπεύθυνο, γιατί αυτή η καταγραφή σας λέει αργότερα αν άλλαξε η σήραγγα ή η πολιτική.
Διαλέξτε ένα πρωτόκολλο και ένα ζεύγος ελέγχου ταυτότητας που μπορείτε να υπερασπιστείτε
Το IKEv2 με έλεγχο ταυτότητας πύλης βάσει πιστοποιητικού και EAP για τον χρήστη είναι η συνήθης επιλογή όταν και οι τρεις πλατφόρμες πρέπει να λειτουργούν χωρίς πρόσθετο λογισμικό, αφού τα Windows, το macOS και το NetworkManager παρέχουν το καθένα πελάτη IKEv2. Το πρόβλημα είναι ότι η υποστήριξη IKEv2 περιγράφει μια ετικέτα, όχι ένα σύνολο λειτουργιών. Οι μέθοδοι EAP, τα κλειδιά με υποστήριξη υλικού, η αντιστοίχιση πιστοποιητικού σε λογαριασμό και η αυτόματη επανασύνδεση υλοποιούνται ανά πλατφόρμα. Ένας συνδυασμός που λειτουργεί στα δύο από τα τρία είναι αρκετά συνηθισμένος ώστε να τον υποθέσετε μέχρι να δοκιμαστεί.
Δοκιμάστε το ζεύγος σε κάθε πλατφόρμα-στόχο πριν γραφτεί ο οδηγός ανάπτυξης, όχι μετά. Μια πύλη που προσφέρει και EAP-MSCHAPv2 και EAP-TLS σας δίνει χώρο για υποχώρηση, με την προϋπόθεση ότι η υποχώρηση είναι τεκμηριωμένη ως υποστηριζόμενη και όχι ανακαλυμμένη κατά τη διάρκεια περιστατικού. Δύο υποστηριζόμενες διαδρομές είναι φθηνή ασφάλιση· μια ατεκμηρίωτη τρίτη διαδρομή είναι μελλοντικό δελτίο.
Όταν κανένα ζεύγος δεν καλύπτει και τους τρεις πελάτες, οι έντιμες επιλογές είναι να προσθέσετε πελάτη, να προσθέσετε προφίλ πύλης ή να περιορίσετε τη λίστα υποστηριζόμενων πλατφορμών. Η απενεργοποίηση της επικύρωσης πιστοποιητικών στην πλατφόρμα που διαμαρτύρεται πιο δυνατά δεν είναι μία από αυτές. Αυτή η αλλαγή μετατρέπει ένα κενό συμβατότητας σε κίνδυνο υποκλοπής και κανένα επόμενο βήμα της ανάπτυξης δεν το διορθώνει.
Κατασκευάστε ένα τεχνούργημα ανά πλατφόρμα από το συμβόλαιο
Τα Windows παίρνουν προφίλ VPNv2, που παραδίδεται μέσω MDM ή δημιουργείται τοπικά με το Add-VpnConnection και το φορτίο XML του. Τα σημεία που πονάνε είναι το εύρος και η εμπιστοσύνη. Ένα προφίλ εύρους συσκευής και ένα προφίλ εύρους χρήστη εγκαθίστανται σε διαφορετικούς χώρους, οπότε το πιστοποιητικό που χρειάζεται ο πελάτης πρέπει να βρίσκεται στον χώρο που ταιριάζει με το εύρος που επιλέξατε. Λάθος ζεύγος δίνει προφίλ που εισάγεται καθαρά και μετά αποτυγχάνει στην πρώτη σύνδεση.
Το macOS παίρνει προφίλ διαμόρφωσης με το διαχειριζόμενο φορτίο VPN, υπογεγραμμένο και σταλμένο μέσω MDM ή εγκατεστημένο με το χέρι για πιλότο. Η ταυτότητα και η αλυσίδα CA ταξιδεύουν ως ξεχωριστά φορτία, γι' αυτό ένα προφίλ μπορεί να εγκατασταθεί χωρίς παράπονο και να αποτύχει κατά τη σύνδεση. Ελέγξτε τη λίστα φορτίων, όχι μόνο το αποτέλεσμα της εγκατάστασης.
Το Linux εξαρτάται από το backend πίσω από το NetworkManager, και το strongSwan μαζί με το πρόσθετο του NetworkManager είναι ξεχωριστά πακέτα. Οι ιδιότητες σύνδεσης είναι ειδικές για το πρόσθετο και όχι γενικά κλειδιά VPN, οπότε ένα κλειδί αντιγραμμένο από άλλο πρόσθετο συχνά αποθηκεύεται χωρίς σφάλμα και μετά αποτυγχάνει στην ενεργοποίηση. Κατασκευάστε τη σύνδεση σε καθαρή εικόνα για να επιβεβαιώσετε ότι το πρόσθετο υπάρχει εκεί όπου θα τρέξει πραγματικά.
Τα τρία τεχνήματα διαφέρουν σε μορφή, αλλά το καθένα κωδικοποιεί τις ίδιες πέντε γραμμές του συμβολαίου. Αυτό είναι το τεστ για το αν ένα τεχνούργημα είναι έτοιμο: κάθε γραμμή εκπροσωπείται κάπου και τίποτα επιπλέον δεν επινοήθηκε στην πορεία.
| Platform | Artifact | Check before handoff |
|---|---|---|
| Windows | VPNv2 profile or Add-VpnConnection | Scope matches certificate store |
| macOS | Managed VPN payload plus certificate payload | Both payloads present in one profile |
| Linux | NetworkManager connection with strongSwan backend | Plugin package installed on the image |
Επαληθεύστε διαδρομές, resolver και επανασύνδεση σε καθαρό λογαριασμό
Το συνδεδεμένο δεν είναι το τεστ αποδοχής. Στα Windows το Get-VpnConnection δείχνει το προφίλ και το route print δείχνει αν το ιδιωτικό πρόθεμα προσγειώθηκε στη διεπαφή της σήραγγας. Στο macOS το scutil --nc list επιβεβαιώνει την ενεργή υπηρεσία, ενώ το scutil --dns δείχνει τη σειρά resolver που θα χρησιμοποιήσει πραγματικά το σύστημα.
Στο Linux το nmcli connection show --active αποδεικνύει ότι η σύνδεση είναι ενεργή και το resolvectl status δείχνει DNS ανά ζεύξη. Ένας resolver που υπάρχει στο αρχείο σύνδεσης αλλά λείπει από την έξοδο ανά ζεύξη σημαίνει ότι το split DNS δεν εφαρμόζεται. Αυτή είναι η διαφορά ανάμεσα σε ονόματα που επιλύονται και σε ονόματα που επιλύονται μέσω της σήραγγας, και αλλάζει ποια ομάδα υποστήριξης έχει το επόμενο βήμα. Συγκρίνετε την έξοδο ανά ζεύξη πριν και αφού ανέβει η σύνδεση, όχι μόνο μετά.
Τρέξτε όλο τον έλεγχο ως νέος λογαριασμός χωρίς κρυμμένα διαπιστευτήρια και χωρίς πιστοποιητικό εγκατεστημένο από διαχειριστή. Στη συνέχεια επαναλάβετε τον μετά από αναστολή και επαναφορά, και άλλη μία φορά αφού εξαναγκάσετε νέα εισαγωγή διαπιστευτηρίων. Αυτές οι δύο μεταβάσεις φέρνουν στην επιφάνεια τις περισσότερες αποτυχίες επανασύνδεσης που μια πρώτη σύνδεση δεν δείχνει ποτέ.
Κάντε έκδοση του πακέτου και κρατήστε διαδρομή επιστροφής
Σημάνετε κάθε πακέτο πλατφόρμας με την αναθεώρηση του συμβολαίου που υλοποιεί, και σημειώστε τις εκδόσεις πελάτη και πύλης με τις οποίες το αποδεχτήκατε. Όταν η συμπεριφορά αλλάξει μετά από ενημέρωση πελάτη, η σήμανση δείχνει σε συμβόλαιο για επανέλεγχο και όχι σε αρχείο για εικασίες.
Κρατήστε το προηγούμενο πακέτο για κάθε πλατφόρμα ανακτήσιμο και γράψτε δίπλα του την εντολή αφαίρεσης. Η απεγκατάσταση προφίλ VPN δεν είναι το κατοπτρικό είδωλο της εγκατάστασης σε Windows, macOS ή Linux, και οι διαφορές εμφανίζονται στην χειρότερη στιγμή. Εξασκηθείτε στην αφαίρεση μία φορά σε εφεδρική συσκευή ώστε το αρχείο να γίνει σχέδιο και όχι ελπίδα.