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

Δύο φάκελοι, μία φυσική ζεύξη

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

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

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

Παρακολουθήστε ένα αίτημα στο ταξίδι του

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

ip route get 203.0.113.7
ip -brief addr show
ip -4 addr show dev wg0

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

Έπειτα κοιτάξτε το πρώτο άλμα από μέσα στο φάκελο και συγκρίνετέ το με το πρώτο άλμα απ' έξω:

traceroute -n -m 3 203.0.113.7
sudo tcpdump -ni wg0 -c 5

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

Τρεις διευθύνσεις, και μόνο μία βλέπει ο ιστότοπος

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

AddressWhere it appearsWho can see it
Endpoint addressOuter header, the peer you connect toYour access network and the path to it
Inner tunnel addressInside the envelope, on the virtual interfaceThe peer, and anything the peer routes to
Exit addressSource of the packet that reaches the websiteThe website and its upstream

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

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

Πού ανοίγει ο φάκελος και τι επιβιώνει από αυτόν

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

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

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

Ελέγξτε τη διαδρομή που πήρε πραγματικά η εφαρμογή

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

getent hosts example.com
ip route get "$(getent hosts example.com | awk '{print $1; exit}')"
ss -tnp state established '( dport = :443 )'

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

Η αρχιτεκτονική ασφαλείας RFC 4301 περιγράφει την έκδοση στο επίπεδο IP αυτού του τυλίγματος για το IPsec, και η ίδια λογική επιπέδων ισχύει για το WireGuard και το OpenVPN. Μόλις μπορείτε να υποδείξετε το εσωτερικό πακέτο και το εξωτερικό πακέτο ως ξεχωριστά αντικείμενα, η περισσότερη συμπεριφορά του τούνελ παύει να είναι αινιγματική και γίνεται πίνακας δρομολόγησης που μπορείτε να διαβάσετε.

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