Πού πρέπει το Linux να αποθηκεύει τον κωδικό VPN σας; Όχι στο προφίλ
Οι σημαίες μυστικού του NetworkManager καθορίζουν αν το προφίλ, ένας πράκτορας κλειδοθήκης ή κανείς κρατά τον κωδικό. Η απάντηση εξαρτάται από το πότε ξεκινά η σύνδεση.
Ο κωδικός VPN πρέπει να ζει κάπου: στο προφίλ σύνδεσης, σε μια κλειδοθήκη που ξεκλειδώνει η επιφάνεια εργασίας, ή πουθενά. Το NetworkManager ονομάζει αυτή την επιλογή σημαία μυστικού, και η λάθος επιλογή είναι ο λόγος που μια σύνδεση λειτουργεί μετά τη σύνδεση χρήστη και αποτυγχάνει ως υπηρεσία. Η σημαία είναι μία γραμμή διαμόρφωσης και καθορίζει ποιο από αυτά τα τρία αποτελέσματα θα πάρετε.
Τρεις σημαίες καλύπτουν σχεδόν κάθε περίπτωση, και η απόφαση αφορά το πότε ξεκινά η σύνδεση.
Τρεις σημαίες μυστικού, τρεις συμπεριφορές
Μια σημαία 0 σημαίνει ότι το μυστικό αποθηκεύεται μαζί με τη σύνδεση, σε όποιο χώρο αποθήκευσης κρατά το προφίλ. Μια σημαία 1 το κάνει ιδιοκτησία πράκτορα: το μυστικό προέρχεται από έναν πράκτορα μυστικών όπως μια κλειδοθήκη επιφάνειας εργασίας, και το NetworkManager το ζητά κατά την ενεργοποίηση. Μια σημαία 2 σημαίνει μη αποθηκευμένο, οπότε το μυστικό δεν γράφεται ποτέ και πρέπει να δίνεται κάθε φορά. Η σημαία 4 χαρακτηρίζει ένα μυστικό ως μη απαιτούμενο, για συνδέσεις που πραγματικά δεν χρειάζονται κανένα.
| Flag | Where it lives | Works unattended |
|---|---|---|
| 0 saved | Connection profile | Yes, if the store is readable |
| 1 agent-owned | Secret agent or keyring | Only if that agent is available |
| 2 not-saved | Nowhere | No |
Ορίστε τις σημαίες ανά μυστικό και όχι ανά σύνδεση. Μία σύνδεση μπορεί να έχει κωδικό ιδιοκτησίας πράκτορα και αποθηκευμένη φράση πρόσβασης ιδιωτικού κλειδιού.
Αποφασίστε με βάση το πότε ξεκινά η σύνδεση
Αν ένας συνδεδεμένος χρήστης ξεκινά τη σύνδεση, η ιδιοκτησία πράκτορα είναι η λογική προεπιλογή: η κλειδοθήκη ξεκλειδώνεται με τη σύνδεση χρήστη και το μυστικό δεν βρίσκεται ποτέ σε αρχείο. Αν η σύνδεση πρέπει να σηκωθεί πριν συνδεθεί κανείς, η ιδιοκτησία πράκτορα είναι η λάθος επιλογή, επειδή δεν υπάρχει κλειδοθήκη συνεδρίας για ξεκλείδωμα.
Αυτή είναι όλη η απόφαση. Όλα τα άλλα είναι παραλλαγή της.
Για μια υπηρεσία πριν τη σύνδεση χρήστη, ο υποστηριζόμενος τρόπος είναι ένας χώρος αποθήκευσης σε επίπεδο συστήματος ή ένα προστατευμένο αρχείο κλειδιού, και τα δικαιώματα αρχείου γίνονται η προστασία. Μην λύσετε το πρόβλημα κολλώντας τον κωδικό σε ένα σενάριο κελύφους που εκτελείται στην εκκίνηση.
Τι δίνει η κλειδοθήκη και τι δεν δίνει
Μια κλειδοθήκη κρατά το μυστικό έξω από το προφίλ σύνδεσης και το δένει με μια συνεδρία χρήστη. Δεν κάνει το μυστικό διαθέσιμο σε υπηρεσία χωρίς συνεδρία και δεν κρυπτογραφεί τίποτα στο δίκτυο. Αυτές είναι ξεχωριστές ιδιότητες που οι άνθρωποι συχνά συγχωνεύουν. Αυτό που πραγματικά αγοράζει είναι μικρότερη ακτίνα ζημιάς όταν διαρρεύσει ένα αρχείο προφίλ.
Το ιδιωτικό κλειδί στο οποίο αναφέρεται το προφίλ χρειάζεται τα δικά του δικαιώματα, ανεξάρτητα από το πού ζει ο κωδικός.
Διάγνωση χωρίς εκροή μυστικών
Τα ονόματα συνδέσεων, τα UUID και οι σημαίες συνήθως αρκούν για να εξηγήσουν μια αποτυχία. nmcli connection show παραθέτει το προφίλ, και οι σημαίες μυστικού σας λένε από πού έπρεπε να έρθει ο κωδικός.
Αποφύγετε --show-secrets σε αναφορές και συνομιλίες. Μόλις επικολληθεί, είναι διαπιστευτήριο σε απομαγνητοφώνηση.
Η αποθήκευση δεν είναι ανάκληση
Η αφαίρεση ενός μυστικού από μια κλειδοθήκη δεν ακυρώνει το διαπιστευτήριο που έχει ήδη δεχτεί ο απομακρυσμένος χειριστής. Η ανάκληση λογαριασμού είναι ενέργεια στην πλευρά του διακομιστή, και η τοπική αποθήκευση είναι ξεχωριστό ζήτημα με ξεχωριστό ιδιοκτήτη.
Αποφασίστε και τα δύο πριν από το περιστατικό, όχι κατά τη διάρκειά του. Μια διαδραστική σύνδεση χρήστη και μια υπηρεσία πριν τη σύνδεση χρειάζονται διαφορετικές απαντήσεις, και ένα κοινό σενάριο κελύφους δεν είναι κανένα από τα δύο. Η τεκμηρίωση του NetworkManager για τις σημαίες μυστικού παραθέτει όλες τις τιμές.