Σχεδιασμός παραθύρου συντήρησης OpenVPN χωρίς να χαθεί ο κεντρικός υπολογιστής
Σταματήστε το τούνελ, χάστε τη συνεδρία. Καταγράψτε τη μονάδα που εκτελείται, φτιάξτε ένα σύνολο ανάκτησης, δοκιμάστε σε πιλοτικό ακροατή και μετά αλλάξτε από έξω από το VPN.
Η επανεκκίνηση της υπηρεσίας VPN τερματίζει κάθε συνεδρία που τη χρησιμοποιεί, οπότε το παράθυρο πρέπει να χτιστεί γύρω από συζητήσεις και όχι γύρω από τον διαχειριστή πακέτων. Οι χρήστες χρειάζονται αρκετή προειδοποίηση για να τελειώσουν ευαίσθητη εργασία, και εσείς χρειάζεστε έναν δρόμο επιστροφής που δεν εξαρτάται από το τούνελ που πρόκειται να σταματήσετε. Όλα τα άλλα στο εγχειρίδιο υπάρχουν για να κάνουν αυτά τα δύο γεγονότα διαχειρίσιμα. Παραλείψτε οποιοδήποτε από τα δύο και μια συνήθης ενημέρωση γίνεται διακοπή χωρίς έξοδο.
Η σειρά παρακάτω είναι σκόπιμη: κάθε στάδιο παράγει κάτι που χρειάζεται το επόμενο, και οποιοδήποτε στάδιο μπορεί να τερματίσει την αλλαγή πριν αρχίσει.
Καταγράψτε την υπηρεσία που υπάρχει πριν την αλλάξετε
Διαβάστε την εγκατεστημένη μονάδα και όχι εκείνη που θυμάστε ότι γράψατε: systemctl cat [email protected] εκτυπώνει τη μονάδα και τυχόν drop-in, και systemctl show [email protected] -p ExecStart -p User -p WorkingDirectory δείχνει τι εκτελείται πραγματικά και με ποια ταυτότητα. Ρωτήστε το δυαδικό αρχείο που ονομάζει αυτή η μονάδα, γιατί το openvpn --version από ένα κέλυφος μπορεί να αναλυθεί σε διαφορετικό build. Καταγράψτε τη διαδρομή του προφίλ και κάθε αρχείο στο οποίο αναφέρεται.
Προσέξτε και τις υποδοχές ακρόασης: το ss -lunp | grep 1194 σας λέει ποια διεύθυνση και ποιο πρωτόκολλο κατέχει σήμερα ο δαίμονας. Αν η απάντηση δεν είναι αυτή που υποδηλώνει το προφίλ, κάποιο drop-in ή αρχείο περιβάλλοντος την υπερισχύει, και η αναβάθμιση θα κληρονομήσει αυτή την έκπληξη.
Συγκεντρώστε ένα σύνολο ανάκτησης που θα μπορούσε να χρησιμοποιήσει κάποιος άλλος
Το σύνολο ανάκτησης πρέπει να είναι χρησιμοποιήσιμο από συνάδελφο στις 03:00 χωρίς το πλαίσιό σας. Συμπεριλάβετε την ενεργή διαμόρφωση με κάθε αρχείο στο οποίο αναφέρεται, το υλικό εμπιστοσύνης και ανάκλησης υπό τον έλεγχο του ιδιοκτήτη του PKI, τις αναθέσεις και τα hooks ανά πελάτη, και τις ακριβείς εκδόσεις πακέτων που είναι εγκατεστημένες σήμερα. Ένα αντίγραφο ενός ονόματος αρχείου δεν είναι διαμόρφωση. Αποθηκεύστε το κάπου όπου ο εφημερεύων χειριστής μπορεί να φτάσει χωρίς το VPN.
Οι έλεγχοι πρόσβασης ισχύουν και για αυτό το σύνολο, γιατί περιέχει ιδιωτικά κλειδιά ή διαπιστευτήρια backend. Μην ξαναχτίσετε την CA και μην επανεκδώσετε ταυτότητες μόνο και μόνο επειδή άλλαξε μια έκδοση πακέτου.
Δοκιμάστε σε πιλοτικό ακροατή με πραγματικό πελάτη
Εκτελέστε την υποψήφια έκδοση σε ξεχωριστό ακροατή με δικό του σχέδιο θυρών και διευθύνσεων, όχι δίπλα στο παράδειγμα παραγωγής στην ίδια υποδοχή. Συνδεθείτε με τις μηχανές πελάτη που πραγματικά εκτελούν οι χρήστες σας, μαζί με την άβολη. Ελέγξτε την ανάθεση διεύθυνσης, το DNS που ωθείται, μία εφαρμογή που έχει σημασία και μία διαδρομή που πρέπει να παραμείνει αποκλεισμένη. Τα προσαρμοσμένα hooks πρέπει να εκτελούνται στο πραγματικό πλαίσιο προνομίων και συστήματος αρχείων της υπηρεσίας, αφού ένα κέλυφος root δεν αποδεικνύει τίποτα γι’ αυτά.
Διαβάστε τις σημειώσεις έκδοσης για αλλαγές συμπεριφοράς και όχι μόνο για νέες λειτουργίες. Οι προεπιλογές κρυπτογράφησης και TLS μετακινούνται μεταξύ εκδόσεων, και ένα προφίλ που ακόμη αναλύεται μπορεί να αποτύχει στη χειραψία. Αν η αναβάθμιση απαιτεί αλλαγές προφίλ ή πιστοποιητικού, σχεδιάστε το ως δικό του βήμα αντί να το ενσωματώσετε στην ενημέρωση πακέτου.
Αλλάξτε μία φορά, από διαδρομή έξω από το τούνελ
Ξεκινήστε το παράθυρο από κονσόλα ή δίκτυο διαχείρισης που δεν διασχίζει την υπηρεσία. Επιβεβαιώστε ότι οι χρήστες ενημερώθηκαν και ότι ένας δεύτερος χειριστής ξέρει πώς να κάνει επαναφορά. Εφαρμόστε την προετοιμασμένη αλλαγή μέσω του ιδιοκτήτη της, μετά επανεκκινήστε με sudo systemctl restart [email protected] και παρακολουθήστε το ημερολόγιο με journalctl -u openvpn-server@office -b -f. Μια επαναφόρτωση αρκεί όταν άλλαξαν μόνο ορισμοί μονάδας· ένα αλλαγμένο προφίλ απαιτεί επανεκκίνηση της διεργασίας.
Περιμένετε κάθε πελάτης να επανασυνδεθεί, και περιμένετε ορισμένες συνεδρίες εφαρμογών να μην συνεχιστούν. Συντονίστε μια καθαρή παύση με τα φορτία εργασίας που δεν το ανέχονται.
Αποδεχτείτε ή επαναφέρετε, και μετά πείτε στους χρήστες τι άλλαξε
Η αποδοχή είναι μια νέα σύνδεση συν μια πραγματική λειτουργία συν οι περιορισμοί που εξακολουθούν να ισχύουν. Μια ενεργή μονάδα και μια πράσινη γραμμή κατάστασης είναι γεγονότα της διεργασίας. Αν τα κριτήρια αποτύχουν μέσα στο παράθυρο, επαναφέρετε με την προετοιμασμένη μέθοδο, όχι επαναφέροντας ένα αρχείο και ελπίζοντας· ένα αλλαγμένο δυαδικό ή πολιτική υπηρεσίας επιβιώνει από την επαναφορά διαμόρφωσης. Διατηρήστε οποιαδήποτε αλλαγή ανάκλησης ή εξουσιοδότησης έγινε κατά το παράθυρο, ώστε η επαναφορά να μην ακυρώσει εργασία ασφάλειας.
Καταγράψτε τις εκδόσεις, τις αλλαγές προφίλ και τα αποτελέσματα αποδοχής για τον επόμενο χειριστή, αποσύρετε το πιλοτικό ακροατή και πείτε στους χρήστες ποιο προφίλ να χρησιμοποιήσουν τώρα. Ένα παράθυρο που τελειώνει χωρίς αυτή τη σημείωση επαναδιαπραγματεύεται στην επόμενη ενημέρωση.