Προφίλ OpenVPN στο Git: τι να αφαιρέσετε πριν από την υποβολή
Διαβάστε το αρχείο για ενσωματωμένα κλειδιά, αποφασίστε τι επιτρέπεται να διανέμει ένα αποθετήριο και ανακαλέστε πριν ξαναγράψετε το ιστορικό.
Τα προφίλ εξυπηρετούν δύο σκοπούς ταυτόχρονα: καταγράφουν τις ρυθμίσεις σύνδεσης και μεταφέρουν ένα λειτουργικό σύνολο διαπιστευτηρίων. Η επέκταση του αρχείου δεν σας λέει τίποτα για το ποιο από τα δύο κρατάτε. Διαβάστε το περιεχόμενο πριν αποφασίσετε ότι ανήκει σε αποθετήριο.
Τα παρακάτω βήματα υποθέτουν ότι εξετάζεται ένα πρότυπο πελάτη για έλεγχο εκδόσεων. Εκτελέστε τα με τη σειρά και σταματήστε πριν υποβάλετε κάτι που δεν μπορείτε να ανακαλέσετε.
Διαβάστε το αρχείο που πρόκειται να προσθέσετε στο ευρετήριο
Ξεκινήστε από τα πραγματικά byte, γιατί ένα προφίλ που παραπέμπει σε ξεχωριστά αρχεία φαίνεται πολύ διαφορετικό από ένα που τα ενσωματώνει. Αναζητήστε τους δείκτες μπλοκ PEM και τις ενσωματωμένες ετικέτες με ονόματα ca, cert, key, tls-auth και tls-crypt, και το ίδιο πέρασμα θα σας δείξει και τις δύο περιπτώσεις. Ένα κρυπτογραφημένο ιδιωτικό κλειδί εξακολουθεί να θεωρείται ευαίσθητο υλικό, και ένα κοινόχρηστο κλειδί tls-auth ή tls-crypt είναι διαπιστευτήριο ακόμη και αν δεν είναι η ταυτότητα ενός χρήστη. Εφαρμόστε την ίδια εξέταση σε ό,τι προστίθεται στο ευρετήριο μαζί με το προφίλ, συμπεριλαμβανομένων αρχείων συμπίεσης και σεναρίων εγκατάστασης που παραπέμπουν σε αρχείο διαπιστευτηρίων.
Έπειτα κοιτάξτε το σύνολο που έχει προστεθεί στο ευρετήριο και όχι το δέντρο εργασίας. Το git diff --cached δείχνει τι θα περιέχει πραγματικά η υποβολή, και αυτή είναι η μόνη εκδοχή που έχει σημασία για αυτή την απόφαση.
Αποφασίστε τι επιτρέπεται να διανέμει το αποθετήριο
Ένα πρότυπο μπορεί να μεταφέρει τις κοινές, ελεγμένες ρυθμίσεις και ονομασμένους δείκτες θέσης για ό,τι λαμβάνει ένα άτομο κατά την εγγραφή. Αυτό που δεν μπορεί να μεταφέρει είναι μια χρησιμοποιήσιμη ταυτότητα, γιατί ένα αποθετήριο διανέμεται σε όλους όσοι μπορούν να το διαβάσουν, συμπεριλαμβανομένης της αυτοματοποίησης. Ένα ιδιωτικό αποθετήριο περιορίζει το κοινό χωρίς να αλλάζει το ερώτημα αν κάθε αναγνώστης είναι εξουσιοδοτημένος για αυτό το διαπιστευτήριο.
Ένας κανόνας παράβλεψης εμποδίζει μελλοντικές προσθήκες και δεν κάνει τίποτα για ό,τι έχει ήδη καταγραφεί. Αυτή η ασυμμετρία αξίζει να εσωτερικευτεί πριν από την πρώτη υποβολή και όχι μετά τη δέκατη. Τα ονόματα και οι διευθύνσεις υποδομής είναι ξεχωριστή κρίση: δεν είναι μυστικά πιστοποίησης, αλλά μπορούν να αποκαλύψουν περισσότερα από όσα σκοπεύει να δημοσιεύσει μια ομάδα. Λάβετε αυτή την απόφαση ρητά αντί να ταξινομείτε κάθε γραμμή σε κωδικό πρόσβασης ή δημόσιο.
Αν το υλικό βρίσκεται ήδη στο ιστορικό
Η αφαίρεση της γραμμής σε μια νέα υποβολή αφήνει την παλιά εκδοχή άθικτη για όποιον την κατεβάσει. Αντιμετωπίστε την έκθεση ως πραγματική: προσδιορίστε τον τύπο του διαπιστευτηρίου και μετά βρείτε την αρχή που μπορεί να το ακυρώσει. Ένα πιστοποιητικό πελάτη ανακαλείται και η λίστα ανάκλησης παράγεται ξανά· ένα κοινόχρηστο κλειδί καναλιού ελέγχου αντικαθίσταται στον διακομιστή και σε κάθε πελάτη που το χρησιμοποιεί.
Τα δύο έχουν πολύ διαφορετική ακτίνα επίπτωσης, και το σχέδιο πρέπει να δηλώνει ποιο εκτελείτε πριν ξεκινήσετε. Εντοπίστε την υποβολή που εισήγαγε το υλικό με αναζήτηση τύπου git log --all -S 'BEGIN PRIVATE KEY', ώστε το εύρος του καθαρισμού να είναι γνωστό και όχι εικασία. Ένα αντίγραφο συναδέλφου ή ένα fork μπορεί να κρατά ήδη το παλιό αντικείμενο, γι' αυτό η ανάκληση έρχεται πρώτη και ο καθαρισμός δεύτερος.
Καθαρίστε μόνο αφού το περιορίσετε
Η επανεγγραφή του ιστορικού αλλάζει κάθε υποβολή μετά από αυτή που επεξεργάζεστε, οπότε χρειάζεται πρώτα τη συμφωνία του ιδιοκτήτη του αποθετηρίου και των ανθρώπων που εργάζονται σε αυτό. Μια εξαναγκασμένη ώθηση δεν είναι επισκευή· είναι ένα γεγονός συντονισμού με δικό του κίνδυνο αναστροφής. Προγραμματίστε την, κρατήστε αντίγραφο ασφαλείας και πείτε στην ομάδα πότε θα γίνει.
Στη συνέχεια, επαληθεύστε το τρέχον δέντρο και το υπόλοιπο ιστορικό αντί να εμπιστεύεστε τη σύνοψη του εργαλείου.
Κρατήστε το αποτέλεσμα ως δύο τεχνουργήματα: το πρότυπο που είναι ασφαλές για κοινή χρήση και το ευρετήριο των διαπιστευτηρίων που εκδόθηκαν μέσω της διαδικασίας εγγραφής. Κανένα από τα δύο δεν απαιτεί να ζει μια χρησιμοποιήσιμη ταυτότητα στο αποθετήριο.
Αυτός ο διαχωρισμός είναι η πραγματική διόρθωση και επιβιώνει του επόμενου ανθρώπου που θα θελήσει να υποβάλει ένα προφίλ.