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

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

Σε τι χρησιμεύει η λειτουργία στατικού κλειδιού

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

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

Γι’ αυτό το όριο των δύο ομότιμων είναι δομικό και όχι ρύθμιση που αλλάζει.

Γιατί το client-to-client δεν είναι το κομμάτι που λείπει

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

Η άλλη συνηθισμένη σύγχυση αφορά υλικό tls-crypt ή tls-auth. Ένας διακομιστής TLS μπορεί να μοιράζεται ένα από αυτά τα κλειδιά σε όλους τους πελάτες, επειδή προστατεύει το κανάλι ελέγχου αντί να αποδεικνύει ποιος είναι κάθε πελάτης. Ένα κοινό κλειδί καναλιού ελέγχου στη λειτουργία TLS είναι διαφορετικό αντικείμενο από ένα κοινό στατικό κλειδί δεδομένων, αν και τα δύο φτάνουν ως αρχεία που μοιάζουν.

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

Χτίζοντας τον διακομιστή πολλών πελατών

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

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

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

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

Έλεγχος ότι οι πελάτες είναι πραγματικά ανεξάρτητοι

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

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

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

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

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