strongSwan σε EC2: κάντε το VPC να δρομολογεί το φορτίο εργασίας
Μια σήραγγα που λειτουργεί από την πύλη αποδεικνύει μόνο την πύλη. Δρομολογήστε το υποδίκτυο του φορτίου, ενεργοποιήστε την προώθηση στον επισκέπτη, διευρύνετε τους επιλογείς και μετά δοκιμάστε από αυτό.
Η σήραγγα είναι ενεργή, το στιγμιότυπο της πύλης μπορεί να κάνει ping στο απομακρυσμένο δίκτυο, και το στιγμιότυπο εφαρμογής δίπλα του δεν φτάνει πουθενά. Τίποτα δεν είναι χαλασμένο. Η δοκιμή που πέτυχε ξεκίνησε από τον κεντρικό υπολογιστή VPN, και ποτέ δεν ρώτησε αν αυτός ο κεντρικός υπολογιστής μπορούσε να μεταφέρει μια διαφορετική διεύθυνση προέλευσης μέσω της ίδιας σχέσης IPsec. Αυτός ο οδηγός κλείνει αυτό το κενό σε τέσσερα βήματα, με τη σειρά που κρατά κάθε αποτυχία ορατή.
Γράψτε πρώτα τις τέσσερις διευθύνσεις
Κάθε βήμα παρακάτω αναφέρεται σε αυτές, οπότε συμπληρώστε τις για τον δικό σας λογαριασμό πριν αγγίξετε έναν πίνακα δρομολόγησης.
VPC: 10.60.0.0/16
Gateway subnet: 10.60.1.0/24, gateway ENI address 10.60.1.10
Workload subnet: 10.60.2.0/24, application address 10.60.2.20
Remote network: 10.90.0.0/24
Το παράδειγμα προϋποθέτει μια εγκεκριμένη, λειτουργική σύνδεση IPsec βασισμένη σε πολιτική και μια ροή που διατηρεί την προέλευση. Αυτός δεν είναι ένας πελάτης απομακρυσμένης πρόσβασης με NAT που δανείζεται μία εκχωρημένη διεύθυνση, και αυτή η διαφορά καθορίζει αν πρέπει να αλλάξουν οι επιλογείς.
Βήμα 1: δώστε στο υποδίκτυο του φορτίου μια διαδρομή
Ο πίνακας δρομολόγησης που είναι πραγματικά συνδεδεμένος με το υποδίκτυο του φορτίου χρειάζεται μια διαδρομή για το απομακρυσμένο πρόθεμα που δείχνει στη διασύνδεση δικτύου της πύλης. Μια διαδρομή επισκέπτη που εγκαθίσταται μέσα στο στιγμιότυπο δεν είναι καταχώριση σε αυτόν τον πίνακα δρομολόγησης AWS, και καμία ποσότητα διαμόρφωσης strongSwan δεν θα δημιουργήσει μία.
Οι οδηγίες της AWS για δρομολόγηση μέσω συσκευής περιγράφουν στόχους διασύνδεσης δικτύου και την απαίτηση ελέγχου προέλευσης/προορισμού του στιγμιοτύπου που προωθεί. Περιορίστε αυτή την αλλαγή ελέγχου στον ρόλο της πύλης και αφήστε τα συνηθισμένα στιγμιότυπα εφαρμογών ήσυχα.
Μην αντικαταστήσετε την τοπική διαδρομή του VPC ή κάθε υπάρχουσα καταχώριση για να κάνετε χώρο για ένα εγκεκριμένο δίκτυο. Επιθεωρήστε τι είναι συνδεδεμένο και ενεργό, όχι τι δείχνει μια σελίδα κονσόλας για έναν πίνακα δρομολόγησης που κανείς δεν χρησιμοποιεί. Δύο πίνακες που μοιάζουν μπορεί να έχουν διαφορετικές συνδέσεις. Αυτός που μετράει είναι εκείνος στον οποίο είναι συνδεδεμένο το υποδίκτυο του φορτίου.
Βήμα 2: ενεργοποιήστε την προώθηση στον επισκέπτη
sysctl -w net.ipv4.ip_forward=1
# persist in /etc/sysctl.d/ and re-apply after reboot
Ο πυρήνας πρέπει να προωθεί και το τείχος προστασίας του κεντρικού υπολογιστή πρέπει να επιτρέπει τη διέλευση. Προσθέστε τους προβλεπόμενους κανόνες προώθησης για τα προθέματα του φορτίου και τα απομακρυσμένα αντί να δέχεστε τα πάντα, και επιβεβαιώστε ότι το υποδίκτυο της πύλης διατηρεί μια χρησιμοποιήσιμη διαδρομή μεταφοράς για την δική του κίνηση.
Οι ομάδες ασφαλείας είναι το σημείο όπου αυτό το βήμα συνήθως κολλάει. Μια ενδιάμεση συσκευή δεν κληρονομεί τη συμπεριφορά αναφοράς ομάδων ασφαλείας της άμεσης επικοινωνίας στιγμιοτύπων, οπότε ένας κανόνας που αντιγράφηκε από παράδειγμα διαχειριζόμενου Client VPN μπορεί να μην ταιριάξει ποτέ. Ελέγξτε την ομάδα ασφαλείας και το ACL του υποδικτύου στην πραγματική διαδρομή, και προς τις δύο κατευθύνσεις.
Βήμα 3: διευρύνετε τους επιλογείς στις πραγματικές προελεύσεις
Μια πολιτική που καλύπτει μόνο το 10.60.1.10/32 στην πλευρά της AWS εξηγεί μια επιτυχία που ξεκίνησε από την πύλη χωρίς να καλύπτει το 10.60.2.20. Μια διαδρομή προς τον απομακρυσμένο προορισμό δεν διευρύνει έναν επιλογέα κίνησης, και αυτό είναι το δεύτερο μισό της ίδιας έκπληξης.
swanctl --list-sas
# read the installed CHILD-SA local and remote traffic selectors
Αν ο συμφωνημένος σχεδιασμός προστατεύει ολόκληρο το VPC, και τα δύο μέρη πρέπει να αποδεχτούν τα 10.60.0.0/16 και 10.90.0.0/24. Αν προστατεύει ένα μόνο φορτίο, χρησιμοποιήστε σκόπιμα αυτό το στενότερο πρόθεμα. Σε κάθε περίπτωση, επιθεωρήστε την εγκατεστημένη πολιτική CHILD-SA, γιατί μια διαμόρφωση που επεξεργαστήκατε και ένα μέρος που τη στένεψε διαφορετικά δεν είναι η ίδια συμφωνία.
Ο απομακρυσμένος χώρος πρέπει επίσης να δρομολογεί τις απαντήσεις για τις διατηρημένες προελεύσεις του VPC πίσω μέσω της προβλεπόμενης πύλης IPsec. Διατηρήστε την υποστηριζόμενη εξαίρεση NAT για την προστατευμένη κίνηση όπου υπάρχουν άλλοι κανόνες NAT προέλευσης· η μετάφραση ενός μη εγκεκριμένου φορτίου σε μια επιτρεπόμενη διεύθυνση κεντρικού υπολογιστή είναι άλλο συμβόλαιο ταυτότητας, όχι μια συντόμευση προς την πρόσβαση που θέλατε.
Βήμα 4: επαληθεύστε και, αν χρειαστεί, επαναφέρετε
Δοκιμάστε από το ίδιο το φορτίο με μια νέα επιτρεπόμενη λειτουργία εφαρμογής και μετά επαναλάβετε με έναν προορισμό που θα έπρεπε να εξαιρεθεί. Καταγράψτε τη διεύθυνση προέλευσης που βλέπει η απομακρυσμένη υπηρεσία και τη διαδρομή επιστροφής που χρησιμοποιεί. Ένα ping στην πύλη ή μια πράσινη κατάσταση IKE δεν είναι αυτή η δοκιμή.
Αν το φορτίο εξακολουθεί να αποτυγχάνει ενώ η πύλη λειτουργεί, πηγαίνετε πίσω στα βήματα με τη σειρά: επιλογέας, μετά προώθηση και ομάδες ασφαλείας, μετά ο συνδεδεμένος πίνακας δρομολόγησης. Κάθε ένα έχει διαφορετικό σύμπτωμα, και το μάντεμα παραλείπει αυτό που είναι πραγματικά λάθος.
Η επαναφορά αντιστρέφει την ίδια σειρά. Αφαιρέστε τη διαδρομή του υποδικτύου του φορτίου τελευταία, αφού επαναφέρετε τους προηγούμενους επιλογείς, ώστε να μην αφήσετε ένα υποδίκτυο να δείχνει σε μια πύλη που δεν προστατεύει πλέον τις προελεύσεις του. Η αυτοφιλοξενία μπορεί να εξυπηρετήσει περισσότερα από τον κεντρικό υπολογιστή της πύλης όταν ισχύουν αυτά τα συμβόλαια, και το Site-to-Site VPN που διαχειρίζεται η AWS είναι ένα διαφορετικό μοντέλο λειτουργίας όπου το strongSwan μπορεί να βρίσκεται στην πλευρά της πύλης πελάτη.