UDP μέσω της θύρας SOCKS του Tor: τι δεν μεταφέρεται
Η διεπαφή SOCKS του Tor δέχεται συνδέσεις ροής, όχι αυθαίρετα datagrams. Εκτελέστε τον έλεγχο με τη σειρά και μετά επιλέξτε μεταφορά που υποστηρίζει πραγματικά η εφαρμογή.
Το να δείξει κανείς μια εφαρμογή σε μια θύρα SOCKS λειτουργεί για έναν περιηγητή και αποτυγχάνει για ένα παιχνίδι, και ο λόγος δεν είναι η διαμόρφωση. Το SOCKS5 ορίζει αρκετές εντολές, και μια υλοποίηση είναι ελεύθερη να υποστηρίζει μόνο μερικές από αυτές· η διεπαφή του Tor δέχεται συνδέσεις ροής και επίλυση ονομάτων, όχι αυθαίρετη προώθηση datagrams. Ένας πελάτης που στέλνει UDP και περιμένει από τον διαμεσολαβητή να το προωθήσει ζητά μια εντολή που ο διακομιστής δεν υλοποιεί. Ο οδηγός παρακάτω το ελέγχει σε λίγα λεπτά και μετά επιλέγει μια μεταφορά που μπορεί πραγματικά να λειτουργήσει.
Ελέγξτε τι στέλνει πραγματικά η εφαρμογή
Ξεκινήστε προσδιορίζοντας τη μεταφορά και όχι το όνομα του πρωτοκόλλου. Ένας πελάτης φωνής μπορεί να συνδεθεί μέσω HTTPS και μετά να μεταφέρει τα μέσα μέσω UDP· ένα παιχνίδι μπορεί να ταυτοποιηθεί μέσω TCP και να παίξει μέσω UDP· μια μεταφορά αρχείου μπορεί να χρησιμοποιεί TCP για έλεγχο και UDP για ανακάλυψη. Οι δύο πρώτες συμπεριφορές φαίνονται ίδιες μέχρι να πετύχει η σύνδεση και η κλήση να αποτυγχάνει ακόμη, γι’ αυτό το «συνδέθηκε» δεν είναι απόδειξη ότι λειτουργεί ολόκληρη η εφαρμογή. Ορισμένοι πελάτες επιστρέφουν επίσης μόνοι τους από UDP σε TCP, κάτι που κάνει μια μερικώς λειτουργική συνεδρία να μοιάζει με ασταθές δίκτυο και όχι με αποκλεισμένη μεταφορά.
Σημειώστε τη θύρα προορισμού και τη μεταφορά για το τμήμα που αποτυγχάνει. Αυτή η μία γραμμή αποφασίζει αν ο διαμεσολαβητής μπορεί να βοηθήσει καθόλου.
Τι θα δεχτεί η διεπαφή SOCKS του Tor
Το Tor υλοποιεί την εντολή SOCKS5 CONNECT για συνδέσεις ροής και εντολές επέκτασης για την επίλυση ονομάτων, γι’ αυτό ένας περιηγητής λειτουργεί μέσω αυτής χωρίς αλλαγή. Το UDP ASSOCIATE, η εντολή που θα επέτρεπε σε έναν πελάτη να παραδώσει datagrams στον διαμεσολαβητή για προώθηση, δεν είναι μέρος αυτού που προσφέρει το Tor. Η τεκμηρίωση για τις επεκτάσεις βρίσκεται στην προδιαγραφή επεκτάσεων SOCKS του έργου, και είναι σύντομη. Η απουσία εντολής για datagrams είναι σκόπιμη: η προώθηση αυθαίρετου UDP θα έδινε στο δίκτυο ρόλο προωθητή για τον οποίο δεν σχεδιάστηκε ποτέ.
Αυτή είναι και η απάντηση για το WireGuard, το οποίο είναι UDP εξ ορισμού και δεν έχει εναλλακτική διαδρομή TCP. Δεν υπάρχει υποστηριζόμενη διαδρομή που να δείχνει το WireGuard σε θύρα SOCKS, και ό,τι ισχυρίζεται το αντίθετο είναι ένα περιτύλιγμα με δική του ιστορία εμπιστοσύνης και συντήρησης, όχι χαρακτηριστικό κάποιου από τα δύο εργαλεία.
OpenVPN είναι η μερική εξαίρεση, γιατί μπορεί να ρυθμιστεί ώστε να δημιουργεί σήραγγα μέσω TCP και κατανοεί μια επιλογή διαμεσολαβητή SOCKS. Αυτό εξακολουθεί να απαιτεί διακομιστή ρυθμισμένο για TCP και μια συνειδητή απόφαση για τις συνέπειες στην απόδοση και το αποτύπωμα, άρα είναι επιλογή σχεδίασης και όχι διόρθωση συμβατότητας.
Εκτελέστε τον έλεγχο με τη σειρά
Επιβεβαιώστε πρώτα ότι ο διαμεσολαβητής λειτουργεί για ροές, ώστε μια μεταγενέστερη αποτυχία να μην αποδοθεί σε μη προσβάσιμη θύρα. Μετά επιβεβαιώστε την κίνηση της ίδιας της εφαρμογής και προσέξτε ποιες υποδοχές ανοίγει πραγματικά.
curl --socks5-hostname 127.0.0.1:9050 -sS https://check.torproject.org/api/ip
ss -tupn | grep 9050
ss -aun | grep -E ':(3478|5060|27015)\b'
Μια επιτυχημένη πρώτη εντολή και μια εδραιωμένη ροή στη δεύτερη γραμμή δείχνουν ότι η διαδρομή του διαμεσολαβητή λειτουργεί όπως σχεδιάστηκε. Η τρίτη εντολή ψάχνει τοπικές υποδοχές datagram που ανήκουν στην εφαρμογή· αν ο πελάτης ανοίξει μία και στέλνει απευθείας σε απομακρυσμένη διεύθυνση, δεν συμβουλεύτηκε ποτέ τον διαμεσολαβητή και καμία ρύθμιση διαμεσολαβητή δεν θα το αλλάξει. Αν αποτύχει στο πρώτο βήμα, σταματήστε και διορθώστε τη διαδρομή του διαμεσολαβητή πριν ερευνήσετε την εφαρμογή, γιατί δύο σφάλματα μαζί παράγουν μια αναφορά με την οποία κανείς δεν μπορεί να κάνει κάτι.
Επαναφέρετε και επιλέξτε το σωστό εργαλείο
Αφαιρέστε τυχόν μεταβλητές περιβάλλοντος διαμεσολαβητή ή ρυθμίσεις διαμεσολαβητή ανά εφαρμογή που έδειχναν τον πελάτη UDP στη θύρα SOCKS· αν μείνουν, οι επόμενες δοκιμές γίνονται αμφίσημες. Επαναφέρετε την προηγούμενη διαμόρφωση από αντίγραφο, επανεκκινήστε την εφαρμογή και επιβεβαιώστε ότι επιστρέφει η αρχική συμπεριφορά ώστε η σύγκριση να είναι καθαρή. Μια επαναφορά που δεν επαληθεύεται είναι μόνο μια ελπίδα ότι η κατάσταση άλλαξε.
Για μια μεταφορά που πρέπει να μείνει UDP, ένα VPN είναι συνήθως καταλληλότερο: μεταφέρει τα πακέτα της εφαρμογής χωρίς να ζητά από την εφαρμογή να μιλά πρωτόκολλο διαμεσολαβητή, με κόστος εντελώς διαφορετικές ιδιότητες ανωνυμίας. Χρησιμοποιήστε κάθε εργαλείο για αυτό που τεκμηριώνει, και αντιμετωπίστε κάθε γέφυρα μεταξύ τους ως ξεχωριστό σύστημα που χρειάζεται τη δική του εξέταση. Σημειώστε στην τελική αναφορά ποιο επίπεδο μεταφέρει ποια μεταφορά, ώστε το επόμενο άτομο να μην ανακαλύψει ξανά το ίδιο όριο με άλλη εφαρμογή.