OpenVPN auth-nocache: τι συμβαίνει στην επόμενη σύνδεση
Η εκκαθάριση των διαπιστευτηρίων του OpenVPN από τη μνήμη αλλάζει την επόμενη αυθεντικοποίηση. Ένας διαδραστικός πελάτης, ένα αρχείο διαπιστευτηρίων και μια υπηρεσία χρειάζονται διαφορετικό χειρισμό.
Ενεργοποιήστε το auth-nocache και η προειδοποίηση για την προσωρινή αποθήκευση κωδικού εξαφανίζεται, μαζί με το αντίγραφο των διαπιστευτηρίων που κρατούσε OpenVPN για την επόμενη επαναδιαπραγμάτευση. Το αν αυτό θα γίνει ερώτημα, σιωπηλή επανάληψη ή σπασμένη σήραγγα εξαρτάται από το από πού προέρχονται τα διαπιστευτήρια τη δεύτερη φορά. Έτσι, αυτό είναι μια σύγκριση μορφών ανάπτυξης και όχι ετυμηγορία για την επιλογή. Διαβάστε τη μορφή που εκτελείτε πραγματικά πριν επεξεργαστείτε οποιοδήποτε προφίλ.
Από πού πρέπει να προέλθει το δεύτερο σύνολο διαπιστευτηρίων
Το OpenVPN εφαρμόζει το auth-nocache στα μυστικά που συλλέγουν τα auth-user-pass και askpass: μόλις χρησιμοποιηθούν, η διεργασία τα απορρίπτει αντί να τα κρατά για την επόμενη χειραψία. Μια επαναδιαπραγμάτευση φτάνει με χρονόμετρο, μία φορά την ώρα από προεπιλογή, οπότε το δεύτερο αίτημα φτάνει πολύ αφού το άτομο που πληκτρολόγησε τον κωδικό έχει προχωρήσει. Αυτό το κενό είναι η όλη ιστορία. Με την προσωρινή αποθήκευση ενεργή, ο πελάτης αναπαράγει το αποθηκευμένο αντίγραφο χωρίς να ρωτήσει κανέναν· με την προσωρινή αποθήκευση ανενεργή, πρέπει να βρει το μυστικό αλλού ή να αποτύχει.
Καταγράψτε λοιπόν κάθε σημείο από όπου θα μπορούσε να προέλθει το μυστικό εκείνη τη στιγμή και να είστε ειλικρινείς για το ποια από αυτά υπάρχουν στον διακομιστή. Ένα άτομο σε τερματικό, ένα αρχείο που μπορούν να διαβάσουν τα auth-user-pass ή askpass, ή ένα διακριτικό συνεδρίας που εκδίδει ο διακομιστής είναι τα τρία που μετρούν εδώ. Αν δεν είναι διαθέσιμο κανένα από αυτά, η επαναδιαπραγμάτευση αποτυγχάνει μία ώρα μετά την αλλαγή και όχι τη στιγμή που την κάνατε.
Τρεις μορφές, τρία σημεία αποτυχίας
Ένας πελάτης επιφάνειας εργασίας με ένα άτομο μπροστά είναι η ήπια περίπτωση: το ερώτημα επιστρέφει, κάποιος πληκτρολογεί ξανά τον κωδικό και το κόστος είναι προσοχή. Μια υπηρεσία, ένα κοντέινερ ή ένας δρομολογητής που εκτελεί OpenVPN χωρίς τερματικό είναι η σκληρή περίπτωση, αφού δεν υπάρχει κανείς να απαντήσει και η επανασύνδεση που ήταν κάποτε σιωπηλή τερματίζει τώρα τη σήραγγα. Ένα υβρίδιο βρίσκεται ανάμεσα στα δύο και συμπεριφέρεται όπως η περίπτωση επιφάνειας εργασίας μέχρι να χαθεί η συνεδρία που μπορούσε να απαντήσει στο ερώτημα. Αυτό που τα χωρίζει δεν είναι αν είναι εγκατεστημένο ένα GUI, αλλά αν υπάρχει πηγή διαπιστευτηρίων τη στιγμή της επαναδιαπραγμάτευσης.
Αντιστοιχίστε την ανάπτυξή σας σε μία από τις τρεις πριν αλλάξετε οτιδήποτε, γιατί η συμβουλή που βρίσκετε στο διαδίκτυο είναι σχεδόν πάντα γραμμένη για την πρώτη. Το να εφαρμόσετε την απάντηση της επιφάνειας εργασίας σε μια υπηρεσία χωρίς τερματικό είναι ο τρόπος με τον οποίο μια σήραγγα που δούλευε για μήνες αρχίζει να πέφτει κάθε ώρα.
Οδηγία ή σημαία: διαλέξτε ένα και ξέρετε ποιο χρησιμοποιήσατε
Μέσα σε ένα προφίλ, το auth-nocache είναι γραμμή από μόνο του· σε μια κλήση που ονομάζει ρητά ένα προφίλ, είναι σημαία σε εκείνη τη γραμμή εντολών, και το εγχειρίδιο του OpenVPN απαριθμεί και τις δύο μορφές. Και οι δύο κάνουν το ίδιο στη διατήρηση διαπιστευτηρίων και καμία δεν αγγίζει τον τύπο διεπαφής ούτε διορθώνει μια άσχετη προειδοποίηση στο ίδιο αρχείο καταγραφής. Η διαφορά είναι η διάρκεια: η σημαία καλύπτει μόνο εκείνη την εκτέλεση, οπότε μια υπηρεσία που επανεκκινείται από αρχείο unit ή σενάριο περιτυλίγματος δεν θα την έχει, εκτός αν το περιτύλιγμα τη μεταβιβάσει επίσης.
auth-nocache
openvpn --config /path/client.ovpn --auth-nocacheΑποφασίστε ποιο τεχνούργημα κατέχει τη ρύθμιση, αλλάξτε την εκεί και πουθενά αλλού. Ένα προφίλ που επεξεργάστηκε σε φορητό υπολογιστή μαζί με μια μονάδα systemd που το παρακάμπτει με σημαία είναι το ζεύγος που παράγει αντιφατική συμπεριφορά μετά από επανεκκίνηση.
Ένα αρχείο διαπιστευτηρίων μετατοπίζει το μυστικό αντί να το διαγράφει
Το να δείξετε το auth-user-pass σε ένα αρχείο δίνει σε κάθε μεταγενέστερη επαναδιαπραγμάτευση μια πηγή και επίσης βάζει τον κωδικό κάπου που επιβιώνει από επανεκκινήσεις. Ρωτήστε ποιος μπορεί να διαβάσει αυτό το αρχείο, αν ο δαίμονας μπορεί ακόμη να το διαβάσει αφού εγκαταλείψει προνόμια και τι συμβαίνει όταν το σύστημα αρχείων προσαρτάται μόνο για ανάγνωση ή μια προβολή κοντέινερ κρύβει τη διαδρομή. Ένα μυστικό στον δίσκο και ένα μυστικό στη μνήμη είναι διαφορετικά προβλήματα, και η επίλυση του ενός αφήνει το άλλο στη θέση του. Η περιστροφή είναι το βήμα που παραλείπεται: ένας κωδικός που άλλαξε στον διακομιστή αλλά όχι στο αρχείο παράγει αποτυχία που διαβάζεται ως βλάβη δικτύου.
Κρατήστε το αρχείο στην ιδιοκτησία του λογαριασμού που εκτελεί τον δαίμονα, αναγνώσιμο από κανέναν άλλο και έξω από αντίγραφα ασφαλείας που φεύγουν από τον διακομιστή. Η επιλογή auth-gen-token από την πλευρά του διακομιστή του OpenVPN δίνει στον πελάτη ένα διακριτικό συνεδρίας μετά από επιτυχή σύνδεση, που είναι μικρότερο πράγμα να αφήνεις τριγύρω από τον κωδικό του λογαριασμού. Γράψτε το βήμα περιστροφής δίπλα στο αρχείο ούτως ή άλλως, γιατί το αρχείο συνήθως ζει περισσότερο από το άτομο που το δημιούργησε.
Το να τεντώσετε την επαναδιαπραγμάτευση μετακινεί το κόστος, δεν το αφαιρεί
Η άλλη πρόταση είναι να αυξήσετε το reneg-sec μέχρι το ερώτημα να είναι αρκετά σπάνιο ώστε να αγνοηθεί. Αυτό ξαναγράφει το πρόγραμμα περιστροφής κλειδιών της συνεδρίας και σπρώχνει το ίδιο πρόβλημα διαπιστευτηρίων σε μια μεταγενέστερη, λιγότερο προβλέψιμη στιγμή· δεν δημιουργεί πηγή διαπιστευτηρίων. Μια πολιτική που ανανεώνει κλειδιά βάσει προγράμματος για κάποιον λόγο δεν πρέπει να χαλαρώνει μόνο και μόνο για να αποφευχθεί η πληκτρολόγηση κωδικού.
Δοκιμάστε την επανασύνδεση και όχι τη συνεδρία στην οποία κάθεστε, γιατί η ζωντανή συνεδρία δεν αποδεικνύει τίποτα. Ρίξτε τη σήραγγα από την πλευρά του διακομιστή ή επανεκκινήστε την υπηρεσία πελάτη και παρακολουθήστε τι κάνει η επόμενη επαναδιαπραγμάτευση με κανέναν στο πληκτρολόγιο. Αν επανασυνδεθεί, ονομάστε τον μηχανισμό που παρείχε το μυστικό· αν όχι, βρήκατε το πραγματικό κόστος της επιλογής σε αυτόν τον διακομιστή. Κάθε έκβαση σας δίνει μια απάντηση που ισχύει κατά τη διάρκεια μιας διακοπής αντί για μια που ίσχυε κατά τη δοκιμή.
Σε ένα διαχειριζόμενο στόλο, όποιος κατέχει την ανάπτυξη θα πρέπει να μπορεί να ονομάσει τρία πράγματα: από πού προέρχονται τα διαπιστευτήρια, πού αποθηκεύονται και ποιος τα περιστρέφει. Αν οποιαδήποτε από αυτές τις απαντήσεις είναι το άτομο που έστησε τον διακομιστή, η επιλογή δεν είναι ακόμη ασφαλής εκεί.