
सेंसरशिप को बायपास करने के लिए ICMP, DNS और NTP टनलिंग टूल, जिसमें प्रतिबंधात्मक नेटवर्क पर कुशल वेब सत्रों के लिए HMAC अखंडता सुरक्षा और MSS क्लैंपिंग शामिल है।
fraud-bridge उन प्रतिबंधात्मक सेंसरशिप वातावरणों को बायपास करने में मदद करता है जो सीधे TCP या UDP कनेक्शन को ब्लॉक करते हैं, ICMP, NTP या DNS (IPv4 या IPv6 पर) टनल सेट अप करके।
यह स्वचालित रूप से TCP MSS विकल्प को पैच करता है ताकि पैकेट्स की एक अखंडित धारा (जिसे MSS-क्लैंपिंग कहा जाता है) प्राप्त हो सके, जो प्रदर्शन में सुधार करती है और ब्रिज पर वेब-सत्रों का उपयोग करने की अनुमति देती है।
यह टनल को दुर्भावनापूर्ण इंजेक्टेड TCP पैकेट्स से बचाने के लिए MD5 का उपयोग करके (HMAC-)अखंडता सुरक्षा प्रदान करता है। यदि आपको गोपनीयता चाहिए, तो आपको स्वयं एन्क्रिप्शन का उपयोग करना होगा। यह मान लिया जाता है कि आप वैसे भी टनल पर SSH का उपयोग करते हैं, या तो सीधे या SSH प्रॉक्सी विकल्प के साथ यदि आपको HTTP टनल चाहिए।
DNS टनलिंग करते समय, fraud-bridge TXT उत्तर में अधिक से अधिक बाइट्स डालने के लिए EDNS0 एक्सटेंशन हेडर का उपयोग करता है।
fraud-bridge में कुछ bind सीमाओं जैसे कोटा/सीमित करने से निपटने के लिए कुछ अन्य तकनीकें भी शामिल हैं।
आप इसका उपयोग बिना किसी पैच के अपने SSH सत्रों में पूर्ण रोमिंग/मोबिलिटी सपोर्ट प्राप्त करने के लिए भी कर सकते हैं।
एक बार जब आप टनल सेट कर लें, तो आप टनल पर अपने मैसेंजर को काम करने का तरीका पढ़ना चाह सकते हैं।
यह भी ध्यान दें कि c->skills सेंसरशिप तोड़ने के उपकरणों की पूरी श्रृंखला प्रदान कर रहा है जिसमें आपकी रुचि हो सकती है: crash और psc
Linux पर बस make करें।
उपयोग इस प्रकार है:
fraud-bridge -- https://github.com/stealth/fraud-bridge
Usage: fraud-bridge <-k key> [-R IP] [-L IP] [-pP port] [-iIuUnN] [-s sz]
[-E sz] [-d dev] [-D domain] [-S usec] [-X user] [-r dir] [-t type] [-v]
-k -- HMAC key to protect tunnel packets
-R -- IP or IPv6 addr of (outside) peer when started inside
-L -- local IP addr to bind to if started outside (can be omitted)
-p -- remote port when in DNS/NTP mode (default: 53/123)
-P -- local port when in DNS/NTP mode (outside default: 53/123)
-i -- use ICMP tunnel
-I -- use ICMPv6 tunnel
-u -- use DNS tunnel over IP
-U -- use DNS tunnel over IPv6
-n -- use NTP4 tunnel over IP
-N -- use NTP4 tunnel over IPv6
-E -- set EDNS0 size (default: 1024)
-s -- set MSS size (default: 1024)
-d -- tunnel device to use (default: tun1)
-D -- DNS domain to use when DNS tunneling
-S -- usec slowdown for DNS ping (default: 5000)
-X -- user to run as (default: nobody)
-r -- chroot directory (default: /var/empty)
-t -- override ICMP/ICMP6 type (usually no need to change)
-v -- enable verbose mode
कुछ परिभाषाएँ: अंदर का तात्पर्य सेंसर नेटवर्क के अंदर की मशीन से है, संभवतः आपका लैपटॉप/पीसी। बाहर का तात्पर्य सेंसर नेटवर्क के बाहर के VPS या मशीन से है, यानी जिसे लोग "मुक्त इंटरनेट" कहते हैं।
शुरू होने के बाद, fraud-bridge एक पॉइंट-टू-पॉइंट टनल खोलता है: 1.2.3.4 <-> 1.2.3.5
फिर आपको अंदर की तरफ inside.sh और बाहर की तरफ outside.sh शुरू करने की आवश्यकता है।
यह इस प्रकार दिखता है:
बाहरी सिरे पर (जैसे इंटरनेट पर एक सर्वर):
# ./fraud-bridge -u -L 192.168.2.222 -D f.sub.dnstunnel.com -k key
(और outside.sh शुरू करना)
और अंदर:
# ./fraud-bridge -u -R 127.0.0.1 -D f.sub.dnstunnel.com -k key
(और inside.sh शुरू करना)
एक DNS टनल के उदाहरण के रूप में जिसमें स्थानीय 127.0.0.1 पर named चल रहा है और बाहरी पीयर 192.168.2.222 पर है। जैसा कि कहा गया है, टनल का बाहरी भाग पहले से शुरू किया जा सकता है (और वास्तव में किया जाना चाहिए) और केवल पीयर द्वारा टनल खोलने की प्रतीक्षा करेगा। यदि आप अपने स्वयं के बाइंड सेटअप के साथ प्रयोग करना चाहते हैं तो उदाहरण ज़ोन-फ़ाइलें शामिल हैं। ITW टनल चलाने के लिए वे आवश्यक नहीं हैं।
डिफ़ॉल्ट टनल डिवाइस tun1 है। सुनिश्चित करें कि आप एक ही समय में fraud-bridge के कई उदाहरण या इस टनल डिवाइस का उपयोग करने वाले किसी अन्य टनल सॉफ़्टवेयर को नहीं चला रहे हैं। fraud-bridge डेमॉन को प्रत्येक मारने/पुनरारंभ करने के बाद आपको उस विशेष सिरे पर जहाँ आपने इसे पुनरारंभ किया है, अंदर/बाहर स्क्रिप्ट्स को फिर से निष्पादित करना होगा।
बाहर पर -L पैरामीटर को हटाया जा सकता है (हटाया जाना चाहिए)। वास्तविक सेटअप में अंदर के सेटअप पर -R पैरामीटर में बाहरी सर्वर का IP या IP6 पता होता है, या यदि DNS रिकर्सन का उपयोग किया जाता है, तो आपके प्रदाता के DNS सर्वर या सार्वजनिक रिकर्सिव DNS रिज़ॉल्वर का IP पता। यदि आपके पास अपना DNS सर्वर नहीं है, तब भी आप DNS टनलिंग का उपयोग कर सकते हैं, अंदर पर -R पैरामीटर के रूप में अपने VPS IP का उपयोग करके और दोनों सिरों पर कोई भी (लेकिन समान) -D डोमेन पैरामीटर का उपयोग करके जो सेंसरशिप शासन के लिए वैध लगता है, जैसे -D blah.gov।
DNS टनलिंग का प्रयास करने से पहले, आप शायद ICMP या NTP टनलिंग के साथ प्रयास करना चाहेंगे।
यदि आप syslog में chroot चेतावनियाँ देखते हैं, तो आप उन्हें अनदेखा कर सकते हैं या -r को मान्य तर्क प्रदान कर सकते हैं।
फिर आप ऊपर दिए गए उदाहरण में 192.168.2.222 पर SSH कनेक्शन प्राप्त करने के लिए ssh -D 1234 1.2.3.5 का उपयोग कर सकते हैं और अपने वेब ब्राउज़र सत्र के लिए पोर्ट :1234 पर SOCKS5 प्रॉक्सी का उपयोग कर सकते हैं जो फिर टनल पर चलता है।
आप ICMP: -i और IPv6 पर ICMP: -I या IPv6 के माध्यम से UDP पर DNS: -U या UDP के माध्यम से NTP: -n या UDP/IPv6 के माध्यम से NTP: -N के साथ भी ऐसा कर सकते हैं।
आप अपने SSH कनेक्शन से परे टनल के प्रकार (DNS से ICMP या ICMP से NTP) को स्विच करना, या किसी अन्य स्थानीय IP पर रोम करना (जैसे wifi से 5G पर स्विच करना) भी संभव है, क्योंकि TCP स्थिति स्थानीय और दूरस्थ कर्नेल में रखी जाती है, ब्रिज में नहीं। यह SSH में किसी पैच के बिना पूर्ण SSH रोमिंग/मोबिलिटी सपोर्ट की अनुमति देता है।
वर्बोज़ मोड में, fraud-bridge त्रुटियों या संदेशों की रिपोर्ट करने के लिए stdout को खुला छोड़ देगा, इसलिए यदि आप इसे (वर्बोज़) बैकग्राउंड में चलाना चाहते हैं तो आपको इसे स्क्रीन पर चलाना होगा या आउटपुट को /dev/null पर रीडायरेक्ट करना होगा। इसे ध्यान में रखें क्योंकि आपको fraud-bridge को कॉल करने के बाद अंदर/बाहर स्क्रिप्ट्स शुरू करनी होती हैं। यदि -v का उपयोग नहीं करते हैं, तो यह बैकग्राउंड में चला जाता है और त्रुटियों को syslog में लॉग करता है।
किसी भी ICMP टनल का उपयोग करने से पहले, अपने रिमोट पीयर से रिप्लाई पैकेट प्राप्त करने के लिए अपने केबल-मॉडम के फायरवॉल नियमों को शिथिल करना सुनिश्चित करें। fraud-bridge NAT के पीछे काम करता है, लेकिन उसे अंततः रिप्लाई पैकेट प्राप्त करने की आवश्यकता होती है। ICMP टनलिंग का उपयोग करते समय और ICMP इको ब्लॉक होते हैं, तो आप -t के माध्यम से टाइप पैरामीटर सेट कर सकते हैं। उदाहरण के लिए अंदर -t 13 और बाहर -t 14 का उपयोग करके टाइमस्टैम्प अनुरोध/उत्तर जोड़े प्राप्त करें।
DNS टनलिंग करते समय, fraud-bridge TXT उत्तर में अधिक से अधिक बाइट्स डालने के लिए EDNS0 एक्सटेंशन हेडर का उपयोग करता है। मेरे परीक्षणों में, चूंकि यह किसी भी टाइमिंग पैकेट का उत्तर देने का प्रयास करता है, यह bind9 सिस्टम लॉग-फ़ाइल में कोई लॉग उत्पन्न नहीं करता है। यदि आप EDNS0 (-E) बदलते हैं, तो आपको इसे दोनों सिरों पर समान मान के साथ करना होगा। (जैसे अंदर नेमसर्वर को अधिकतम UDP पेलोड आकार की घोषणा करता है और बाहरी एंडपॉइंट उससे MSS की गणना करता है जो -E के साथ दिया गया था।)
NTP टनलिंग का उपयोग करते समय, CGN वाले कुछ प्रदाता बड़े NTP पैकेट्स को ब्लॉक करते हैं (केवल IPv4 पर)। एक सामान्य जर्मन ISP में, 256 बाइट्स से अधिक के किसी भी NTP पैकेट को ब्लॉक कर दिया गया। इसलिए आपको छोटे पैकेट प्राप्त करने के लिए तदनुसार MSS सेट करना होगा जैसे -s 100 ताकि TCP स्टैक छोटे आकार में सेगमेंट भेजे।
चूंकि fraud-bridge एक PtP टनल खोलता है, यह प्रेषित पैकेट्स से IP हेडर को हटा सकता है और प्रत्येक सिरे पर इसे संश्लेषित कर सकता है। इसलिए ICMP टनलिंग के लिए आपके पास केवल 8 (ICMP) + 16 (HMAC) बाइट्स का ओवरहेड होता है, जो स्वीकार्य है। DNS टनलिंग में अभी भी अच्छी विलंबता और बैंडविड्थ है जब सीधे किया जाता है, MSS क्लैंपिंग के लिए धन्यवाद। जब सार्वजनिक DNS रिज़ॉल्वर्स के माध्यम से अप्रत्यक्ष रूप से टनलिंग की जाती है, तो डिफ़ॉल्ट मान एक उचित सत्र के लिए पर्याप्त हैं, लेकिन निश्चित रूप से जब भी संभव हो ICMP टनलिंग को प्राथमिकता दी जानी चाहिए।
ssh -D [0.0.0.0]:1234 1.2.3.5 का उपयोग करके आप अपनी मशीन पर पोर्ट 1234 (अंदर) पर एक स्थानीय SOCKS प्रॉक्सी सेट कर सकते हैं और इसे WLAN के माध्यम से अपने पड़ोस में वितरित कर सकते हैं ताकि सेंसरशिप-मुक्त वेब सत्र हो सकें।
आप बाहरी बॉक्स पर एक स्थानीय tor भी सेट कर सकते हैं, जैसा कि आप सामान्यतः करते हैं, 127.0.0.1:9150 पर SOCKS पोर्ट प्रदान करते हैं और फिर इस बाहरी पोर्ट को अपनी अंदर की मशीन पर अग्रेषित करने के लिए ssh -L 9150:127.0.0.1:9150 1.2.3.5 का उपयोग करते हैं, ताकि बाहरी tor सेटअप को स्थानीय रूप से बिल्कुल प्रतिबिंबित किया जा सके और इसे WLAN के माध्यम से अपने उपयोगकर्ताओं को tor SOCKS पोर्ट के रूप में वितरित किया जा सके। इस तरह हमें प्लगेबल ट्रांसपोर्ट लागू करने की आवश्यकता नहीं है और आप अभी भी पहले की तरह tor का उपयोग कर सकते हैं। यही बात crash या psc सत्रों या किसी अन्य टनलिंग तंत्र के साथ भी काम करती है।
-S पैरामीटर का DNS टाइमर पैकेट्स के लिए एक उचित डिफ़ॉल्ट मान है जिन्हें सर्वर को नियत अंतराल पर भेजने की आवश्यकता होती है। कम मान बेहतर टनल विलंबता देते हैं लेकिन रिकर्सिव DNS सर्वर को ओवरलोड कर सकते हैं और अधिक शोर उत्पन्न कर सकते हैं।
गर्व से प्रायोजित: