OpenVPN εκτυπώνει κατά την εκκίνηση μια προειδοποίηση που προτείνει auth-nocache, και η δελεαστική απάντηση είναι να προσθέσετε την επιλογή και να δείτε τη γραμμή να εξαφανίζεται. Αυτή η συμβουλή προϋποθέτει διαδραστική σύνδεση. Μόλις το όνομα χρήστη και ο κωδικός ζουν σε αρχείο, η σύγκριση αλλάζει: η επιλογή παύει να προστατεύει το διαρκές αντίγραφο, και σε έναν πελάτη που απορρίπτει προνόμια μπορεί αργότερα να σπάσει την επαναδιαπραγμάτευση. Δύο μοντέλα αποθήκευσης αξίζει να κρατηθούν χωριστά πριν επεξεργαστείτε ένα προφίλ.

Δύο τρόποι να απαντήσετε στο αίτημα διαπιστευτηρίων

Το πρώτο μοντέλο είναι ένας άνθρωπος που πληκτρολογεί διαπιστευτήρια σε τερματικό, ή μια διεπαφή διαχείρισης που τα κρατά για τη συνεδρία. Το OpenVPN κρατά αυτό το αντίγραφο για να απαντήσει στην επόμενη επαναδιαπραγμάτευση χωρίς να ρωτήσει ξανά, και γι' αυτό ακριβώς μιλά η προειδοποίηση. Τίποτα στον δίσκο δεν εμπλέκεται, άρα το μόνο που πρέπει να προστατευτεί είναι η διεργασία που κρατά την τιμή. Κλείστε τον πελάτη και το αντίγραφο φεύγει μαζί του.

Το δεύτερο μοντέλο είναι auth-user-pass που δείχνει σε αρχείο, όπου το αρχείο είναι η αποθήκη και ο πελάτης το διαβάζει όταν χρειάζεται μια τιμή. Η έκθεση που μετρά εδώ δεν είναι η μνήμη της διεργασίας αλλά τα δικαιώματα και η κυριότητα αυτού του αρχείου. Η προειδοποίηση εκκίνησης προέρχεται από τις οδηγίες στη διαμόρφωση, όχι από έλεγχο του πώς παρέχετε τον κωδικό, άρα εμφανίζεται και στα δύο μοντέλα και δεν δείχνει σε κανένα.

Η υπόλοιπη σύγκριση απορρέει από αυτόν τον διαχωρισμό: χειρισμός μνήμης για το ένα μοντέλο, χειρισμός αρχείου και ταυτότητα διεργασίας για το άλλο.

Τι απορρίπτει στην πραγματικότητα το auth-nocache

Με διαδραστική σύνδεση, --auth-nocache αφαιρεί το αποθηκευμένο αντίγραφο από τη μνήμη αφού χρησιμοποιηθεί. Το κόστος είναι ένα νέο αίτημα σε κάθε διάστημα επαναδιαπραγμάτευσης, γιατί ο επόμενος γύρος δεν μπορεί να επαναχρησιμοποιήσει ό,τι απορρίφθηκε.

Με σύνδεση βασισμένη σε αρχείο ο πελάτης μπορεί να διαβάσει ξανά το αρχείο, άρα η απόρριψη είναι ως επί το πλείστον αόρατη. Γίνεται ορατή στο ένα σημείο όπου οι άνθρωποι δεν το περιμένουν: αφού ο δαίμονας απορρίψει προνόμια, αν το αρχείο διαπιστευτηρίων δεν είναι αναγνώσιμο από τον λογαριασμό με τον οποίο τρέχει τώρα.

Προσθέστε την επιλογή επειδή καταλαβαίνετε αυτή την ανταλλαγή, όχι επειδή εμφανίστηκε μια προειδοποίηση. Μια επιλογή που προστίθεται για να γίνει ένα αρχείο καταγραφής πιο ήσυχο είναι μια επιλογή που κανείς δεν μέτρησε το αποτέλεσμά της.

Πού σπάει η διαδρομή με αρχείο

