strongSwan send_cert: πότε αποστέλλεται το πιστοποιητικό IKE
Το send_cert ελέγχει αν ένα peer στέλνει το πιστοποιητικό του, ενώ το send_certreq το ζητά από την άλλη πλευρά. Ελέγξτε τα αρχεία καταγραφής πριν αλλάξετε την εμπιστοσύνη του δέκτη.
Οι πύλες καταγράφουν αποτυχίες ελέγχου ταυτότητας που σχετίζονται με πιστοποιητικά, και η πρώτη αντίδραση είναι να προστεθεί άλλη μια CA στον δέκτη. Αυτό προϋποθέτει ότι το πιστοποιητικό έφτασε και απορρίφθηκε. Η άλλη περίπτωση είναι να μην εστάλη ποτέ, και αυτό το αποφασίζει η πολιτική σύνδεσης του αποστολέα. Προσδιορίστε ποια από τις δύο συνέβη πριν αλλάξετε την εμπιστοσύνη.
Τι ελέγχει στην πραγματικότητα το send_cert
Ο έλεγχος ταυτότητας με πιστοποιητικό απαιτεί το πιστοποιητικό τελικής οντότητας του peer να φτάσει στην άλλη πλευρά μέσω της ανταλλαγής IKE ή μέσω πρότερης προετοιμασίας. Στο swanctl η ρύθμιση σύνδεσης send_cert καθορίζει αν αυτό το άκρο περιλαμβάνει το φορτίο πιστοποιητικού του: ποτέ, πάντα ή ifasked. Η προεπιλογή ifasked το στέλνει ως απάντηση σε αίτημα πιστοποιητικού από τον peer. Το αίτημα πιστοποιητικού είναι ξεχωριστή ρύθμιση, γιατί το να ζητάς από την άλλη πλευρά το δικό της πιστοποιητικό δεν είναι το ίδιο με το να προσφέρεις το δικό σου.
Οι παλαιότερες εγκαταστάσεις ipsec.conf χρησιμοποιούσαν leftsendcert και rightsendcert, και αυτά τα ονόματα αντιστοιχούν σε τοπικούς και απομακρυσμένους ρόλους, όχι απευθείας στο swanctl.
Διαβάστε μία προσπάθεια πριν αλλάξετε τη σύνδεση
Διαγνώστε από μία ελεγχόμενη προσπάθεια, όχι από τη γενική εντύπωση ότι εμπλέκονται πιστοποιητικά. Τόσο η πολιτική όσο και η ενεργή συσχέτιση μπορούν να εξεταστούν.
swanctl --list-conns
swanctl --list-sas
journalctl -u strongswan --since "10 min ago" | grep -iE "cert|CERT"
Η λίστα συνδέσεων δείχνει την ρυθμισμένη τιμή του send_cert, και η λίστα SA δείχνει ποιες συνδέσεις σηκώθηκαν πραγματικά. Το αρχείο καταγραφής προσθέτει λεπτομέρειες διαπραγμάτευσης: αν ελήφθη αίτημα πιστοποιητικού και αν βγήκε φορτίο πιστοποιητικού. Μια γενική αποτυχία ελέγχου ταυτότητας δεν υποδεικνύει πρόβλημα παράδοσης, οπότε αναζητήστε τη συγκεκριμένη ανταλλαγή πριν καταλήξετε σε κάτι. Σημειώστε τη χρονική σφραγίδα της προσπάθειας ώστε το παράθυρο του αρχείου να καλύπτει όλη τη χειραψία.
Η εμπιστοσύνη του δέκτη είναι ξεχωριστή απόφαση
Η παράδοση και η εμπιστοσύνη είναι διαφορετικές ιδιότητες, και η διόρθωση της μίας δεν διορθώνει την άλλη. Ένας δέκτης πρέπει να κατέχει την προβλεπόμενη άγκυρα εμπιστοσύνης, να λάβει μια χρησιμοποιήσιμη αλυσίδα και να ταιριάζει με την αναμενόμενη ταυτότητα του peer. Ένα πιστοποιητικό τελικής οντότητας που φτάνει χωρίς το ενδιάμεσό του εξακολουθεί να αποτυγχάνει σε αυστηρό έλεγχο αλυσίδας. Αντίθετα, η εγκατάσταση μιας CA δεν υποχρεώνει καθόλου ένα peer να στείλει το πιστοποιητικό του.
openssl x509 -in peer-chain.pem -noout -subject -issuer -dates
Ο έλεγχος δείχνει ποιος εκδότης υπέγραψε το πιστοποιητικό και πότε λήγει, και σε αυτό πρέπει να αντιστοιχεί η άγκυρα του δέκτη. Εμπιστευτείτε την εκδότρια CA που κατέχει η εγκατάσταση, όχι κάθε ενδιάμεσο της αλυσίδας, γιατί η προαγωγή κάθε ενδιάμεσου σε ρίζα διευρύνει την εμπιστοσύνη πολύ πέρα από ένα peer. Κρατήστε ενεργό τον έλεγχο ταυτότητας, αφού μια σύνδεση που πετυχαίνει μόνο με απενεργοποιημένη επικύρωση δεν είναι διόρθωση. Όπου η αλυσίδα είναι ελλιπής, διορθώστε την προετοιμασία και όχι την πολιτική του αποστολέα.
Αλλάξτε τον αποστολέα μόνο με αποδείξεις
Όταν το αρχείο δείχνει ότι το πιστοποιητικό δεν εστάλη ποτέ και ο δέκτης το ζήτησε όντως, η ρύθμιση send_cert σε always είναι δικαιολογημένη αλλαγή για εκείνη τη σύνδεση. Εφαρμόστε την στη διαμόρφωση swanctl, επαναφορτώστε τις συνδέσεις και δημιουργήστε νέα συνεδρία αντί να επαναχρησιμοποιήσετε το υπάρχον SA. Επιβεβαιώστε ότι το φορτίο πιστοποιητικού εμφανίζεται τώρα και ότι ο δέκτης το δέχεται έναντι της προβλεπόμενης άγκυρας. Αν δεν αλλάξει τίποτα, το σφάλμα ήταν τελικά στην πλευρά της εμπιστοσύνης και η ρύθμιση του αποστολέα δεν ήταν η αιτία.
Γράψτε την παρατηρούμενη ανταλλαγή, την άγκυρα και την επακόλουθη επαλήθευση στο αρχείο αλλαγών. Μια διόρθωση πιστοποιητικού που δεν μπορεί να περιγραφεί με αυτούς τους όρους είναι σύμπτωση.