Εγχειρίδιο: ένταξη δύο πελατών OpenVPN χωριστά
Δύο πελάτες σε έναν κεντρικό υπολογιστή OpenVPN χρειάζονται ξεχωριστούς ακροατές, δεξαμενές, αρχεία εμπιστοσύνης και παράδοση ανάκλησης, μαζί με ένα τεστ αποδοχής που τους κρατά χωριστά.
Δύο πελάτες σε έναν κεντρικό υπολογιστή ακούγονται σαν ένα ακόμη μπλοκ διακομιστή και μια δεύτερη θύρα. Γίνεται διαφορετικό έργο μόλις απαριθμήσετε όλα όσα κατέχει πραγματικά ένας πελάτης: έναν ακροατή, μια δεξαμενή σηράγγων, μια ταυτότητα, αρχεία εμπιστοσύνης, διαδρομές και ένα πρόγραμμα ανάκλησης. Παραλείψτε ένα από αυτά και ο δεύτερος πελάτης κληρονομεί ήσυχα ένα κομμάτι του πρώτου. Κατασκευάστε μια κάρτα ανά πελάτη και συμπληρώστε την πριν συνδεθεί ο πρώτος πελάτης.
Αναθέστε μια πλήρη κάρτα πόρων ανά πελάτη
Δεσμεύστε ολόκληρο το σύνολο μαζί: δημόσια θύρα, υποδίκτυο σήραγγας, διαδρομή διαμόρφωσης, προορισμός αρχείων καταγραφής, όνομα στιγμιοτύπου υπηρεσίας και συσκευή. Η ονομασία τους ως ομάδα είναι αυτό που εμποδίζει το κλασικό αντίγραφο ενός λειτουργικού αρχείου που εξακολουθεί να περιέχει τη δεξαμενή ή τη διεπαφή του πρώτου πελάτη. Οι τιμές είναι παραδείγματα, όχι δεσμευμένες θύρες, οπότε ελέγξτε τι χρησιμοποιεί ήδη ο κεντρικός υπολογιστής. Μια υπηρεσία που ξεκινά δεν είναι το ίδιο με έναν πελάτη που είναι πλήρης.
Κρατήστε την κάρτα δίπλα στη διαμόρφωση και ενημερώστε την κάθε φορά που αλλάζει μια τιμή. Η τεκμηρίωση που απομακρύνεται από την πραγματικότητα είναι χειρότερη από καμία.
Κρατήστε το υλικό εμπιστοσύνης μέσα σε κάθε πελάτη
Μια ξεχωριστή αρχή έκδοσης ανά πελάτη κάνει τα όρια εύκολα στην αιτιολόγηση και κρατά το κλειδί υπογραφής μακριά από τον κεντρικό υπολογιστή που εκτίθεται στο διαδίκτυο. Μια κοινή ρίζα μπορεί επίσης να λειτουργήσει, αλλά ένα κοινό σημείο αγκύρωσης δεν μετατρέπει δύο υπηρεσίες σε έναν τομέα ιδιότητας μέλους. Αποφασίστε ποιες αλυσίδες δέχεται κάθε ακροατής και ποιες ταυτότητες πελατών εξουσιοδοτεί και γράψτε και τα δύο. Μην αφαιρείτε πιστοποιητικά από μια αλυσίδα με δοκιμές και σφάλματα μέχρι να συνδεθεί κάτι.
Το ίδιο το ιδιωτικό κλειδί του διακομιστή ανήκει σε προστατευμένο αρχείο ανά πελάτη, όχι σε κατάλογο προτύπων που αντιγράφεται μαζί με τη διαμόρφωση.
Διαχωρίστε τα δίκτυα όπως και τις διεργασίες
Δύο διεργασίες σε δύο θύρες εξακολουθούν να μοιράζονται έναν κεντρικό υπολογιστή και έναν πίνακα δρομολόγησης, εκτός αν τις διαχωρίσετε. Επιβεβαιώστε τι ακούει πριν εμπιστευτείτε τον σχεδιασμό.
ss -lunp | grep -E '1194|1195'
openssl verify -CAfile customer-a/ca.crt customer-a/client.pemΟ έλεγχος ακροατή δείχνει ποια διεργασία κατέχει κάθε δημόσια θύρα, και η επαλήθευση δείχνει αν ένα πιστοποιητικό πελάτη αλυσιδώνεται στο προβλεπόμενο σημείο αγκύρωσης. Καμία από τις δύο εξόδους δεν αποδεικνύει ότι ο πελάτης του A δεν μπορεί να φτάσει στο υποδίκτυο του B, οπότε ορίστε πολιτική προέλευσης και προορισμού, διαδρομές επιστροφής και κάθε σκόπιμα κοινή υπηρεσία. Οι χώροι ονομάτων δικτύου ή τα κοντέινερ διαχωρίζουν τα συμφραζόμενα δρομολόγησης και μειώνουν την τυχαία ανάμειξη, αλλά δεν αποτελούν πλήρες όριο ενοικιαστή από μόνα τους. Επιλέξτε ισχυρότερο μηχανισμό απομόνωσης όταν το μοντέλο απειλών το απαιτεί.
Παραδώστε την ανάκληση πριν από την παράδοση
Μια ανάπτυξη πιστοποιητικών είναι ελλιπής μέχρι η ανάκληση να έχει διαδρομή παράδοσης. Ελέγξτε τον εκδότη και το παράθυρο ισχύος του CRL ως μέρος της ένταξης.
openssl crl -in customer-a/crl.pem -noout -lastupdate -nextupdate
systemctl status openvpn@customer-aΟ έλεγχος του CRL αναφέρει πότε εκδόθηκε η λίστα και πότε λήγει, και η κατάσταση της υπηρεσίας επιβεβαιώνει ότι το στιγμιότυπο που τη διαβάζει εκτελείται. Ανανεώστε τη λίστα σύμφωνα με το χρονοδιάγραμμα της πολιτικής έκδοσης ακόμη και όταν δεν ανακλήθηκε κάτι νέο, επειδή ένα ληγμένο CRL μπορεί να απορρίψει κάθε πελάτη. Δημοσιεύστε ένα πλήρες αρχείο αντί να αφήνετε τους αναγνώστες να συναντήσουν μερική εγγραφή, και επικυρώστε την υπογραφή πριν από την ανάπτυξη. Καταγράψτε ποιος κατέχει την έκδοση, τη λειτουργία του τελικού σημείου και την απόσυρση, ώστε ο τερματισμός του πελάτη A να μην ενοχλεί τον B.
Στη συνέχεια εκτελέστε το ζεύγος αποδοχής: ένας επιτρεπόμενος πελάτης φτάνει στη δική του υπηρεσία και ένα διαπιστευτήριο του A απορρίπτεται από τον ακροατή του B. Αυτό είναι το όριο εκφρασμένο ως τεστ.