Λειτουργεί στο Mac σας, οπότε μοιάζει με κάτι που μπορείτε να δώσετε στους χρήστες. Αυτή η υπόθεση είναι το πρώτο πράγμα που πρέπει να χάσετε. Το TN3165 της Apple δηλώνει ρητά ότι το Packet Filter δεν είναι υποστηριζόμενο API για γενικά διανεμόμενα προϊόντα, και παρουσιάζει την προνομιακή, ελεγχόμενη διαχείριση ιστότοπου ως την εύλογη περίπτωση. Επομένως, ένα κλείδωμα VPN χτισμένο πάνω στο PF είναι τοπική επιχειρησιακή πολιτική με ιδιοκτήτη, όχι δυνατότητα που μπορείτε να διανείμετε μέσα σε μια εφαρμογή.

Το PF δεν είναι επιφάνεια συσκευασίας

Η διάκριση δεν είναι ακαδημαϊκή. Ένα διανεμόμενο προϊόν που εξαρτάται από το PF κληρονομεί κάθε αλλαγή που κάνει η Apple σε αυτό, κάθε σύγκρουση με άλλο εργαλείο που γράφει επίσης κανόνες, και καμία δέσμευση υποστήριξης ότι η διευθέτηση θα συνεχίσει να λειτουργεί. Ένας ιστότοπος που διαχειρίζεται τα δικά του μηχανήματα έχει διαφορετική σχέση: μπορεί να τεκμηριώσει την εξάρτηση, να τη δοκιμάσει σε κάθε έκδοση λειτουργικού και να αποδεχθεί τη συντήρηση.

Κάποιες συμβουλές εγκατάστασης περνούν μια γραμμή που αξίζει να ονομαστεί. Η αντικατάσταση ολόκληρου του συνόλου κανόνων του συστήματος για να φορτωθεί μία άγκυρα, η επεξεργασία της διαμόρφωσης εκκίνησης του συστήματος της Apple ή η απενεργοποίηση του System Integrity Protection δεν είναι αποδεκτές απαιτήσεις για μια επαναχρησιμοποιήσιμη συνταγή. Αν ένας δημοσιευμένος οδηγός χρειάζεται οποιοδήποτε από αυτά, περιγράφει εργαστήριο, όχι πολιτική προς ανάπτυξη.

Γράψτε την πρόθεση εξόδου πριν από τη σύνταξη

Αποφασίστε τι επιτρέπεται πριν επιλέξετε μία λέξη-κλειδί. Συνήθως πρέπει να υπάρχουν τρεις διαδρομές: η δική του μεταφορά του πελάτη VPN προς τον διακομιστή του, η κίνηση της προστατευμένης εφαρμογής μέσα στη σήραγγα και ό,τι πραγματικά απαιτεί άμεση διαδρομή από τη ρύθμιση ή τις τοπικές υπηρεσίες.

Δώστε σε κάθε προτεινόμενη εξαίρεση έναν προορισμό, μια μεταφορά και έναν ιδιοκτήτη. Το να επιτρέπονται όλες οι θύρες προς ένα τελικό σημείο επιτρέπει πολύ περισσότερα από τη μία μεταφορά που χρησιμοποιεί η σήραγγα, και η επιπλέον έκθεση έρχεται χωρίς κανείς να έχει αποφασίσει ότι πρέπει να υπάρχει. Το να επιτρέπεται ένας δημόσιος resolver είναι η ίδια παγίδα με φιλικότερο ένδυμα: δημιουργεί άμεση διαδρομή DNS ακόμη και όταν η σήραγγα είναι κάτω, οπότε οι αναζητήσεις ονομάτων διαρρέουν ακόμη.

PathDestinationOwner
VPN transportGateway address, one UDP portNetwork team
Tunnel trafficInternal prefixesApplication owner
Resolver exceptionNamed internal resolverSecurity team

Η χρήσιμη δοκιμή για μια εξαίρεση είναι αν μπορείτε να ονομάσετε το πρόσωπο που τη ζήτησε και την αποτυχία που αποτρέπει. Αν δεν υπάρχει καμία από τις δύο απαντήσεις, ο κανόνας είναι πιθανώς παράκαμψη για λανθασμένη διαμόρφωση που αλλιώς θα έμενε αόρατη.

Οι αριθμοί utun δεν είναι ταυτότητα