Ένας πελάτης που ξεκινά ως root για να ανοίξει τη συσκευή τούνελ και μετά αλλάζει σε user και group διαβάζει το αρχείο διαπιστευτηρίων δύο φορές: μία πριν την αλλαγή, μία στην επαναδιαπραγμάτευση που ακολουθεί. Αν το αρχείο έχει λειτουργία 600 και ανήκει στο root, η δεύτερη ανάγνωση αποτυγχάνει, και η αποτυχία εμφανίζεται μία ώρα αργότερα ως σφάλμα ταυτοποίησης που μοιάζει με πρόβλημα διακομιστή. Ελέγξτε το αρχείο καταγραφής του πελάτη γύρω από το διάστημα επαναδιαπραγμάτευσης και μετά ελέγξτε τον λογαριασμό και το αρχείο μαζί.

stat -c '%a %U:%G' /etc/openvpn/client.creds
ps -o user:12,args -C openvpn | head

Και οι δύο γραμμές μετράνε. Η πρώτη σας λέει ποιος μπορεί να διαβάσει το αρχείο, η δεύτερη ποιος είναι πραγματικά ο δαίμονας που τρέχει, και μια αναντιστοιχία μεταξύ τους εξηγεί μια αποτυχία που καμία επανάληψη πληκτρολόγησης του κωδικού δεν θα διορθώσει.

Οι πρακτικές διορθώσεις δεν είναι εντυπωσιακές: μετακινήστε το αρχείο σε κατάλογο και σε ιδιοκτήτη που μπορεί να διαβάσει ο λογαριασμός του δαίμονα, ή κρατήστε την προνομιακή ανάγνωση και επιβεβαιώστε ότι ο πελάτης σας διαβάζει μόνο μία φορά. Μην το λύσετε κάνοντας το αρχείο αναγνώσιμο από όλους.

Η περίπτωση που θέλει πραγματικά την επιλογή

Μια σύνδεση με κωδικό μίας χρήσης θέλει auth-nocache για διαφορετικό λόγο. Ο κωδικός μίας χρήσης καταναλώνεται από την πρώτη ταυτοποίηση, άρα ένα αποθηκευμένο αντίγραφο είναι άχρηστο στην επόμενη επαναδιαπραγμάτευση και μια παρωχημένη τιμή θα μπορούσε ακόμη και να αναπαραχθεί.

Αυτό είναι ερώτημα για τον τύπο του διαπιστευτηρίου, όχι για το πού αποθηκεύεται. Ένας στατικός κωδικός σε προστατευμένο αρχείο έχει το αντίθετο προφίλ: πρέπει να είναι αναγνώσιμος σε κάθε επαναδιαπραγμάτευση, και η προστασία που χρειάζεστε βρίσκεται στο αρχείο.

Κρατήστε αυτούς τους δύο λόγους ξεχωριστούς στα σχόλια του προφίλ, αλλιώς ο επόμενος διαχειριστής θα υποθέσει ότι η επιλογή είναι εκεί για τον λόγο που θα διάλεγε εκείνος.

Η σύγκριση σε μία απόφαση

Διαλέξτε το διαδραστικό μοντέλο όταν υπάρχει άνθρωπος και η φρεσκάδα μετρά, και δεχτείτε το επαναλαμβανόμενο αίτημα ως κόστος του. Διαλέξτε το μοντέλο αρχείου όταν ο πελάτης τρέχει χωρίς επίβλεψη, και ξοδέψτε την προσπάθεια σε κυριότητα, λειτουργία και απόρριψη προνομίων.

Κανένα μοντέλο δεν κάνει έναν αποθηκευμένο κωδικό ασφαλή από μόνο του, και κανένα δεν κάνει την προειδοποίηση εκκίνησης ουσιαστική.

Αν η προειδοποίηση είναι ο μόνος λόγος που ανοίξατε το προφίλ, καταγράψτε την απόφαση αντί για μια ανεξήγητη επιλογή: τα διαπιστευτήρια προέρχονται από αρχείο αναγνώσιμο από τον λογαριασμό του δαίμονα, μια επαναδιαπραγμάτευση έχει παρατηρηθεί να πετυχαίνει, και το εγχειρίδιο του OpenVPN 2.6 τμήμα για την επαναδιαπραγμάτευση διαβάστηκε πριν αλλάξει το διάστημά της. Αυτή η σημείωση επιβιώνει περισσότερο από κάθε μεμονωμένη σημαία.

Σχετικά άρθρα