FortiGate Azure rekey: η πρόταση peer SA δεν ταιριάζει με την τοπική πολιτική
Μια λειτουργική σήραγγα IKEv2 μπορεί να απορρίψει την αντικατάσταση CHILD SA. Συγκρίνετε την πρόταση που διαπραγματεύεται στην πραγματικότητα η ανανέωση, όχι αυτή που χρησιμοποίησε το πρώτο ping.
Η σήραγγα σηκώθηκε, η κίνηση κύλησε και αργότερα το ημερολόγιο λέει peer SA proposal not match local policy. Οι περισσότεροι διαβάζουν αυτή τη γραμμή ως απόδειξη ότι οι δύο διαμορφώσεις δεν ταίριαξαν ποτέ. Συνήθως σημαίνει κάτι στενότερο: ταίριαξαν για το πρώτο CHILD SA και σταμάτησαν να ταιριάζουν στην πρώτη ανανέωση, επειδή ο πρώτος συσχετισμός δεν χρειάστηκε ποτέ την ανταλλαγή που εκτελούν οι επόμενοι. Αυτή η διάκριση καθορίζει πού θα κοιτάξετε.
Το πρώτο CHILD SA κληρονομεί, τα επόμενα διαπραγματεύονται
Στο IKEv2 το αρχικό CHILD SA δημιουργείται κατά το IKE_AUTH και τα κλειδιά του παράγονται από το υλικό κλειδιών του IKE SA. Δεν υπάρχει χωριστή ανταλλαγή Diffie-Hellman σε εκείνο το σημείο, οπότε μια ομάδα PFS που ένα peer δεν μπορεί να δεχτεί απλώς δεν δοκιμάζεται ακόμη. Η σήραγγα φαίνεται υγιής επειδή η απαίτηση στην οποία θα αποτύχετε αργότερα δεν δοκιμάστηκε ποτέ.
Η ανανέωση κλειδιού CHILD_SA είναι διαφορετική αλληλουχία μηνυμάτων. Όταν έχει ρυθμιστεί PFS, τα peer εκτελούν νέα ανταλλαγή κλειδιών και πρέπει να συμφωνήσουν σε μια ομάδα που δέχονται και οι δύο πλευρές, καθώς και στην πρόταση ESP για τον νέο συσχετισμό. Εκείνη είναι η στιγμή που η ασυμφωνία γίνεται ορατή, και γι’ αυτό το σφάλμα ονομάζει πρόταση και όχι διαδρομή.
Άρα το «χθες δούλευε» δεν σας λέει τίποτα για την πρόταση. Σας λέει ότι η αρχική ανταλλαγή πέτυχε, κάτι που το ξέρατε ήδη.
Διαβάστε την αποτυχημένη ανταλλαγή, όχι το πρώτο ping
Συλλέξτε την επιτυχημένη πιστοποίηση IKE, το αρχικό CHILD SA και την αποτυχημένη αντικατάσταση και από τα δύο άκρα πριν αλλάξετε οτιδήποτε. Στη συνέχεια ονομάστε τη λειτουργία με ακρίβεια: η ανανέωση κλειδιού IKE SA, η εκ νέου πιστοποίηση IKE και η ανανέωση κλειδιού CHILD SA είναι τρία διαφορετικά γεγονότα, και η «φάση 2» τα καλύπτει όλα στην καθημερινή συζήτηση.
Συγκρίνετε τα πεδία παρακάτω για τη σύνδεση που απέτυχε, όχι για τη σήραγγα γενικά.
| Επίπεδο | Τιμές για σύγκριση |
|---|---|
| IKE | Έκδοση, κρυπτογράφηση και ακεραιότητα ή διάταξη PRF, ομάδα DH |
| IPsec / CHILD | Κρυπτογράφηση και ακεραιότητα ESP, επιδιωκόμενη ομάδα PFS ή ανταλλαγής κλειδιών |
| Προστατευμένη κίνηση | Τοπικοί και απομακρυσμένοι επιλογείς, καθώς και οποιαδήποτε ρύθμιση επιλογέα βάσει πολιτικής |
Στο FortiGate, ανοίξτε την πρόταση φάσης-2, τη ρύθμιση PFS και τις αποδεκτές ομάδες DH για αυτή τη σήραγγα. Διαβάστε τις φορτωμένες τιμές αντί να τις συμπεράνετε από μια σύνδεση που είχε ήδη εγκατασταθεί. Ένα στιγμιότυπο οθόνης της σελίδας GUI είναι ασθενέστερη απόδειξη από την τρέχουσα διαμόρφωση, γιατί τα δύο μπορούν να διαφωνήσουν μετά από αναβάθμιση. Εξαγάγετε το τμήμα που αλλάξατε και κρατήστε το μαζί με το δελτίο.
Η προεπιλεγμένη πολιτική του Azure παραμένει πολιτική
Το ότι δεν είναι συνδεδεμένη προσαρμοσμένη πολιτική στη σύνδεση δεν σημαίνει ότι το Azure δεν εφαρμόζει καμία. Η σύνδεση επιστρέφει στο προεπιλεγμένο σύνολο προτάσεων της πύλης, το οποίο μπορεί να είναι ευρύτερο ή στενότερο από αυτό που προσφέρει το FortiGate σας. Αν τα δύο σύνολα επικαλύπτονται για το IKE αλλά όχι για το ESP με PFS, παίρνετε ακριβώς αυτό το μοτίβο αποτυχίας.
Αυτή η προβολή μόνο για ανάγνωση δείχνει την πολιτική που είναι πραγματικά συνδεδεμένη, χωρίς να αποκαλύπτει μυστικά:
Get-AzVirtualNetworkGatewayConnection -Name 'Branch' -ResourceGroupName 'NetworkRG' |
Select-Object Name, ConnectionStatus, IpsecPoliciesΧρησιμοποιήστε τα πραγματικά ονόματα πόρων σας. Όταν χρειάζεται ρητή πολιτική, ορίστε την στον πόρο της σύνδεσης. Δεν είναι διακόπτης σε επίπεδο πύλης και δεν εφαρμόζεται σιωπηρά σε άλλες σήραγγες στην ίδια πύλη.
Στην πύλη, η σελίδα Configuration αυτής της σύνδεσης είναι το σημείο όπου πηγαίνει μια προσαρμοσμένη πολιτική IPsec/IKE. Ο οδηγός της Microsoft για προσαρμοσμένες πολιτικές απαριθμεί τις υποστηριζόμενες παραμέτρους και τις απαιτήσεις SKU. Το Azure παίρνει έναν πλήρη συνδυασμό ανά σύνδεση, οπότε καθορίζετε τα πεδία IKE και τα πεδία IPsec μαζί, όχι ένα κάθε φορά.
Το PFS είναι απαίτηση, όχι διακόπτης για γύρισμα
Αν η βάση ασφαλείας σας απαιτεί PFS, η λύση είναι μια ομάδα που δέχονται και τα δύο peer και στις δύο πλευρές, εκφρασμένη μέσω αντίστοιχης πολιτικής. Το να απενεργοποιήσετε το PFS για να εξαφανιστεί το σφάλμα αλλάζει την ιδιότητα ασφαλείας που προσπαθούσατε να διατηρήσετε, και συνήθως επανεμφανίζεται αργότερα ως διαφορετική ασυμφωνία.
Μια παγίδα ειδικά για το Azure: όταν επιλέγετε GCM για ESP, οι επιλογές κρυπτογράφησης και ακεραιότητας πρέπει να ονομάζουν τον ίδιο αλγόριθμο GCM και το ίδιο μήκος κλειδιού. Η ανάμιξη κρυπτογράφησης GCM με χωριστό αλγόριθμο ακεραιότητας παράγει συνδυασμό που η υπηρεσία απορρίπτει, και αυτό μοιάζει με ασυμφωνία peer μέχρι να διαβάσετε προσεκτικά την πολιτική.
Επιλέξτε τον ισχυρότερο συνδυασμό που υποστηρίζουν και τα δύο άκρα και επιτρέπει η απαίτησή σας, και μετά γράψτε τον στο αρχείο αλλαγών. Το επόμενο άτομο θα συγκρίνει με εκείνο το αρχείο, όχι με μια ανάμνηση λειτουργικής σήραγγας. Βάλτε μέσα την ομάδα PFS και την πρόταση ESP, όχι μόνο το όνομα της πολιτικής. Όταν κάποιος ρωτήσει αργότερα γιατί απέτυχε ένας έλεγχος ή γιατί μια ανανέωση κλειδιού είναι αργή, εκείνη η γραμμή απαντά και στις δύο ερωτήσεις.
Επαληθεύστε την ανταλλαγή που απέτυχε
Προγραμματίστε την αλλαγή με διαδρομή ανάκαμψης, γιατί η επεξεργασία της πολιτικής μπορεί να διακόψει τη σήραγγα που προσπαθείτε να διορθώσετε. Αφού επιστρέψει η κίνηση, περιμένετε ή προκαλέστε ανανέωση CHILD_SA και επιβεβαιώστε ότι ο νέος συσχετισμός εγκαθίσταται με την επιδιωκόμενη ομάδα PFS. Στη συνέχεια επιβεβαιώστε ότι η κίνηση εφαρμογών συνεχίζεται μέσω αυτού.
Δύο παραπλανητικά ίχνη αξίζει να ονομαστούν. Οι διάρκειες ζωής SA είναι τοπικές προδιαγραφές, οπότε οι άνισες τιμές είναι φυσιολογικές και η αλλαγή τους απλώς μετακινεί πότε εμφανίζεται το πρόβλημα. Το DPD ανιχνεύει αν ένα peer είναι ζωντανό· η αύξηση του χρονικού ορίου του δεν ευθυγραμμίζει τις επιλογές ESP ή PFS.
Καταγράψτε το διαπραγματευμένο αποτέλεσμα και το επόμενο γεγονός μετά την αλλαγή. Αν η σύνδεση τώρα αποτυγχάνει πριν ολοκληρωθεί η πιστοποίηση IKE, κοιτάτε τις ρυθμίσεις IKE που μόλις επεξεργαστήκατε, όχι την αρχική αποτυχία ανανέωσης CHILD.