Το MacOS δημιουργεί διεπαφές σήραγγας ως συσκευές utun, και ο αριθμός που εκχωρείται στο VPN σας δεν είναι σταθερός ανάμεσα σε επανεκκινήσεις, επανασυνδέσεις ή την παρουσία άλλου πελάτη. Ένας κανόνας που απαριθμεί αρκετούς εικαζόμενους αριθμούς δεν είναι πολιτική· είναι στιγμιότυπο ενός απογεύματος.

Αγκυρώστε τον κανόνα σε κάτι που ταυτοποιεί τον επιδιωκόμενο πάροχο: το σχέδιο διευθύνσεων που εκχωρεί η σήραγγα, τη διεργασία που κατέχει τη διεπαφή ή μια διαμόρφωση που συντηρεί ο ίδιος ο πελάτης VPN. Στη συνέχεια καταγράψτε πώς λειτουργεί αυτή η ταυτοποίηση, γιατί όποιος θα εξετάσει τον κανόνα σε ένα χρόνο δεν θα έχει το ιστορικό του shell σας.

Κάντε τη φορτωμένη πολιτική αποδιδόμενη

Ένα όνομα άγκυρας οργανώνει κανόνες· δεν αποδεικνύει ότι η ενεργή πολιτική είναι αυτή που σκοπεύατε. Η προτεραιότητα μεταξύ αγκυρών, οι κανόνες που φόρτωσε άλλο λογισμικό και η υπάρχουσα κατάσταση μπορούν όλα να αλλάξουν το αποτέλεσμα. Εξετάστε το ενεργό σύνολο με όποιον άλλο κατέχει το PF σε εκείνο το μηχάνημα, και τεκμηριώστε την κυριότητα στο ίδιο σημείο με τη διαμόρφωση. Δύο ιδιοκτήτες που επεξεργάζονται διαφορετικές άγκυρες με διαφορετικές υποθέσεις είναι ο συνηθισμένος τρόπος με τον οποίο ένα κλείδωμα αποκτά τρύπα.

Κρατήστε το σύνολο κανόνων στη υποστηριζόμενη διαδρομή διαμόρφωσης του ιστότοπου, εκδώστε το σε εκδόσεις και σημειώστε ποιες εκδόσεις macOS δοκιμάστηκαν. Μια αλλαγή που εφαρμόζεται με το χέρι και τη θυμάται ένα άτομο δεν είναι συντηρούμενη υποδομή, ό,τι κι αν λέει η κεφαλίδα του αρχείου.

Δοκιμάστε τις μεταβάσεις, όχι τη συνδεδεμένη κατάσταση

Ένα στιγμιότυπο οθόνης που λαμβάνεται όσο η σήραγγα είναι ενεργή δεν αποδεικνύει σχεδόν τίποτα. Περπατήστε τις καταστάσεις αντ' αυτού: εκκίνηση πριν από οποιαδήποτε σύνδεση, σήραγγα που λειτουργεί, σήραγγα που πέφτει χωρίς προειδοποίηση, σκόπιμη αποσύνδεση και μετακίνηση από Wi-Fi σε hotspot. Κάθε κατάσταση έχει τη δική της απάντηση, και οι ενδιαφέρουσες είναι οι αποτυχίες παρά η ευτυχισμένη διαδρομή.

Σε κάθε κατάσταση, καταγράψτε τι είναι σκόπιμα προσβάσιμο. Ελέγξτε το IPv4 και το IPv6 ξεχωριστά, δοκιμάστε την επίλυση ονομάτων και συμπεριλάβετε μια ροή που είχε ήδη εδραιωθεί πριν από τη μετάβαση, αφού οι υπάρχουσες συνδέσεις δεν ακολουθούν πάντα τη νέα πολιτική. Ένα πρόγραμμα περιήγησης που αποτυγχάνει όσο η σήραγγα είναι κάτω είναι ένα σημείο δεδομένων, όχι απόδειξη ότι κάθε άλλη διαδρομή είναι αποκλεισμένη.

Τέλος, κρατήστε μια μέθοδο ανάκτησης που δεν εξαρτάται από τη διαδρομή δικτύου που αλλάζετε. Μια γνωστή καλή διαμόρφωση σε τοπικό χώρο αποθήκευσης και ένας τεκμηριωμένος τρόπος φόρτωσής της μετατρέπουν ένα κλείδωμα σε πολιτική· χωρίς αυτά, μια κακή αναθεώρηση κλειδώνει τον διαχειριστή έξω από το μηχάνημα που υποτίθεται ότι προστατεύεται.

Σχετικά άρθρα