Όταν η σήραγγα ζει στον δρομολογητή, το μηχάνημα που εκτελεί το πρόγραμμα περιήγησης δεν έχει καθόλου διεπαφή σήραγγας. Ζητήστε από αυτό το μηχάνημα τις τοπικές διευθύνσεις του και θα πάρετε μια ιδιωτική διεύθυνση LAN και μια επιστροφή, τίποτα που να θυμίζει διεύθυνση VPN. Παρ’ όλα αυτά, ένας διακομιστής STUN στην άλλη πλευρά μπορεί ακόμη να αναφέρει κάτι ουσιαστικό για τη διαδρομή, και το τι αναφέρει εξαρτάται εξ ολοκλήρου από το πώς δρομολογήθηκε και μεταφράστηκε εκείνο το συγκεκριμένο αίτημα.

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

Δύο συσκευές, δύο σύνολα διεπαφών

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

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

ip route get 198.51.100.20
ip -6 route get 2001:db8::20
wg show wg0 allowed-ips

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

Τι επιτρέπεται να πει μια απάντηση Binding

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

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

Τρεις περιπτώσεις που μοιάζουν και δεν είναι

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

Where the request leavesWhat rewrites the sourceWhat the reflector reports
Tunnel interface on the routerRouter NAT towards the tunnel addressThe tunnel address as seen on that path
WAN interface, excluded by policyOrdinary WAN translationThe public WAN address
Private reflector reached through the tunnel routeRouter NAT towards the tunnel addressAn internal identifier valid only inside that path

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

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

Η συλλογή δεν είναι επιλογή

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

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

Αποφασίστε την πολιτική και μετά διαβάστε την απάντηση

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

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

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

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