Μια σύνδεση Client VPN κόβεται, το πιστοποιητικό στο ACM αντικαθίσταται και τίποτα δεν αλλάζει. Το αντικείμενο πιστοποιητικού δεν ήταν ποτέ αυτό που χρησιμοποιούσε το τελικό σημείο. Το τελικό σημείο αποθηκεύει κατά τη δημιουργία μια συσχέτιση με πιστοποιητικό, μαζί με το CA πελάτη βάσει του οποίου θα επικυρώνει, τον τύπο ελέγχου ταυτότητας, τα υποδίκτυα και τους κανόνες εξουσιοδότησης, και καμία από αυτές τις συσχετίσεις δεν έχει κλήση τροποποίησης που δέχεται πιστοποιητικό αντικατάστασης. Η αντικατάσταση των byte πίσω από ένα ARN είναι αλλαγή στο πιστοποιητικό, όχι στο τελικό σημείο που το κατέγραψε.

Το τελικό σημείο αποθηκεύει αναφορές, όχι πιστοποιητικά

Ο μηχανισμός αξίζει ακριβή διατύπωση, γιατί εξηγεί ολόκληρη την αποτυχία. Το create-client-vpn-endpoint παίρνει ARN πιστοποιητικού διακομιστή και ARN αλυσίδας ριζικών πιστοποιητικών πελάτη, και το τελικό σημείο που προκύπτει κρατά αυτές τις αναφορές μαζί με τις επιλογές ελέγχου ταυτότητας ως σταθερές ιδιότητες. Η επιφάνεια του API δεν προσφέρει καμία λειτουργία που αλλάζει το πιστοποιητικό διακομιστή σε υπάρχον τελικό σημείο.

Μπορείτε να επιβεβαιώσετε τη σύνδεση χωρίς εικασίες. Το aws ec2 describe-client-vpn-endpoints --client-vpn-endpoint-ids cvpn-endpoint-0123456789abcdef0 εκτυπώνει το ARN του πιστοποιητικού, το ARN της ριζικής αλυσίδας πελάτη, τον τύπο ελέγχου ταυτότητας, το CIDR πελάτη και τα σχετικά υποδίκτυα, που είναι το πλήρες σύνολο ιδιοτήτων που θα έπρεπε να αναπαράγετε. Εκτελέστε το πριν και μετά από μια επανεισαγωγή και η έξοδος δεν μετακινείται. Αυτή είναι η απόδειξη ότι η επανεισαγωγή δεν επρόκειτο ποτέ να βοηθήσει.

Γιατί μια επανεισαγωγή δεν μπορεί να φτάσει στο τελικό σημείο

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

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

Η αλυσίδα είναι μέρος του πιστοποιητικού πελάτη

Το δεύτερο μισό της αποτυχίας βρίσκεται στο πιστοποιητικό πελάτη, και είναι πιο εύκολο να το παραβλέψετε. Ένα πιστοποιητικό πελάτη πρέπει να εισάγεται με την αλυσίδα που το εξέδωσε, παρόλο που η φόρμα εισαγωγής παρουσιάζει αυτό το πεδίο ως προαιρετικό. Χωρίς την αλυσίδα το τελικό σημείο δεν μπορεί να χτίσει μονοπάτι από το πιστοποιητικό πελάτη στο ριζικό CA πελάτη με το οποίο είχε ρυθμιστεί, και η σύνδεση καταλήγει σε ήπια επαναφορά που μοιάζει με τείχος προστασίας που ρίχνει πακέτα. Το openssl verify -CAfile root-ca.pem client.crt απαντά σε αυτό το ερώτημα τοπικά σε ένα δευτερόλεπτο, και θα έπρεπε να είναι η πρώτη εντολή που εκτελείτε.

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

Η επαναδημιουργία ενός τελικού σημείου είναι μετεγκατάσταση

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

Η σειρά που το κρατά ασφαλές είναι σύντομη: δημιουργήστε το νέο τελικό σημείο με το ίδιο CIDR, τα ίδια υποδίκτυα και τους ίδιους κανόνες εξουσιοδότησης, εξαγάγετε νέο προφίλ με το aws ec2 export-client-vpn-client-configuration και επαληθεύστε με έναν χρήστη. Μόνο μετά από αυτό κατεβαίνει το παλιό τελικό σημείο.

Η απόσυρση του παλιού τελικού σημείου έχει τη δική της σειρά. Ανακαλέστε τα πιστοποιητικά πελάτη που σκοπεύατε να αποσύρετε πριν το διαγράψετε, γιατί ένα νέο τελικό σημείο που εξακολουθεί να εμπιστεύεται το παλιό CA συνεχίζει να δέχεται πιστοποιητικά που πιστεύατε ότι είχαν φύγει. Μετά διαγράψτε το παλιό τελικό σημείο και αφαιρέστε τους κανόνες εξουσιοδότησής του, ώστε ένα παρωχημένο προφίλ να μην μπορεί να επανασυνδεθεί σε δίκτυο-στόχο που νομίζατε κλειστό. Γράψτε το ID του παλιού τελικού σημείου και τα αναγνωριστικά συσχέτισης στην εγγραφή αλλαγής, γιατί μια μετεγκατάσταση που συγκρίνεται με τη μνήμη είναι ο τρόπος με τον οποίο ένα λειτουργικό τελικό σημείο ξαναχτίζεται δύο φορές.

Βάλτε σε σειρά τη διάγνωση

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

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

Κρατήστε τέσσερα πράγματα υπό έλεγχο εκδόσεων ώστε η επόμενη ανακατασκευή να είναι diff και όχι αυτοσχεδιασμός: τις παραμέτρους του τελικού σημείου, τα ARN πιστοποιητικού και αλυσίδας, τους κανόνες εξουσιοδότησης και το CIDR πελάτη. Η τεκμηρίωση ελέγχου ταυτότητας του Client VPN απαριθμεί ποιο πιστοποιητικό παίζει ποιο ρόλο, και αξίζει να το ελέγξετε πριν υποθέσετε καθόλου ότι το πρόβλημα είναι πιστοποιητικό. Αν μια επανεισαγωγή δεν αλλάζει τίποτα και το τελικό σημείο εξακολουθεί να επαναφέρεται, η συσχέτιση είναι το ύποπτο και η απάντηση είναι ένα νέο τελικό σημείο χτισμένο από τις καταγεγραμμένες παραμέτρους. Αν το τελικό σημείο πάρει τελικά το νέο αντικείμενο, η συσχέτιση ήταν ήδη σωστή και η βλάβη βρίσκεται στην αλυσίδα πελάτη ή στο επίπεδο εξουσιοδότησης.

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