Οι άνθρωποι ρωτούν πού σταματά ένα AWS Site-to-Site VPN να προστατεύει το πακέτο και περιμένουν μία απάντηση: στην πύλη. Η χρήσιμη εκδοχή αυτής της απάντησης ονομάζει ποια πύλη, γιατί μια εικονική ιδιωτική πύλη και μια πύλη διέλευσης είναι διαφορετικές διατάξεις με διαφορετικά αντικείμενα προσάρτησης, και ο ελεγκτής που υποθέτει τη λάθος χτίζει το υπόλοιπο της αξιολόγησης πάνω σε ένα διάγραμμα που δεν υπάρχει. Εκτελέστε τους τρεις ελέγχους παρακάτω με τη σειρά. Καθένας είτε επιβεβαιώνει το όριο είτε σας λέει ότι η προηγούμενη απάντηση αφορούσε διαφορετικό πόρο.

Ονομάστε τα τρία άκρα πριν αξιολογήσετε οτιδήποτε

Μια επισκόπηση κρυπτογράφησης αυτής της διαδρομής χρειάζεται τρία ονομασμένα πράγματα: την πύλη πελάτη, τον στόχο AWS VPN που τερματίζει το IPsec και το άκρο εφαρμογής που λαμβάνει το εσωτερικό πακέτο. Γράψτε τα με τα αναγνωριστικά πόρων τους πριν ανοίξετε έστω μία σελίδα κονσόλας, γιατί ό,τι ακολουθεί είναι δήλωση για ένα από αυτά τα τρία.

Η πύλη πελάτη είναι δική σας και η διαμόρφωσή της είναι ορατή σε εσάς. Ο στόχος AWS είναι διαχειριζόμενος πόρος, και το λάθος είναι να τον υποθέσετε: μια σύνδεση VPN μπορεί να προσαρτηθεί σε μια εικονική ιδιωτική πύλη ή απευθείας σε μια πύλη διέλευσης, και κανένα δεν συνεπάγεται το άλλο. Το τρίτο άκρο είναι αυτό που οι άνθρωποι παραλείπουν, και είναι το μόνο που απαντά στο πραγματικό ερώτημα για τα δεδομένα της εφαρμογής.

Έλεγχος 1: ποια πύλη τερματίζει στην πραγματικότητα τη σήραγγα

Και οι δύο διατάξεις υποστηρίζονται και ο οδηγός αρχιτεκτονικής του Site-to-Site VPN τις περιγράφει δίπλα δίπλα, οπότε ρωτήστε το API αντί για ένα διάγραμμα που συχνά είναι ενός έτους. Ένα ερώτημα μόνο για ανάγνωση σε μία σύνδεση επιστρέφει τα πεδία στόχου VPN:

aws ec2 describe-vpn-connections --region eu-west-1   --vpn-connection-ids vpn-0123456789abcdef0   --query 'VpnConnections[0].{VGW:VpnGatewayId,TGW:TransitGatewayId,CGW:CustomerGatewayId,Category:Category}'

Το διακριτικό είναι το TransitGatewayId, όχι το VpnGatewayId. Μια σύνδεση με κενό TransitGatewayId τερματίζει σε αυτόνομη εικονική ιδιωτική πύλη, ενώ μια σύνδεση με αυτό το πεδίο ορισμένο τερματίζει σε προσάρτηση VPN πύλης διέλευσης, και το VpnGatewayId μπορεί να παραμένει συμπληρωμένο σε αυτή την περίπτωση γιατί μπορεί να ονομάζει την πύλη υποστήριξης της προσάρτησης. Διαβάστε πρώτα το πεδίο TGW και μετά επιβεβαιώστε τον τύπο προσάρτησης από τη λίστα προσαρτήσεων και όχι από όνομα πεδίου, γιατί μια προσάρτηση VPC σε αυτή την πύλη διέλευσης δεν είναι η προσάρτηση VPN. Το να βρείτε το στιγμιότυπο προορισμού σε ένα συνδεδεμένο VPC δεν σας λέει τίποτα για το ποια προσάρτηση VPN μετέφερε το πακέτο.

