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

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

Δύο υπηρεσίες σε έναν κεντρικό υπολογιστή δεν είναι διαδρομή διέλευσης

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

Γι' αυτό το ερώτημα σχεδιασμού είναι ερώτημα δυνατότητας. Ή το εγκατεστημένο προϊόν έχει τεκμηρωμένο ρόλο που προωθεί κίνηση για άλλα δίκτυα, ή η λειτουργία διέλευσης ανήκει κάπου εντελώς αλλού.

Ποιος ρόλος του Cloudflare επιτρέπεται να προωθεί

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

QuestionWhat has to answer it
Does the installed product forward packets from other hosts?A documented routing or connector role, not a device mode
Which prefixes does the connector advertise?Its own configuration and status output
Does the server's own transport still take the old path?ip route get for the endpoint, before and after
Do replies return through the same path?Connection tracking counters on the forward rule

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

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

Κρατήστε το εξωτερικό τούνελ ανεξάρτητο από τη νέα διαδρομή

Τη στιγμή που προσθέτετε προεπιλεγμένη διαδρομή προς τη νέα διεπαφή, η δική του εξερχόμενη κίνηση του διακομιστή αρχίζει να ανταγωνίζεται γι' αυτήν, και αυτό περιλαμβάνει τις απαντήσεις προς τους πελάτες OpenVPN και τη συνεδρία SSH σας προς το μηχάνημα. Το σύνηθες σύμπτωμα είναι ένα τούνελ που εγκαθίσταται και μετά πεθαίνει, ή ένας διαχειριστής κλειδωμένος έξω ενώ η αλλαγή φαίνεται να έχει δουλέψει. Συγκρίνετε το ip route get για το τελικό σημείο πριν και μετά, και χρησιμοποιήστε δρομολόγηση βάσει πολιτικής ή διαδρομή προς τον κεντρικό υπολογιστή για να κρατήσετε τη δική του μεταφορά του διακομιστή εκεί που ήταν. Εκτελέστε αυτή τη σύγκριση από το ίδιο το μηχάνημα, γιατί η δική του άποψη του διακομιστή για τη διαδρομή του είναι αυτή που μετράει.

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

Περιορίστε την προώθηση και τη μετάφραση σε μία ροή

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

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

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

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