Κρατήστε το κλειδί υπογραφής CA του OpenVPN έξω από το /etc/openvpn
Ο χώρος εργασίας της CA εκδίδει ταυτότητες· η υπηρεσία μόνο καταναλώνει αναπτυγμένο υλικό. Δώστε σε κάθε ρόλο δικό του λογαριασμό, κατάλογο και αντίγραφο ασφαλείας, και επαληθεύστε και τα δύο.
Δύο κατάλογοι που μοιάζουν ίδιοι σε έναν οδηγό κάνουν εντελώς διαφορετικές δουλειές. Ο ένας κρατά την αρχή έκδοσης πιστοποιητικών: το ιδιωτικό της κλειδί, τον μετρητή σειράς και το αρχείο όλων όσων έχει υπογράψει. Ο άλλος κρατά ό,τι χρειάζεται ο δαίμονας για να ξεκινήσει και να εξυπηρετήσει πελάτες. Το να τα βάλετε και τα δύο στον ίδιο κεντρικό υπολογιστή κάτω από τον ίδιο λογαριασμό είναι βολικό για ένα απόγευμα και ακριβό για το υπόλοιπο της ζωής της ανάπτυξης, γιατί τότε ο δαίμονας τρέχει δίπλα στο μοναδικό κλειδί που μπορεί να κόψει οποιαδήποτε ταυτότητα θέλει.
Τι περιέχει ο χώρος εργασίας της CA
Ένας κατάλογος PKI είναι κατάσταση εκδότη, όχι διαμόρφωση. Περιέχει το ιδιωτικό κλειδί και το πιστοποιητικό της CA, ένα αρχείο σειράς, ένα ευρετήριο εκδοθέντων πιστοποιητικών και το υλικό κάθε ταυτότητας που έχει παραχθεί από αυτά.
Η υπογραφή ενός αιτήματος αλλάζει αυτή την κατάσταση, γι' αυτό ο χώρος εργασίας ανήκει σε λογαριασμό υπό διαχειριστικό έλεγχο σε κεντρικό υπολογιστή όπου δεν τρέχει η υπηρεσία VPN. Όποιος μπορεί να διαβάσει το ιδιωτικό κλειδί της CA μπορεί να εκδώσει πιστοποιητικό που ο διακομιστής θα εμπιστευτεί, άρα η προστασία του κλειδιού είναι όλο το μοντέλο εμπιστοσύνης σε ένα αρχείο. Η αντιγραφή του σε δεύτερη θέση για να κερδίσετε ένα βήμα δημιουργεί δεύτερο πράγμα προς προστασία και δεύτερο πράγμα προς λήθη. Κάθε υπογραφή αυξάνει επίσης τη σειρά και προσθέτει εγγραφή στο ευρετήριο, γι' αυτό ο χώρος εργασίας είναι ένα αντίγραφο κατάστασης και όχι φάκελος αρχείων.
Το δημόσιο πιστοποιητικό της CA είναι διαφορετικό. Προορίζεται για διανομή, και με αυτό οι πελάτες και οι διακομιστές επαληθεύουν ο ένας τον άλλον.
Τι διαβάζει ο δαίμονας όταν ξεκινά
Ένας ενεργός διακομιστής καταναλώνει ένα μικρό σύνολο: το δικό του πιστοποιητικό, το δικό του ιδιωτικό κλειδί, το πιστοποιητικό της CA για επαλήθευση ομότιμων και ό,τι υλικό κλειδιών απαιτεί η επιλεγμένη λειτουργία. Διαβάζει αυτές τις διαδρομές κατά την εκκίνηση και ξανά κατά την επαναφόρτωση.
Η κυριότητα πρέπει να αξιολογείται ως προς τη μονάδα που πραγματικά εκκινεί, όχι ως προς ένα διαδραστικό κέλυφος root. Η δηλωμένη απομόνωση μπορεί να κάνει μέρος του συστήματος αρχείων μόνο για ανάγνωση ή αόρατο ακόμη και όταν μια χειροκίνητη δοκιμή ως root πετυχαίνει.
systemctl show -p User -p Group -p ReadOnlyPaths [email protected]
stat -c '%a %U:%G' /etc/openvpn/server/server.key
runuser -u openvpn -- test -r /etc/openvpn/server/server.key; echo $?Η τρίτη γραμμή είναι αυτή που παραλείπουν οι άνθρωποι. Ρωτά τον ίδιο τον λογαριασμό του δαίμονα αν μπορεί να διαβάσει το κλειδί, και αυτή είναι η μόνη εκδοχή της ερώτησης που μετράει αφού πέσει το προνόμιο. Μια έξοδος μηδέν ως root δεν σας λέει τίποτα για το τι συμβαίνει μετά την πτώση.
Οι δύο διαδρομές αστοχίας αξίζει να διαχωριστούν πριν αλλάξετε οποιαδήποτε άδεια. Η αποτυχία υπογραφής δείχνει τον κατάλογο PKI, την άδεια αναζήτησης στους γονικούς του καταλόγους και τον λογαριασμό που τρέχει τον εκδότη. Η αποτυχία εκκίνησης δείχνει τη μονάδα, τον κατάλογο εργασίας της και τις διαδρομές που ονομάζει η διαμόρφωση του διακομιστή. Το να κάνετε όλο το δέντρο αναγνώσιμο από όλους δεν διορθώνει κανένα από τα δύο και αφαιρεί το όριο από το οποίο εξαρτώνται και τα δύο.
Γιατί η αντιγραφή του κλειδιού CA στον διακομιστή αποτυγχάνει αργότερα
Το αντίγραφο συνήθως ξεκινά ως κίνηση αποσφαλμάτωσης: κάποιος θέλει να ανανεώσει έναν πελάτη στον κεντρικό υπολογιστή VPN, οπότε το κλειδί της CA καταλήγει στο /etc/openvpn και η ανανέωση πετυχαίνει. Η άμεση εργασία πετυχαίνει, και το όριο έχει φύγει.
Έπειτα ο διακομιστής λαμβάνει αντίγραφα ασφαλείας, και η αρχή υπογραφής μπαίνει στα αντίγραφα. Ένα στιγμιότυπο, ένα πακέτο υποστήριξης ή ένα αντίγραφο του καταλόγου διαμόρφωσης φέρει τώρα την ικανότητα έκδοσης έμπιστων ταυτοτήτων όσο η CA είναι έγκυρη. Όποιος κρατά αυτό το αντίγραφο μπορεί να κόψει πιστοποιητικό για οποιοδήποτε όνομα δέχεται ο διακομιστής, μαζί με ονόματα που δεν εκδόθηκαν ποτέ. Το μόνο αρχείο αυτής της έκδοσης είναι αυτό που επιλέγουν να κρατήσουν.
Η ανάκαμψη από αυτή την κατάσταση δεν είναι ζήτημα διαγραφής αρχείου. Πρέπει να αποφασίσετε αν το κλειδί εκτέθηκε, να περιστρέψετε την CA αν συνέβη, και να αναδιανείμετε την εμπιστοσύνη σε κάθε ομότιμο. Ένας ξεχωριστός χώρος εργασίας αποφεύγει όλη τη συζήτηση.
Λογαριασμοί, κατάλογοι, αντίγραφα ασφαλείας
Δώστε στον εκδότη δικό του λογαριασμό και αρχικό κατάλογο, μακριά από τον κεντρικό υπολογιστή VPN όπου αυτό είναι πρακτικό. Δώστε στον δαίμονα διαφορετικό λογαριασμό, με πρόσβαση ανάγνωσης στο αναπτυγμένο υλικό και χωρίς πρόσβαση εγγραφής σε ό,τι εκδίδει πιστοποιητικά. Αναπτύξτε αντιγράφοντας δημόσια πιστοποιητικά προς τα έξω και ποτέ τραβώντας ιδιωτική κατάσταση εκδότη προς τα μέσα. Κρατήστε αντίγραφα ασφαλείας των δύο ρόλων χωριστά, γιατί η ευαισθησία και οι ιστορίες επαναφοράς τους διαφέρουν.
Μετά από μια ανάκληση, ενημερώστε το αρχείο CRL που ονομάζει η διαμόρφωση του διακομιστή, μετά επαναφορτώστε την υπηρεσία ώστε οι νέες συνδέσεις να το διαβάσουν. Η τεκμηρίωση του Easy-RSA καλύπτει τη διάταξη του χώρου εργασίας και τη ροή υπογραφής· οι κανόνες κυριότητας γύρω της παραμένουν απόφαση για τον κεντρικό σας υπολογιστή. Επιβεβαιώστε τι φόρτωσε η υπηρεσία με openssl crl -in /etc/openvpn/crl.pem -noout -lastupdate -nextupdate αντί να υποθέσετε ότι η επαναφόρτωση το πήρε.
Ένα τεστ που αποδεικνύει τον διαχωρισμό
Ελέγξτε την αρνητική περίπτωση, όχι μόνο τη λειτουργική. Υπογράψτε πιστοποιητικό από τον λογαριασμό του εκδότη όπως έχει σχεδιαστεί, μετά επιβεβαιώστε ότι ο ίδιος λογαριασμός δεν μπορεί να ξεκινήσει την υπηρεσία ή να διαβάσει το ιδιωτικό κλειδί του διακομιστή. Έπειτα επιβεβαιώστε ότι ο λογαριασμός του δαίμονα δεν μπορεί να διαβάσει το ιδιωτικό κλειδί της CA.
Αυτοί οι τρεις έλεγχοι παίρνουν λίγα λεπτά και αντέχουν στις αλλαγές προσωπικού, γιατί είναι δηλώσεις για άδειες και όχι για συνήθεια. Γράψτε το αποτέλεσμα με τις διαδρομές και τους λογαριασμούς που κάλυψε, μαζί με την ημερομηνία που τους τρέξατε. Αλλιώς το επόμενο άτομο που κληρονομεί αυτή την ανάπτυξη θα ξαναβγάλει το όριο από έναν οδηγό που ποτέ δεν είχε. Ένα χρονολογημένο αρχείο είναι επίσης αυτό που κάνει την επόμενη αναθεώρηση λεπτά και όχι απόγευμα.