Σφάλμα OpenVPN: άγνωστη επιλογή tls-remote ή keysize
Ένας νεότερος πελάτης OpenVPN απορρίπτει παλιές γραμμές προφίλ όπως tls-remote και keysize. Διαβάστε το όνομα της επιλογής, αντικαταστήστε τον έλεγχο και αφήστε την επαλήθευση ενεργή.
Συνήθως ξεκινά με ένα προφίλ που συνδεόταν για χρόνια, ανοιγμένο σε νεότερο πελάτη, και αποτυγχάνει πριν καν ξεκινήσει το τούνελ. Το τερματικό εκτυπώνει κάτι σαν Options error: Unrecognized option ... in client.ovpn:130: tls-remote, με μια έκδοση σε παρένθεση στο τέλος. Διαβάστε το ως παράπονο του parser: το αρχείο περιέχει μια οδηγία που αυτός ο πελάτης δεν γνωρίζει πλέον.
Αυτό το ένα μήνυμα εξηγεί γιατί η αναδημιουργία κλειδιών, η εκ νέου πληκτρολόγηση του κωδικού ή ο έλεγχος του διακομιστή δεν κάνουν τίποτα. Η αποτυχία συμβαίνει όσο ο πελάτης διαβάζει τη δική του διαμόρφωση, πριν ανοίξει υποδοχή. Η χρήσιμη δουλειά είναι να εντοπίσετε την απορριφθείσα οδηγία και να την αντικαταστήσετε με το τρέχον ισοδύναμο.
Διαβάστε τη γραμμή που αποτυγχάνει πριν αλλάξετε οτιδήποτε
Εκτελέστε τον πελάτη μόνοι σας αντί να τον ξεκινήσετε από εικονίδιο στη συστάδα, ώστε το μήνυμα να είναι ορατό και η διαδρομή του προφίλ αναμφίβολη. Ανοίξτε το αρχείο στη γραμμή που αναφέρεται και κοιτάξτε το token που ονόμασε ο πελάτης. Ο αριθμός γραμμής είναι η γραμμή του προφίλ, όχι έκδοση, κάτι που μπερδεύει τους ανθρώπους επειδή ο ίδιος αριθμός εμφανίζεται στην παρένθεση ως αναγνωριστικό έκδοσης.
Οι παλιοί δημιουργοί προφίλ δεν παρήγαγαν μία κακή οδηγία, αλλά αρκετές. Διορθώστε το πρώτο σφάλμα, εκτελέστε ξανά τον πελάτη και περιμένετε να εμφανιστεί το επόμενο. Αυτή η αλληλουχία είναι φυσιολογική και δεν είναι σημάδι ότι οι αλλαγές χειροτέρεψαν τα πράγματα.
Τι συνέβη με τα keysize και tls-remote
Το keysize ζητούσε μήκος κλειδιού κρυπτογράφησης στην εποχή που το προφίλ επέλεγε ρητά τον αλγόριθμο. Το OpenVPN 2.4 το χαρακτήρισε παρωχημένο, και οι νεότεροι πελάτες το αφαίρεσαν από τον πίνακα επιλογών, οπότε ο parser τώρα απορρίπτει τη γραμμή αντί να την αγνοεί. Η σύγχρονη διαπραγμάτευση παράγει το μήκος κλειδιού από τον επιλεγμένο αλγόριθμο, γι’ αυτό δεν έχει μείνει τίποτα για να ελέγχει η οδηγία.
Το tls-remote αφαιρέθηκε στην 2.4. Συνέκρινε το πιστοποιητικό του διακομιστή με ένα αναμενόμενο όνομα, και η αντικατάστασή του είναι το verify-x509-name, που είναι αυστηρότερο ως προς τον τρόπο αντιστοίχισης του ονόματος. Η παλιά οδηγία έχει φύγει, οπότε ένα προφίλ που τη φέρει δεν θα αναλυθεί ποτέ σε τρέχοντα πελάτη.
Διορθώνετε μία οδηγία ανά προσπάθεια. Αν το προφίλ ορίζει επίσης έναν αλγόριθμο που ο πελάτης δεν προσφέρει, αυτό παράγει διαφορετικό σφάλμα αργότερα, και η ανάμειξη των δύο αλλαγών σε μία επεξεργασία καθιστά αδύνατο να καταλάβετε ποια έσπασε τη χειραψία. Επανασυνδεθείτε μετά από κάθε επεξεργασία και κρατήστε το κείμενο του σφάλματος. Αυτή η συνήθεια αφήνει επίσης ένα λειτουργικό εφεδρικό αν μια επεξεργασία χειροτερέψει τα πράγματα.
Ξαναγράψτε τον έλεγχο ταυτότητας του διακομιστή
Η αντικατάσταση παίρνει το αναμενόμενο όνομα και μια λειτουργία σύγκρισης. Το verify-x509-name vpn.example.edu name απαιτεί το θέμα του πιστοποιητικού να ισούται ακριβώς με αυτή την τιμή. Άλλες λειτουργίες αντιστοιχίζουν πρόθεμα ή πλήρη συμβολοσειρά θέματος, και η επιλογή λάθος λειτουργίας μετατρέπει ένα λειτουργικό προφίλ σε καθαρή αποτυχία επαλήθευσης.
Αν το παλιό όρισμα tls-remote ήταν το πλήρες κοινό όνομα του διακομιστή, μια ακριβής σύγκριση name είναι συνήθως σωστή. Αν ήταν μερική τιμή, χρησιμοποιήστε τη λειτουργία προθέματος αντί να συντομεύσετε το αναμενόμενο όνομα, γιατί μια συντομότερη ακριβής αντιστοίχιση δεν θα επαληθεύσει. Όταν η αρχική τιμή δεν είναι γραμμένη, ρωτήστε όποιον διαχειρίζεται τον διακομιστή για το θέμα που δημοσιεύει.
Μην κάνετε τον έλεγχο σιωπηλό για να εξαφανιστεί το σφάλμα. Η αφαίρεση της επαλήθευσης ταυτότητας του διακομιστή μετατρέπει ένα διορθώσιμο πρόβλημα προφίλ σε μη επαληθευμένο τούνελ, που είναι ακριβώς ο κίνδυνος που υπήρχε η οδηγία για να αποτρέψει.
Διορθωμένο προφίλ, τοπική επεξεργασία ή παλαιότερος πελάτης
Όταν ο διακομιστής ανήκει σε κάποιον άλλο, ο καθαρότερος δρόμος είναι ένα τρέχον προφίλ από αυτόν. Το αντίγραφό σας προέρχεται από παλαιότερο δημιουργό, και η εξαγωγή του χρησιμοποιεί ήδη τις τρέχουσες οδηγίες. Μία λήψη αφαιρεί ολόκληρη την κατηγορία σφαλμάτων και κρατά τις μελλοντικές αλλαγές σε ένα σημείο.
Όταν κατέχετε και τα δύο άκρα, επεξεργαστείτε ένα αντίγραφο και κρατήστε το πρωτότυπο. Αλλάξτε μία οδηγία, αποθηκεύστε, συνδεθείτε και καταγράψτε την έκδοση πελάτη που δοκιμάσατε. Κρατήστε μια σύντομη σημείωση δίπλα σε κάθε αλλαγή, γιατί ένα προφίλ που επεξεργάστηκε σε πολλές συνεδρίες είναι δύσκολο να ελεγχθεί από μνήμης. Οι εκτελέσεις γραμμής εντολών στο επεξεργασμένο αρχείο κάνουν αυτόν τον βρόχο γρήγορο, γιατί το σφάλμα πηγαίνει κατευθείαν στο τερματικό.
Η καθήλωση ή η επιστροφή σε πελάτη πριν από την 2.4 κάνει επίσης το μήνυμα να εξαφανιστεί, και με μια συσκευή που δεν θα ενημερωθεί ποτέ αυτό μπορεί να είναι η μόνη εφικτή προσωρινή λύση. Αντιμετωπίστε το ως προσωρινό: ένας παλιός πελάτης σε τρέχοντα υπολογιστή συνήθως σημαίνει παλιά βιβλιοθήκη και μη υποστηριζόμενη διαμόρφωση, που είναι πρόβλημα αναβληθέν και όχι λυμένο.
Αφού σηκωθεί το τούνελ, διαβάστε όλο το προφίλ άλλη μία φορά. Τα προφίλ που έφεραν μία αφαιρεμένη οδηγία συχνά φέρουν και άλλη, και η δεύτερη εμφανίζεται μόνο αφού φύγει η πρώτη.