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

Η ερώτηση πίσω από την ερώτηση

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

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

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

Πύλη πρώτη: η διαδρομή πρέπει να μεταφέρει UDP

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

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

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

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

Πύλη δεύτερη: κάποιος πρέπει να κατέχει τα κλειδιά

Οι ομότιμοι του WireGuard επαληθεύονται με κλειδιά, ένα ζεύγος ανά συμμετέχοντα. Αυτό περιγράφεται εύκολα και είναι απαιτητικό στη λειτουργία, γιατί τίποτα στο πρωτόκολλο δεν καταχωρεί συσκευή, δεν παρακολουθεί ποιος κρατά ποιο κλειδί ούτε αφαιρεί την πρόσβαση όταν χαθεί ένα φορητό. Το πρωτόκολλο υποθέτει ότι τα κλειδιά είναι ήδη σωστά, και η ορθότητα είναι δουλειά κάποιου.

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

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

Πύλη τρίτη: το πακέτο χρειάζεται συντηρητή

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

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

Πύλη τέταρτη: δεχτείτε τον φόρτο εργασίας, όχι τη χειραψία

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

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

Κρατήστε τα στοιχεία δίπλα στα κριτήρια, μαζί με την τοπική κατάσταση που τα παρήγαγε:

wg show
ss -lunp | grep 51820
ip -4 route get 10.63.0.1

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

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