Το IKEv2 δεν είναι μία μόνο χειραψία: πρώτα IKE SA, μετά έλεγχος ταυτότητας, μετά CHILD SA
Μια απάντηση της πύλης αποδεικνύει προσβασιμότητα, όχι ταυτότητα. Παρακολουθήστε το IKE_SA_INIT, το IKE_AUTH και το πρώτο CHILD SA και ελέγξτε μετά τι πρέπει να ισχύει πριν κινηθεί η κίνηση.
Μπορεί να νομίζετε ότι μια σύνδεση IKEv2 είναι μία ανταλλαγή που τελειώνει με την κρυπτογράφηση της κίνησής σας. Στην πραγματικότητα είναι τουλάχιστον δύο, και η πρώτη δεν πιστοποιεί κανέναν. Οι ομότιμοι ξεκινούν με μηνύματα ελέγχου, συμφωνούν σε κρυπτογραφικές παραμέτρους, αποδεικνύουν ταυτότητα και μόνο τότε διαπραγματεύονται την κατάσταση που μεταφέρει πακέτα εφαρμογών. Αυτή η σειρά εξηγεί την αναντιστοιχία που αναφέρουν συνεχώς οι άνθρωποι: η πύλη απαντά, ο πελάτης λέει ότι συνδέθηκε, και η ιδιωτική εφαρμογή εξακολουθεί να λήγει σε timeout. Δείτε τι κάνει στην πραγματικότητα κάθε στάδιο και τι πρέπει να ισχύει μετά από αυτό.
Ο μύθος: αν η πύλη απαντήσει, είστε συνδεδεμένοι
Μια απάντηση στο πρώτο μήνυμα αποδεικνύει ότι το τελικό σημείο είναι προσβάσιμο και πρόθυμο να μιλήσει. Δεν αποδεικνύει ότι έγινε δεκτός λογαριασμός, ότι επικυρώθηκε αλυσίδα πιστοποιητικών ή ότι εγκαταστάθηκε οποιαδήποτε πολιτική δεδομένων.
Αυτές οι αποτυχίες συμβαίνουν αργότερα και παράγουν διαφορετικά συμπτώματα. Η απόρριψη πιστοποιητικού ή η αποτυχία EAP φτάνει αφού η πρώτη ανταλλαγή έχει ήδη πετύχει, γι' αυτό ένα ping στο UDP 500 και ένα πράσινο εικονίδιο πελάτη λένε τόσο λίγα.
IKE_SA_INIT: συμφωνία σε παραμέτρους, όχι σε ταυτότητα
Η πρώτη ανταλλαγή μεταφέρει προτάσεις για τη συσχέτιση ασφαλείας IKE: αλγορίθμους κρυπτογράφησης και ακεραιότητας, μια ψευδοτυχαία συνάρτηση και μια ομάδα Diffie-Hellman. Οι ομότιμοι ανταλλάσσουν επίσης nonce, και κάθε πλευρά παράγει υλικό κλειδιού για το IKE SA από το κοινό μυστικό που δημιουργούν αυτές οι τιμές. Τίποτα σε αυτή την ανταλλαγή δεν καθορίζει ποιος είναι ο άλλος. Καθορίζει ότι και οι δύο πλευρές μπορούν να υπολογίσουν τα ίδια κλειδιά και ότι συμφωνούν σε μια πρόταση. Ένας ανταποκριτής που δεν του αρέσει καμία πρόταση απορρίπτει την ανταλλαγή εδώ, γι' αυτό μια αναντιστοιχία έκδοσης ή αλγορίθμου μοιάζει με διακομιστή που έχει πέσει.
Το IKE SA που δημιουργείται σε αυτό το σημείο προστατεύει όλες τις μεταγενέστερες ανταλλαγές διαχείρισης. Αυτή είναι η δουλειά του, και είναι διαφορετική δουλειά από την προστασία των πακέτων σας.
IKE_AUTH: αποδείξτε ταυτότητα και μετά φτιάξτε το πρώτο CHILD SA
Η δεύτερη ανταλλαγή μεταφέρει ταυτότητα. Με πιστοποιητικά, κάθε ομότιμος υπογράφει με το ιδιωτικό του κλειδί και παρουσιάζει μια αλυσίδα που ο άλλος πρέπει να επικυρώσει, ενώ με EAP ο ανταποκριτής προκαλεί τον εκκινητή μέσω της επιλεγμένης μεθόδου. Εδώ εμφανίζεται επιτέλους ένα λάθος όνομα διακομιστή, ένα ληγμένο πιστοποιητικό ή ένας απορριφθείς κωδικός.
Στην κανονική περίπτωση το IKE_AUTH διαπραγματεύεται και το πρώτο CHILD SA, οπότε η προστασία δεδομένων συμφωνείται στο ίδιο ταξίδι. Ο εκκινητής προτείνει επιλογείς κίνησης, ο ανταποκριτής τους περιορίζει ή τους απορρίπτει, και τα κλειδιά για τη διαδρομή δεδομένων παράγονται από το IKE SA. Αυτό σημαίνει ότι μία ανταλλαγή μπορεί να αποτύχει σε δύο πολύ διαφορετικά σημεία: ταυτότητα ή πολιτική. Διαβάστε το φορτίο notify ή το σφάλμα αντί για τη γενική αποτυχία χειραψίας, γιατί η διόρθωση του ενός είναι πιστοποιητικό και του άλλου αναντιστοιχία υποδικτύου.
Δύο SA, δύο δουλειές
| Association | Protects | Lifetime behaviour |
|---|---|---|
| IKE SA | Management exchanges: rekeying, delete, configuration payloads | Rekeyed on its own schedule; the data path can survive the change |
| CHILD SA | Application traffic matching the traffic selectors | Rekeyed independently, often more frequently |
Ο διαχωρισμός τους εξηγεί δύο συμπεριφορές που μοιάζουν με σφάλματα. Μια σήραγγα μπορεί να εμφανίζεται ως εγκατεστημένη ενώ η ανανέωση κλειδιών αποτυγχάνει στο παρασκήνιο, και ένα CHILD SA μπορεί να αντικατασταθεί χωρίς ο πελάτης να χάσει τη σύνδεση.
Στο strongSwan, η αναφορά διαμόρφωσης IKEv2 και το swanctl --list-sas δείχνουν και τα δύο επίπεδα, και τα ip xfrm state μαζί με το ip xfrm policy δείχνουν τι εγκατέστησε πραγματικά ο πυρήνας. Η σύγκριση αυτών των δύο όψεων είναι ο ταχύτερος τρόπος να δείτε αν η διαπραγμάτευση ολοκληρώθηκε ή απλώς φαινόταν ολοκληρωμένη. Αν ο δαίμονας εμφανίζει ένα CHILD SA για το οποίο ο πυρήνας δεν έχει κατάσταση, η εγκατάσταση απέτυχε σιωπηλά. Αν ο πυρήνας κρατά κατάσταση που ο δαίμονας δεν γνωρίζει, βλέπετε κατάλοιπο προηγούμενης προσπάθειας.
Τι πρέπει να εξακολουθεί να ισχύει μετά την ανύψωση της σήραγγας
Οι επιλογείς κίνησης καθορίζουν ποιες διευθύνσεις καλύπτονται. Αν ο πελάτης προτείνει ένα υποδίκτυο και ο διακομιστής περιμένει άλλο, το CHILD SA εγκαθίσταται αλλά δεν μεταφέρει τίποτα χρήσιμο, και το σφάλμα εμφανίζεται ως πρόβλημα δρομολόγησης και όχι διαπραγμάτευσης. Μετά πρέπει να συνεργαστεί η τοπική στοίβα: προώθηση ενεργή όπου ο κεντρικός υπολογιστής δρομολογεί, διαδρομές προς τη σήραγγα, κανόνες τείχους προστασίας που επιτρέπουν τα αποκαψυλιωμένα πακέτα, και εσωτερικός επιλυτής αν εμπλέκονται ιδιωτικά ονόματα. Κάθε ένα από αυτά αποτυγχάνει χωριστά και κανένα δεν διορθώνεται με επανεκκίνηση του δαίμονα IKE.
Κρατήστε το αρχείο καταγραφής ορατό όσο κάνετε διάγνωση: την αρχική ανταλλαγή, μετά την επικύρωση ταυτότητας, μετά την πιστοποίηση χρήστη όπου ισχύει, μετά την εγκατάσταση CHILD, μετά την κίνηση εφαρμογών. Το στάδιο που σταματά είναι το στάδιο που πρέπει να διορθωθεί, και μια μεταγενέστερη αποτυχία δρομολόγησης δεν είναι ποτέ λόγος να χαλαρώσετε τους ελέγχους ταυτότητας που έχουν ήδη περάσει.