strongSwan EAP: ταυτότητα IKE έναντι του αναμενόμενου ονόματος AAA
Ένας πελάτης strongSwan EAP μπορεί να επικυρώσει δύο ονόματα διακομιστή. Το remote.id καλύπτει την πύλη IKE και το local.aaa_id τον διακομιστή EAP· δεν είναι ένα πεδίο.
Η πιστοποίηση EAP πάνω από IKEv2 μπορεί να ζητήσει από έναν πελάτη να επικυρώσει δύο διαφορετικά ονόματα διακομιστή σε μία σύνδεση. Η πύλη που τερματίζει το IKE παρουσιάζει μία ταυτότητα, και το υπόβαθρο EAP που τερματίζει την εσωτερική ανταλλαγή TLS μπορεί να παρουσιάσει άλλη. Στο strongSwan ζουν σε διαφορετικά μπλοκ ρυθμίσεων, και ένα όνομα στο λάθος μπλοκ παράγει αποτυχία που μοιάζει με πρόβλημα πιστοποιητικού. Η ανάγνωση του ποια επικύρωση απέτυχε είναι αυτό που σας λέει ποιο μπλοκ να επεξεργαστείτε.
Μία σύνδεση, δύο ταυτότητες διακομιστή
Η πρώτη ταυτότητα ανήκει στην ανταλλαγή IKE. Ο πελάτης καλεί μια διεύθυνση και περιμένει ο ομότιμος να αποδείξει μια συγκεκριμένη ταυτότητα, συνήθως το όνομα στο πιστοποιητικό της πύλης.
Η δεύτερη ανήκει στο EAP. Με PEAP ή TTLS, ο πελάτης χτίζει ένα τούνελ TLS προς τον διακομιστή πιστοποίησης μέσα στο IKE SA, και αυτός ο εσωτερικός διακομιστής παρουσιάζει το δικό του πιστοποιητικό. Όταν το υπόβαθρο είναι ξεχωριστός κεντρικός υπολογιστής, το όνομά του διαφέρει από της πύλης. Ένας πελάτης που ελέγχει μόνο το πρώτο όνομα δέχεται ό,τι ισχυρίζεται το δεύτερο. Και ένας πελάτης ρυθμισμένος με ένα όνομα και στα δύο σημεία αποτυγχάνει μόλις τα δύο όντως διαφέρουν.
Και τα δύο ονόματα προέρχονται από τη ρύθμιση του διαχειριστή και όχι από το πιστοποιητικό που κάνει το σφάλμα να εξαφανιστεί. Το να ρωτήσετε τον διαχειριστή για τις λεπτομέρειες ανάπτυξης είναι ταχύτερο από το να μαντέψετε δύο ονόματα κεντρικών υπολογιστών.
Ποιο πεδίο ανήκει σε ποιο επίπεδο
Στο swanctl η διεύθυνση και η ταυτότητα IKE είναι ξεχωριστές ρυθμίσεις, και η ταυτότητα EAP είναι τρίτη.
Η απομακρυσμένη διεύθυνση επιλέγει πού πάνε τα πακέτα, και η απομακρυσμένη ταυτότητα δηλώνει τι πρέπει να αποδείξει ο ομότιμος. Η προσδοκία EAP γράφεται κάτω από το μπλοκ local, γιατί περιγράφει την ανταλλαγή EAP αυτού του πελάτη και όχι τη συμπεριφορά IKE του ομοτίμου. Ακριβώς αυτή η τοποθέτηση διαβάζεται λάθος. Το όνομα βρίσκεται στη ρύθμιση του πελάτη ενώ περιγράφει διακομιστή, και γι’ αυτό ακριβώς φαίνεται εκτός θέσης.
connections {
office {
remote_addrs = vpn.example.com
local {
auth = eap-peap
aaa_id = auth.example.com
}
remote {
auth = pubkey
id = vpn.example.com
}
}
}
Αυτό το απόσπασμα δεν είναι πλήρης σύνδεση· υλικό εμπιστοσύνης, διαπιστευτήρια και πολιτικές θυγατρικών συνδέσεων πρέπει ακόμη να υπάρχουν. Η αντιγραφή του αυτολεξεί σε ένα λειτουργικό αρχείο θα αντικαθιστούσε ρυθμίσεις που χρειάζεστε ακόμη.
Γιατί το aaa_id ζει κάτω από το local
Το μπλοκ local περιγράφει τι κάνει αυτό το άκρο κατά την πιστοποίηση, συμπεριλαμβανομένης της μεθόδου που θα χρησιμοποιήσει και της ταυτότητας που περιμένει να παρουσιάσει το άλλο άκρο για αυτή τη μέθοδο. Τίποτα σε αυτό δεν ισχυρίζεται ότι ο διακομιστής AAA εκτελείται στο ίδιο μηχάνημα.
Η προεπιλογή κάνει την παγίδα οξύτερη. Όταν δεν έχει οριστεί ρητή τιμή, η αναμενόμενη ταυτότητα AAA ακολουθεί την απομακρυσμένη ταυτότητα, οπότε μια ανάπτυξη με ένα όνομα λειτουργεί και κρύβει τη διάκριση. Μια ρητή τιμή έχει σημασία μόνο όταν η ανάπτυξη EAP όντως τερματίζεται αλλού. Ο ορισμός της σε διαφορετικό όνομα χωρίς αυτόν τον λόγο δημιουργεί αποτυχία που ο διαχειριστής δεν μπορεί να αναπαραγάγει. Διαβάστε την ανάπτυξη πριν επινοήσετε δεύτερο όνομα.
Κρατήστε την τιμή ίδια με αυτό που πράγματι ισχυρίζεται το πιστοποιητικό του υπόβαθρου, συμπεριλαμβανομένης της μορφής του ονόματος. Μια τελεία στο τέλος ή ένας χαρακτήρας μπαλαντέρ που δεν καλύπτει τον κεντρικό υπολογιστή αρκεί για να αποτύχει ο έλεγχος.
Διεπαφές που δεν μπορούν να εκφράσουν τη διάσπαση
Ένα προφίλ NetworkManager δεν είναι η ίδια διεπαφή ρύθμισης με το swanctl. Το πρόσθετο πίσω από αυτό εκθέτει στενότερο σύνολο ελέγχων ταυτότητας, και ποιοι υπάρχουν εξαρτάται από την εγκατεστημένη έκδοση.
Αυτό έχει σημασία όταν η ανάπτυξη χρειάζεται πραγματικά δύο ονόματα. Ένα πεδίο με ετικέτα ταυτότητα διακομιστή μπορεί να ρυθμίζει το ένα επίπεδο και όχι το άλλο, οπότε ένα προφίλ μπορεί να φαίνεται σωστό και να αποτυγχάνει στον εσωτερικό έλεγχο. Ελέγξτε τι υποστηρίζει το εγκατεστημένο πρόσθετο πριν υποθέσετε ότι το προφίλ μπορεί να εκφράσει τη διάταξη. Αν δεν μπορεί, η επιλογή ανήκει στον διαχειριστή: διαφορετική διαδρομή παροχής ή διορθωμένος σχεδιασμός ταυτότητας διακομιστή. Το να αποδυναμώσετε το PEAP ή να δεχτείτε οποιοδήποτε όνομα αλλάζει την πολιτική πιστοποίησης αντί να τη διορθώνει.
Η εναλλακτική δεν είναι κάτι που επινοείται στον πελάτη. Ζητήστε τη υποστηριζόμενη διάταξη γραπτώς και κρατήστε την απάντηση μαζί με το προφίλ.
Ξεχωρίστε την αναντιστοιχία ταυτότητας από ένα ληγμένο πιστοποιητικό
Η αναντιστοιχία ονόματος και το ληγμένο πιστοποιητικό είναι διαφορετικές αποτυχίες, και το αρχείο καταγραφής τις ξεχωρίζει. Διαβάστε το μήνυμα πριν αποφασίσετε ποιο πεδίο να αλλάξετε.
swanctl --list-conns
swanctl --list-sas
journalctl -u strongswan -n 50 --no-pager
Ο ορισμός της επιδιωκόμενης ταυτότητας AAA δεν ανανεώνει πιστοποιητικό ούτε εδραιώνει εμπιστοσύνη στον εκδότη του, και η ανανέωση πιστοποιητικού δεν διορθώνει λάθος αναμενόμενο όνομα. Διαβάστε ποια επικύρωση απέτυχε πριν επεξεργαστείτε άλλο πεδίο ταυτότητας. Έπειτα επαναφορτώστε τη ρύθμιση και επιβεβαιώστε ότι η φορτωμένη σύνδεση δείχνει την τιμή που ορίσατε, γιατί ένα επεξεργασμένο αρχείο που δεν φορτώθηκε ποτέ δεν αλλάζει τίποτα. Γράψτε και τα δύο ονόματα και τα επίπεδά τους στις σημειώσεις ανάπτυξης.