Πλήρης σήραγγα του Access Server σε EC2: γιατί ένα πλαίσιο ελέγχου δεν αρκεί
Η απενεργοποίηση του ελέγχου πηγής και προορισμού σε EC2 είναι διόρθωση προώθησης, όχι πολιτική διαδικτύου για τον πελάτη. Ρυθμίστε πλήρη σήραγγα στο Access Server και μετά παρακολουθήστε τη διαδρομή εξόδου προς το AWS.
Η απενεργοποίηση του ελέγχου πηγής και προορισμού σε ένα στιγμιότυπο EC2 είναι η πιο επαναλαμβανόμενη απάντηση στις ερωτήσεις για την έξοδο του Access Server στο διαδίκτυο, και από μόνη της δεν κάνει τίποτα για τους πελάτες σας. Ο έλεγχος είναι περιορισμός προώθησης του AWS: κάνει το στιγμιότυπο να δέχεται πακέτα των οποίων η πηγή ή ο προορισμός δεν είναι η δική του διεύθυνση. Δεν λέει στον πελάτη του Access Server να στέλνει την κίνηση διαδικτύου μέσα από τη σήραγγα, δεν δημιουργεί διαδρομή προς τα πάνω και δεν προσθέτει NAT. Ο μύθος είναι ότι το πλαίσιο ελέγχου είναι η λειτουργία.
Τι ελέγχει πραγματικά ο έλεγχος
Κάθε διεπαφή δικτύου του EC2 απορρίπτει κίνηση που δεν απευθύνεται σε αυτήν, εκτός αν το στιγμιότυπο λειτουργεί ως δρομολογητής, συσκευή NAT ή πύλη VPN και εσείς απενεργοποιήσετε αυτόν τον έλεγχο. Η απενεργοποίηση δίνει άδεια προώθησης. Η άδεια δεν είναι διαμόρφωση: το στιγμιότυπο χρειάζεται ακόμη διαδρομή προς πύλη διαδικτύου ή συσκευή NAT, ο πίνακας δρομολόγησης του VPC χρειάζεται ακόμη την αντίστοιχη εγγραφή, οι ομάδες ασφαλείας πρέπει ακόμη να επιτρέπουν τη ροή, και ο διακομιστής πρέπει ακόμη να μεταφράζει ή να δρομολογεί την κίνηση επιστροφής.
Ελέγξτε την τρέχουσα τιμή με aws ec2 describe-instance-attribute --instance-id i-0123456789abcdef0 --attribute sourceDestCheck πριν αλλάξετε οτιδήποτε. Αν την αλλάξετε στην κονσόλα, αλλάξτε την επειδή το στιγμιότυπο προωθεί για άλλους, όχι επειδή ένας πελάτης δεν φτάνει στο διαδίκτυο.
Ο Access Server κατέχει την πολιτική δρομολόγησης του πελάτη
Στο Access Server 3, ανοίξτε το Access Controls και βρείτε την ενότητα Internet Access and DNS. Η επιλογή Internet Gateway προσφέρει πλήρη ή διαχωρισμένη σήραγγα· η πλήρης λέει στον πελάτη να δρομολογεί την προεπιλεγμένη κίνηση μέσα στο VPN, η διαχωρισμένη αφήνει την κίνηση διαδικτύου στην τοπική διαδρομή του πελάτη. Αποθηκεύστε και εφαρμόστε μέσω της ροής εργασίας του προϊόντος, μετά επανασυνδέστε έναν δοκιμαστικό πελάτη, γιατί η πολιτική παραδίδεται τη στιγμή της σύνδεσης.
Οι παλαιότερες εκδόσεις χρησιμοποιούν άλλα μενού και μερικές εκδόσεις Community του OpenVPN δεν έχουν αντίστοιχο έλεγχο. Ελέγξτε την εγκατεστημένη κύρια έκδοση πριν ψάξετε για οθόνη που δεν υπάρχει. Μετά επιβεβαιώστε τι έλαβε ο πελάτης: ένα προφίλ πλήρους σήραγγας πρέπει να εγκαθιστά προεπιλεγμένη διαδρομή μέσα από τη σήραγγα, και ένα προφίλ διαχωρισμένης δεν πρέπει.
Παρακολουθήστε το πακέτο μετά τη σήραγγα
Μόλις ο πελάτης στείλει κίνηση διαδικτύου στη σήραγγα, ο διακομιστής πρέπει να την προωθήσει και συνήθως να τη μεταφράσει. Ο Access Server διαχειρίζεται τους δικούς του κανόνες NAT και δρομολόγησης, οπότε διαβάστε την ενεργή διαμόρφωση αντί να προσθέτετε κανόνες Community OpenVPN στα παραγόμενα αρχεία· οι μη διαχειριζόμενοι κανόνες αντικαθίστανται ή συγκρούονται στην επόμενη ενημέρωση του προϊόντος. Το sudo iptables -t nat -L -n -v ή το αντίστοιχο του nftables δείχνει τι μεταφράζεται πραγματικά.
Η πλευρά του AWS είναι ξεχωριστή διαδρομή. Ένα στιγμιότυπο σε δημόσιο υποδίκτυο φτάνει απευθείας σε πύλη διαδικτύου και διατηρεί τη δημόσια διεύθυνση ή την ελαστική IP του. Ένα στιγμιότυπο σε ιδιωτικό υποδίκτυο χρειάζεται διαδρομή προς πύλη NAT ή στιγμιότυπο NAT, και η συσκευή NAT χρειάζεται τη δική της διαδρομή προς την πύλη διαδικτύου. Η σύνδεση πύλης διαδικτύου στο VPC δεν δίνει από μόνη της δημόσια διεύθυνση επιστροφής σε καμία ιδιωτική πηγή, γι αυτό η ίδια ρύθμιση του Access Server λειτουργεί σε ένα υποδίκτυο και αποτυγχάνει σιωπηλά σε άλλο.
Ελέγξτε τον πίνακα δρομολόγησης που σχετίζεται με το υποδίκτυο του στιγμιότυπου, όχι μόνο τον κύριο πίνακα του VPC. Οι συσχετίσεις υποδικτύων υπερισχύουν του κύριου πίνακα, και μια παλιά συσχέτιση είναι συνηθισμένος λόγος που μια λειτουργική διαμόρφωση σταματά μετά από ανακατασκευή.
Κρατήστε την έξοδο IP και το DNS χωριστά
Δοκιμάστε πρώτα ένα γραμματικό διεύθυνσης και μετά ένα όνομα, από την ίδια εφαρμογή πελάτη. Αν το curl -4 https://checkip.amazonaws.com επιστρέφει δημόσια διεύθυνση αλλά τα ονόματα υπολογιστών αποτυγχάνουν, η σήραγγα και η διαδρομή NAT λειτουργούν και το πρόβλημα είναι το DNS: ο resolver που ωθήθηκε, η κατάσταση του resolver στον πελάτη ή μια ομάδα ασφαλείας που μπλοκάρει τον resolver. Οι ρυθμίσεις DNS του Access Server βρίσκονται στην ίδια περιοχή Internet Access, αλλά ακολουθούν διαφορετική διαδρομή κώδικα.
Συγκρίνετε τη διεύθυνση που επιστράφηκε με την έξοδο που είχατε κατά νου. Αν είναι η δημόσια διεύθυνση του στιγμιότυπου, η κίνηση μεταφράζεται από το στιγμιότυπο· αν είναι διεύθυνση πύλης NAT, χρησιμοποιείται η διαδρομή του ιδιωτικού υποδικτύου. Και τα δύο μπορεί να είναι σωστά. Αυτό που δεν μπορείτε να συμπεράνετε είναι ότι ένα πρόγραμμα περιήγησης στον διακομιστή αποδεικνύει την προώθηση για τον πελάτη.
Μην αφήσετε ένα πλαίσιο ελέγχου να κλείσει την έρευνα
Το IPv6 είναι ξεχωριστή απόφαση. Μια πολιτική πλήρους σήραγγας για IPv4 δεν λέει τίποτα για το αν το IPv6 μεταφέρεται, μπλοκάρεται ή διαρρέει, και ένας πελάτης διπλής στοίβας μπορεί να συνεχίσει να χρησιμοποιεί την τοπική διαδρομή IPv6 ενώ το IPv4 περνά από τη σήραγγα. Δοκιμάστε την οικογένεια διευθύνσεων που πραγματικά σας ενδιαφέρει, και αποφασίστε ρητά αν η άλλη πρέπει να απενεργοποιηθεί.
Τέλος, δοκιμάστε την αποσυνδεδεμένη κατάσταση. Η επιλογή πλήρους σήραγγας περιγράφει την πολιτική δρομολόγησης όσο είστε συνδεδεμένοι, όχι τι συμβαίνει όταν πέσει η σήραγγα. Αν η απαίτηση είναι να μη διαφεύγει καμία κίνηση εκτός VPN, αυτό είναι ζήτημα kill-switch και τείχους προστασίας, και χρειάζεται τη δική του δοκιμή αντί για συμπέρασμα από τον πίνακα δρομολόγησης.