Όσο είστε εκεί, ελέγξτε τις σήραγγες. Η σύνδεση μεταφέρει δύο σήραγγες IPsec για πλεονασμό, και μια σύνδεση της οποίας η δεύτερη σήραγγα δεν ανέβηκε ποτέ είναι πραγματικό εύρημα για τη διαθεσιμότητα, ακόμη και αν δεν αλλάζει τίποτα στο όριο της κρυπτογράφησης:

aws ec2 describe-vpn-tunnels --region eu-west-1   --filters Name=vpn-connection-id,Values=vpn-0123456789abcdef0   --query 'VpnTunnels[].{Outside:OutsideIpAddress,State:State,Status:Status}'

Έλεγχος 2: τι μεταφέρει ακόμη το εσωτερικό πακέτο

Μόλις τερματιστεί το IPsec, το AWS προωθεί το αποκρυπτογραφημένο πακέτο με τη διαδρομή που του ταίριαζε. Από εκείνο το σημείο η κίνηση είναι συνηθισμένη κίνηση VPC, και η προστασία του VPN έχει τελειώσει. Αυτό δεν είναι κενό στην υπηρεσία· είναι το νόημα του ορίου, και το στοιχείο της λίστας ελέγχου είναι να το πείτε καθαρά αντί να αφήσετε το "το VPN είναι κρυπτογραφημένο" να σταθεί στη θέση του "τα δεδομένα είναι κρυπτογραφημένα από άκρο σε άκρο".

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

Η συνηθισμένη υπερδιόρθωση είναι να συμπεράνουμε ότι ό,τι βρίσκεται πίσω από την πύλη είναι εκτεθειμένο. Δεν είναι. Η μεταφορά υπηρεσίας, η κρυπτογράφηση αποθήκευσης και το TLS εφαρμογής είναι ξεχωριστοί μηχανισμοί με ξεχωριστούς όρους, και ο καθένας πρέπει να αξιολογείται με τους δικούς του όρους αντί να συνάγεται από το σχήμα του VPN. Μια καταγραφή ροής που δείχνει ACCEPT αποδεικνύει ότι η δρομολόγηση λειτούργησε και δεν λέει τίποτα για την εμπιστευτικότητα, που είναι ακριβώς το λάθος που υπάρχει αυτή η λίστα για να αποτρέπει.

Έλεγχος 3: τι τερματίζει το TLS πίσω από την πύλη

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

Δοκιμάστε το άκρο που πραγματικά σας ενδιαφέρει από μέσα στο VPC, με το όνομα που χρησιμοποιεί η εφαρμογή και όχι με μια IP που επιλύσατε μία φορά:

openssl s_client -connect internal.example:443 -servername internal.example -verify_return_error

Επαναλάβετε το για κάθε άλμα από το οποίο περνά το αίτημα. Αν η απάντηση διαφέρει μεταξύ του ονόματος προς τον πελάτη και του ονόματος του backend, βρήκατε ακριβώς το τμήμα που δεν κάλυψε ποτέ το VPN, και αυτό είναι το εύρημα που πρέπει να καταγραφεί.

Καταγράψτε το αποτέλεσμα ως τμήματα, όχι ως ετυμηγορία

Η έξοδος αυτής της λίστας ελέγχου είναι ένας μικρός πίνακας με μία γραμμή ανά τμήμα: πύλη πελάτη προς στόχο AWS VPN, πύλη προς φόρτο εργασίας, φόρτος εργασίας προς αποθήκη δεδομένων και κάθε άλμα διαμεσολαβητή ενδιάμεσα. Κάθε γραμμή λέει τι το προστατεύει και από τι εξαρτάται αυτή η προστασία. Το "κρυπτογραφημένο" χωρίς μηχανισμό και χωρίς άκρο δεν είναι γραμμή.

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

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

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