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

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

Η δέσμευση ορίζει διεύθυνση προέλευσης και τίποτε άλλο

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

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

Δώστε στη σήραγγα τον δικό της πίνακα

Το wg-quick εγκαθιστά διαδρομές όπου του πει το προφίλ. Η προσθήκη Table = 40 κάτω από το [Interface] τις μετακινεί στον πίνακα 40 αντί για τον κύριο πίνακα. Σηκώστε τη διεπαφή και επιβεβαιώστε ότι έφτασαν: το ip -4 route ls table 40 πρέπει να δείξει τις διαδρομές της σήραγγας, και το ip -4 route get 10.66.127.142 δείχνει πώς ο πυρήνας επιλύει αυτή τη στιγμή μία από αυτές. Με τις διαδρομές στον δικό τους πίνακα, ο κύριος πίνακας συνεχίζει να λειτουργεί για όλα τα υπόλοιπα.

Κάντε το ίδιο για το IPv6 αντί να ταιριάζετε ένα ευρύ πρόθεμα. Το ip -6 rule add from fd00::2/128 lookup 40 καρφιτσώνει μία διεύθυνση· το fc00::/8 μπορεί να συγκρουστεί με άλλες διεπαφές στον κεντρικό υπολογιστή και να παραγάγει κανόνα που ταιριάζει περισσότερα από το επιδιωκόμενο.

Προσθέστε τον κανόνα προέλευσης και παρακολουθήστε τους μετρητές

Έπειτα συνδέστε τα δύο μισά: ip -4 rule add from 10.66.127.142/32 lookup 40, με την ίδια διεύθυνση προσαρτημένη στη διεπαφή WireGuard. Βάλτε και τους δύο κανόνες στο PostUp ώστε μια επανασύνδεση να τους επαναφέρει. Επαληθεύστε με πραγματικό αίτημα και όχι με ρύθμιση: το ip route get 1.1.1.1 from 10.66.127.142 πρέπει να ονομάζει τη συσκευή της σήραγγας, και το curl --interface wg0 ifconfig.me πρέπει να αναφέρει τη διεύθυνση της σήραγγας αντί για την οικιακή.

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

Η αντίστροφη περίπτωση: κρατήστε το SSH έξω από τη σήραγγα

Το αντίθετο πρόβλημα είναι εξίσου συχνό: το wg-quick κατέχει την προεπιλεγμένη διαδρομή και η συνεδρία SSH προς τον διακομιστή πεθαίνει στη μέση. Οι κανόνες του βρίσκονται σε χαμηλό αριθμό προτεραιότητας, οπότε μια εξαίρεση πρέπει να αξιολογηθεί νωρίτερα από αυτούς. Το ip rule add dport 22 ipproto tcp table main priority 123 το κάνει αυτό σε πρόσφατο iproute2· όπου ο επιλογέας δεν είναι διαθέσιμος, σημάνετε τη ροή στο nftables και ταιριάξτε το σημάδι.

Ελέγξτε και τη διαδρομή της απάντησης. Μια συνεδρία SSH που εγκαθίσταται και μετά σωπαίνει έχει συνήθως ασύμμετρη δρομολόγηση: η μία κατεύθυνση φεύγει από τη σήραγγα και η άλλη από τη φυσική διεπαφή. Το ip route get για τη διεύθυνση του διακομιστή σας λέει προς τα πού θα πήγαινε η απάντηση.

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

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