Ένα λειτουργικό προφίλ IKEv1 από παλιότερο οδηγό προσγειώνεται στο Ubuntu 24.04, και η πρώτη προσπάθεια αποτυγχάνει επειδή ο δαίμονας δεν διάβασε ποτέ το αρχείο. Η συνήθης αντίδραση είναι να επεξεργαστείτε ξανά το προφίλ. Το πραγματικό ερώτημα είναι ποιο frontend του strongSwan είναι εγκατεστημένο και ποιο χρησιμοποιεί η εκτελούμενη υπηρεσία. Όσο αυτό δεν απαντηθεί, κάθε αλλαγή στοχεύει έναν φορτωτή που μπορεί να μην υπάρχει.

Δύο αρχεία, δύο φορτωτές, ένας δαίμονας

Η παλιά διάταξη starter διαβάζει το ipsec.conf και παραδίδει τις συνδέσεις στο charon μέσω της παλιάς ενσωμάτωσης διαχείρισης. Το επιχειρησιακό σημείο εισόδου της είναι η εντολή ipsec.

Η διάταξη swanctl φορτώνει ορισμούς μέσω VICI, διαβάζει το swanctl.conf και καθοδηγείται από την εντολή swanctl. Ο δαίμονας charon που είναι εγγενής στο systemd ενσωματώνεται με αυτή την προσέγγιση.

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

Διαβάστε τα εγκατεστημένα πακέτα και τις μονάδες

Ξεκινήστε σε λειτουργία μόνο ανάγνωσης. Τα ονόματα πακέτων στο Ubuntu 24.04 είναι ξεχωριστά: strongswan-starter, strongswan-swanctl και charon-systemd. Ένα πακέτο που λείπει είναι χρήσιμη πληροφορία, όχι οδηγία να το εγκαταστήσετε.

Καταγράψτε τα πακέτα και τις μονάδες σε ένα πέρασμα:

dpkg-query -W strongswan-starter strongswan-swanctl charon-systemd
systemctl list-unit-files '*strongswan*'

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

Αν η ενεργή μονάδα είναι strongswan-starter, το αρχείο που μετράει είναι το ipsec.conf. Αν είναι charon-systemd με swanctl, το ipsec.conf είναι απλή διακόσμηση.

Χρησιμοποιήστε την αντίστοιχη διαδρομή ελέγχου

Κάθε frontend έχει τη δική του εικόνα για τις συνδέσεις και τους συσχετισμούς. Το swanctl --list-conns δείχνει τους φορτωμένους ορισμούς και το swanctl --list-sas τους ενεργούς συσχετισμούς. Η παλιά διαδρομή χρησιμοποιεί το ipsec statusall.

Η ανάμειξή τους παράγει παραπλανητικά σφάλματα. Ένας υποδοχέας VICI που λείπει ή ένα αίτημα ελέγχου που απορρίφθηκε είναι πρόβλημα διαδρομής διαχείρισης, όχι απόδειξη ότι ο ομότιμος απέρριψε την αυθεντικοποίηση.

Διαβάστε την εικόνα που ανήκει στον εκτελούμενο δαίμονα, και μετά ερμηνεύστε το αποτέλεσμα. Αν η σύνδεση απουσιάζει από αυτή την εικόνα, το πρόβλημα είναι η φόρτωση, όχι η διαπραγμάτευση.

Η μορφή δεν είναι η έκδοση IKE

Ένα παλιό προφίλ επιλέγει IKEv1 με keyexchange=ikev1. Μια σύνδεση swanctl χρησιμοποιεί ρύθμιση έκδοσης, όπου το 1 επιλέγει IKEv1. Αυτά είναι δύο λεξιλόγια για την ίδια ιδέα, όχι μετατροπή.

Οι διευθύνσεις του ομοτίμου, οι τοπικές και απομακρυσμένες ταυτότητες, οι πηγές διαπιστευτηρίων, οι προτάσεις και οι επιλογείς child πρέπει να αντιστοιχιστούν σκόπιμα. Η επικόλληση ενός μπλοκ left/right στη σύνταξη του swanctl δεν κάνει τίποτα από αυτά.

Η αλλαγή μόνο της έκδοσης πρωτοκόλλου είναι η πιο συνηθισμένη μισή μετανάστευση. Παράγει ένα αρχείο που φορτώνεται και μετά αποτυγχάνει στην αυθεντικοποίηση για λόγους άσχετους με την έκδοση. Το ίδιο το IKEv1 έχει καταργηθεί από το RFC 9395, οπότε ένας υπάρχων ομότιμος που το απαιτεί ακόμη αξίζει τεκμηριωμένο περιορισμό συμβατότητας και διαδρομή μετανάστευσης, όχι νέα προεπιλογή.

Ελέγξτε τον φορτωτή πριν αγγίξετε το προφίλ

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

Οι δύο διαδρομές ελέγχου απαντούν άμεσα στο ερώτημα φόρτωσης:

swanctl --list-conns
ipsec statusall

Μόνο μία από αυτές τις εντολές ανήκει στον κεντρικό σας υπολογιστή. Το να εκτελέσετε και τις δύο και να συγκρίνετε την έξοδο είναι τρόπος να ανακαλύψετε ποια σας λέει ψέματα, όχι διαγνωστική μέθοδος.

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

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