Πώς να δώσετε σε ένα δοκιμαστικό LAN τη δική του έξοδο WireGuard
Περιορίστε ένα LAN σε έξοδο WireGuard με αποκλειστικό πίνακα δρομολόγησης και έναν απρόσιτο φύλακα, ενώ η πύλη κρατά την κανονική προεπιλεγμένη διαδρομή WAN.
Τρία σχέδια λύνουν το ίδιο εργαστηριακό πρόβλημα: ένα μικρό LAN πρέπει να βγει μέσα από έναν ομότιμο WireGuard, ενώ η ίδια η πύλη κρατά τη συνηθισμένη ανάντη ζεύξη της. Η δελεαστική συντόμευση είναι να μετακινήσετε την προεπιλεγμένη διαδρομή του δρομολογητή μέσα στη σήραγγα, που όμως σπάει την ίδια τη διαδρομή διαχείρισης του μηχανήματος και ό,τι άλλο προωθεί. Η ενδιαφέρουσα επιλογή είναι δρομολόγηση κατά πολιτική περιορισμένη σε μία διεπαφή και ένα πρόθεμα. Διαλέξτε ανάμεσά τους απαντώντας τρεις ερωτήσεις για το μηχάνημα που πραγματικά έχετε.
Αποφασίστε πού ζει η έξοδος
Πρώτη ερώτηση: προωθεί αυτός ο κεντρικός υπολογιστής και για κάτι άλλο; Μια αποκλειστική εργαστηριακή πύλη μπορεί να ζήσει με πολιτική προώθησης που απορρίπτει εξ ορισμού. Ένας δρομολογητής με υποχρεώσεις παραγωγής δεν μπορεί, και το να στρώσετε ένα ανταγωνιστικό σύνολο κανόνων πάνω από ένα διαχειριζόμενο τείχος προστασίας είναι ακριβώς ο τρόπος με τον οποίο προγραμματίζονται οι διακοπές. Δεύτερη: μπορείτε να έχετε δύο αντικείμενα πολιτικής και τη σειρά τους ανάμεσα σε επανεκκινήσεις; Τρίτη: ο ομότιμος που έχετε εξουσιοδοτεί τη διεύθυνση προέλευσης της σήραγγάς σας και προσφέρει έξοδο στο διαδίκτυο; Ένας ομότιμος που εκθέτει μόνο ένα ιδιωτικό δίκτυο είναι άλλο προϊόν, και καμία τοπική αλλαγή δρομολόγησης δεν το διορθώνει. Αν οποιαδήποτε απάντηση είναι όχι, βάλτε την έξοδο σε έναν χώρο ονομάτων ή σε ένα πρόχειρο εικονικό μηχάνημα.
Ο χώρος ονομάτων ή το εικονικό μηχάνημα κοστίζει μνήμη και σας δίνει καθαρή ακτίνα έκρηξης. Η δρομολόγηση κατά πολιτική κοστίζει δύο κανόνες και σας αφήνει ένα μηχάνημα για αποσφαλμάτωση.
Διαλέξτε την έξοδο που εξουσιοδοτεί την προέλευσή σας
Οι περισσότερες αστοχίες σε αυτό το εργαστήριο συμβαίνουν πριν υπάρξει έστω και ένας κανόνας τείχους προστασίας. Ο χειριστής της εξόδου πρέπει να δεχτεί τη διεύθυνση προέλευσης που φέρουν τα πακέτα σας μετά τη μετάφραση, και σε αυτό το σχέδιο αυτή είναι η διεύθυνση της σήραγγας και όχι το πρόθεμα του LAN. Γι' αυτό η συγκάλυψη ανήκει στο σχέδιο από την αρχή και όχι ως ύστερη προσθήκη.
Επιβεβαιώστε τρία πράγματα με τον χειριστή: ο ομότιμος εξουσιοδοτεί τη διεύθυνση της σήραγγάς σας, προωθεί IPv4 αντί να τερματίζει στον εαυτό του, και εφαρμόζει NAT εξόδου. Χωρίς το πρώτο, τα πακέτα σας φτάνουν και εξαφανίζονται. Χωρίς το τρίτο, φεύγουν με ιδιωτική προέλευση και πεθαίνουν στο επόμενο άλμα. Έπειτα ελέγξτε ότι το wg-quick δεν εγκαθιστά δική του προεπιλεγμένη διαδρομή, κάτι που εμποδίζει το Table = off· αυτή η ρύθμιση καταστέλλει τη δημιουργία διαδρομών, όχι τους ελέγχους AllowedIPs του ομότιμου ούτε τον χειρισμό DNS του.
Δύο αντικείμενα πολιτικής κάνουν την καθοδήγηση
Η καθοδήγηση χρειάζεται πίνακα και κανόνα. Ο πίνακας κρατά δύο διαδρομές: το πρόθεμα του LAN έξω από τη διεπαφή LAN και μια προεπιλεγμένη έξω από τη σήραγγα. Ο κανόνας στέλνει την κίνηση που φτάνει στη διεπαφή LAN και φέρει αυτό το πρόθεμα μέσα στον πίνακα. Χρησιμοποιήστε τον επιλογέα iif μαζί με την αντιστοίχιση προέλευσης, γιατί τα δικά της πακέτα WireGuard της πύλης δημιουργούνται τοπικά και δεν αντιστοιχίζονται ποτέ με εισερχόμενη διεπαφή.
Ο φύλακας έρχεται πριν από την αναζήτηση, όχι μετά. Αυτή η σειρά είναι ολόκληρη η ιδιότητα ασφαλείας του σχεδίου.
Ο φύλακας είναι δεύτερος κανόνας στον ίδιο επιλογέα με ετυμηγορία unreachable. Δώστε του υψηλότερη αριθμητική προτεραιότητα ώστε η αναζήτηση να κερδίζει ακόμη όσο η σήραγγα είναι σηκωμένη. Όταν η διαδρομή της σήραγγας εξαφανιστεί, η αναζήτηση δεν επιστρέφει τίποτα και ο φύλακας σταματά την έρευνα αντί να την αφήσει να πέσει στην προεπιλεγμένη διαδρομή WAN του κύριου πίνακα.
ip rule add from 192.168.50.0/24 iif lan0 lookup 51861 pref 1000
ip rule add from 192.168.50.0/24 iif lan0 unreachable pref 1001
ip route add table 51861 default dev wg0
Κλείστε το κενό υποχώρησης πριν το ανοίξετε
Εγκαταστήστε πρώτα τον φύλακα και μετά την αναζήτηση. Κάνοντας το αντίστροφο μένει ένα παράθυρο δευτερολέπτων στο οποίο η κίνηση ενός δοκιμαστικού πελάτη μπορεί να φτάσει στην ανάντη ζεύξη.
Το φίλτρο συμπληρώνει την εικόνα. Στο άγκιστρο forward δεχτείτε την κατεύθυνση από το LAN προς τη σήραγγα για το δοκιμαστικό πρόθεμα και την καθιερωμένη κατεύθυνση επιστροφής, και μετά απορρίψτε όλα τα άλλα· το NAT για αυτό το πρόθεμα πάνω στη διεπαφή της σήραγγας πηγαίνει στο postrouting. Το να αφήσετε το policy drop στην αλυσίδα προώθησης είναι αυτό που μετατρέπει μια απούσα διαδρομή σε σιωπή αντί σε διαρροή. Το φιλτράρισμα αντίστροφης διαδρομής χρειάζεται χαλαρή λειτουργία στη διεπαφή της σήραγγας, γιατί μια δημόσια προέλευση που φτάνει αποκαψυκωμένη έχει την καλύτερη αντίστροφη διαδρομή της στην πλευρά του WAN. Το Linux παίρνει τη μεγαλύτερη από την τιμή all και την τιμή ανά διεπαφή, άρα το να ορίσετε τη διεπαφή της σήραγγας δεν είναι το ίδιο με το να αποδυναμώσετε την επικύρωση παντού.
Αποδείξτε το με την περίπτωση αστοχίας
Ρωτήστε τον πυρήνα μια ακριβή ερώτηση ονομάζοντας τη διεύθυνση προέλευσης του πελάτη και τη διεπαφή από την οποία φτάνει. Μια αναζήτηση χωρίς και τα δύο απαντά σε άλλη ερώτηση και θα φαίνεται σωστή και στις δύο περιπτώσεις. Έπειτα κοιτάξτε τους μετρητές του τείχους προστασίας, την κατάσταση μεταφοράς του ομότιμου και την υπηρεσία του ίδιου του πελάτη.
Δοκιμάστε σωστά την αφαίρεση. Σταματήστε τη σήραγγα αφήνοντας τον κανόνα και το φίλτρο στη θέση τους: ο πελάτης πρέπει να κολλήσει και η δική της κίνηση της πύλης πρέπει να συνεχίσει να δουλεύει. Μετά σταματήστε τον ομότιμο χωρίς να αγγίξετε την τοπική διεπαφή, και αυτή είναι η περίπτωση που πιάνει σχέδια που βασίζονται μόνο στην παρουσία της διαδρομής. Τέλος επανεκκινήστε και ελέγξτε ξανά τη σειρά των κανόνων, γιατί ένα άγκιστρο αποσυναρμολόγησης που αφαιρεί τον φύλακα παραδίδει ολόκληρο το σχέδιο πίσω στον κύριο πίνακα. Καταγράψτε τον αριθμό του πίνακα, τις προτεραιότητες και τα ονόματα των διεπαφών στο δελτίο αλλαγής, γιατί ο επόμενος που θα προσθέσει κανόνα είναι αυτός που θα το σπάσει.