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

Διαβάστε την αποτυχία στο σωστό επίπεδο

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

dig +short db.internal.example
nc -vz db.internal.example 5432

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

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

Χωρίστε τη σήραγγα από τη διαδρομή

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

ip route get 10.20.40.15
ip addr show tun0

Μια διαδρομή που δείχνει στη διεπαφή της σήραγγας είναι απαραίτητη, αλλά όχι αρκετή, γιατί η απέναντι πλευρά πρέπει ακόμη να δεχτεί την κίνηση.

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

Ταιριάξτε την ομάδα ασφαλείας με την πραγματική πηγή

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

aws ec2 describe-security-groups --group-ids sg-0123456789abcdef0 \
  --query 'SecurityGroups[].IpPermissions'

Ένας κανόνας για τη διεύθυνση σπιτιού ενός μόνο φορητού υπολογιστή είναι πρόβλημα συντήρησης και όχι σχεδιασμός πρόσβασης.

Όταν στην πορεία βρίσκεται VPN πελάτη ή πύλη NAT, η βάση δεδομένων μπορεί να βλέπει τη διεύθυνση του μεταφραστή αντί για τη διεύθυνση σήραγγας του προγραμματιστή. Γι’ αυτό ένας κανόνας αντιγραμμένος από μια λειτουργική ρύθμιση οχύρωσης μπορεί να αποτύχει για έναν φορητό υπολογιστή: οι δύο διαδρομές φτάνουν από διαφορετικές πηγές, αν και οι δύο φαίνονται εσωτερικές.

Προτιμήστε έναν στενό δρόμο από έναν φαρδύ

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

ssh -N -L 5432:db.internal.example:5432 bastion.internal.example

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

Η επιλογή ανάμεσα σε πλήρη σήραγγα και στενή προώθηση είναι απόφαση για το εύρος, όχι για θέατρο ασφαλείας.

Αφήστε πίσω μια πορεία που επαναλαμβάνεται

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

Έπειτα δοκιμάστε μία φορά την αρνητική περίπτωση: ένας πελάτης έξω από την εγκεκριμένη πηγή πρέπει ακόμη να απορρίπτεται.

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

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