अपने VPS से Tor के ज़रिए कैसे जुड़ें
Anonymity · 8 मिनट रीड
दो अलग-अलग समस्याएँ, दोनों को 'SSH over Tor' कहा जाता है
tor vps access खोजने वाले लोग आमतौर पर दो अलग-अलग समस्याओं में से किसी एक को हल करने की कोशिश कर रहे होते हैं, और सेटअप इस पर निर्भर करता है कि कौन सी लागू होती है। पहली क्लाइंट-साइड है: आप सर्वर से, अपने लोकल नेटवर्क को देख रहे किसी से, और बाद में VPS प्रोवाइडर के कनेक्शन लॉग को सम्मन करने वाले किसी से भी अपना IP पता छिपाना चाहते हैं। दूसरी सर्वर-साइड है: आप चाहते हैं कि VPS का खुद कोई SSH पोर्ट पब्लिक इंटरनेट से बिल्कुल भी पहुँच योग्य न हो, ताकि यह किसी पोर्ट स्कैनर द्वारा न मिल सके, किसी क्रेडेंशियल-स्टफिंग बॉट द्वारा लक्षित न हो, या उसकी लिसनिंग सेवा से जियोलोकेट न किया जा सके।
ये आपस में परस्पर-अनन्य नहीं हैं। ssh over tor के बारे में फोरम थ्रेड में बहुत सारा भ्रम 'मैं छिपाना चाहता हूँ कि कौन जुड़ रहा है' और 'मैं छिपाना चाहता हूँ कि किससे जुड़ा जा रहा है' को मिलाने से आता है। यह गाइड दोनों को कवर करती है, आसान क्लाइंट-साइड सेटअप से शुरू करते हुए, फिर सर्वर के लिए onion-सेवा दृष्टिकोण, फिर परिणाम को कैसे हार्डन करें और असल में क्या परफॉर्मेंस अपेक्षित है।
- क्लाइंट-साइड गुमनामी: आपका SSH क्लाइंट Tor के ज़रिए रूट होता है ताकि सर्वर (और इसके इनबाउंड कनेक्शन लॉग करने वाला कोई भी) आपका असली IP नहीं, बल्कि एक Tor एग्ज़िट या रिले देखे
- सर्वर-साइड गुमनामी: sshd केवल Tor onion पते के ज़रिए पहुँच योग्य है, इसलिए SSH के लिए कोई पब्लिक IP:port बिल्कुल नहीं है
तरीका 1: अपने SSH क्लाइंट को Tor के SOCKS प्रॉक्सी के ज़रिए रूट करें
एक चल रहा Tor क्लाइंट (Tor डेमन, ज़रूरी नहीं कि Tor ब्राउज़र हो) एक लोकल SOCKS5 प्रॉक्सी एक्सपोज़ करता है, डिफ़ॉल्ट रूप से 127.0.0.1:9050 पर। किसी भी SOCKS-अवेयर एप्लिकेशन को उस पर पॉइंट किया जा सकता है, और SSH खुद नेटिव रूप से SOCKS नहीं बोलता, इसलिए आपको एक छोटे ब्रिज की ज़रूरत है। दो सामान्य दृष्टिकोण हैं torsocks, जो किसी कमांड को रैप करता है और उसके TCP कनेक्शन को प्रॉक्सी के ज़रिए मजबूर करता है, और आपके SSH कॉन्फ़िग में एक ProxyCommand एंट्री जो कनेक्शन को SOCKS-सक्षम netcat के ज़रिए पाइप करती है।
सबसे तेज़ टेस्ट बस यह है: tor इंस्टॉल करें, पुष्टि करें कि यह चल रहा है, फिर torsocks ssh user@your-vps-ip चलाएँ। अगर यह कनेक्ट हो जाता है, तो आपका SSH सेशन अब एक थ्री-हॉप Tor सर्किट के ज़रिए रूट हो रहा है। रोज़ाना उपयोग के लिए, हर बार torsocks टाइप करने के बजाय ~/.ssh/config में एक Host ब्लॉक जोड़ें, nc -X 5 -x 127.0.0.1:9050 %h %p (OpenBSD netcat के साथ) या connect -S 127.0.0.1:9050 %h %p (connect-proxy टूल के साथ) जैसी ProxyCommand लाइन का उपयोग करके। इस तरह सादा ssh myhost काम करता है और आपको रैपर याद रखे बिना हमेशा Tor के ज़रिए जाता है।
- SSH को ही ट्रबलशूट करने से पहले पुष्टि करें कि Tor असल में चल रहा है और 9050 पर सुन रहा है
- torsocks ssh user@host टेस्ट करने का सबसे तेज़ तरीका है; ~/.ssh/config में ProxyCommand दिन-प्रतिदिन उपयोग करने का टिकाऊ तरीका है
- यह तरीका VPS से और उसके auth लॉग पढ़ने वाले किसी से भी आपका IP छिपाता है, लेकिन SSH पोर्ट खुद अभी भी पब्लिक इंटरनेट के लिए खुला है
तरीका 2: VPS पर SSH को Tor onion सेवा के रूप में प्रकाशित करें
अगर लक्ष्य एडमिन एक्सेस के लिए VPS के खुद के IP पते को पूरी तरह तस्वीर से बाहर रखना है, तो सर्वर को Tor चलाना होगा और sshd को केवल हिडन सेवा के रूप में एक्सपोज़ करना होगा। VPS पर tor इंस्टॉल करें, फिर torrc में दो लाइनें जोड़ें: HiddenServiceDir जो किसी ऐसी डायरेक्टरी को पॉइंट करे जिसमें Tor लिख सके, और HiddenServicePort 22 127.0.0.1:22, जो Tor को बताता है कि onion पते के पोर्ट 22 पर आने वाले कनेक्शन को लोकल रूप से सुन रहे sshd तक फॉरवर्ड करे। Tor को रीस्टार्ट करें, और यह पहली बार शुरू होने पर उस डायरेक्टरी में एक लंबा रैंडम .onion होस्टनेम जनरेट करता है।
महत्वपूर्ण रूप से, यह चरण एक्सपोज़र तभी हटाता है जब sshd को भी VPS के पब्लिक इंटरफेस के बजाय 127.0.0.1 पर बाइंड करने के लिए कहा जाए (sshd_config में ListenAddress 127.0.0.1, फिर sshd रीस्टार्ट करें)। उस चरण को छोड़ देने से SSH onion पते के ज़रिए और सीधे पब्लिक IP पर दोनों तरह से पहुँच योग्य रह जाता है, जो पूरे उद्देश्य को हरा देता है। एक बार यह हो जाने के बाद, क्लाइंट-साइड से torsocks ssh [email protected] के साथ जुड़ें — VPS के पोर्ट स्कैन में SSH के लिए कोई पब्लिक IPv4 या IPv6 पता कभी नहीं दिखता।
- torrc में HiddenServiceDir और HiddenServicePort 22 127.0.0.1:22 जोड़ें, फिर Tor रीस्टार्ट करें
- sshd को खुद केवल 127.0.0.1 से बाइंड करें — अभी भी पब्लिक पोर्ट के सामने एक onion सेवा कुछ भी नहीं छिपाती
- जुड़ने के लिए .onion पता पाने हेतु HiddenServiceDir के अंदर जनरेट की गई होस्टनेम फ़ाइल पढ़ें
- torsocks ssh [email protected] से जुड़ें; एक बेयर IP अब SSH के लिए बिल्कुल काम नहीं करेगा
एक बार SSH केवल .onion पर जवाब दे, तो प्रमाणीकरण को लॉक करना
पोर्ट छिपाने से लॉगिन को हार्डन करने की ज़रूरत खत्म नहीं होती। ed25519 की-जोड़े का उपयोग करें, पासवर्ड प्रमाणीकरण को पूरी तरह डिसेबल करें (PasswordAuthentication no), और SSH पर रूट लॉगिन डिसेबल करें (PermitRootLogin no)। अगर इस VPS तक पहुँचने के लिए आप जिस की का उपयोग करते हैं वह वही है जिसका उपयोग आप अपने रोज़मर्रा के अकाउंट्स के लिए करते हैं, तो onion सेवा से मिलने वाली गुमनामी उसी क्षण कमज़ोर हो जाती है जब उस की का फिंगरप्रिंट किसी ब्रीच डंप में या कहीं और आपके नाम से जुड़े Shodan/Censys स्कैन में दिखता है — गुमनाम इन्फ्रास्ट्रक्चर के लिए एक समर्पित की जनरेट करें।
एक चीज़ जो इस सेटअप में चुपचाप काम करना बंद कर देती है: fail2ban जैसे IP-आधारित टूल। क्योंकि कनेक्शन लोकल Tor प्रोसेस के ज़रिए sshd तक पहुँचते हैं, हर लॉगिन प्रयास के लिए sshd जो सोर्स पता लॉग करता है वह 127.0.0.1 है, चाहे सफल हो या असफल — बैन करने के लिए कोई अटैकर IP नहीं है। यह कोई कमी नहीं है जिसे किसी वर्कअराउंड से भरने की ज़रूरत है — बिना पासवर्ड फॉलबैक वाला की-ओनली प्रमाणीकरण पहले से ही उस ब्रूट-फोर्स जोखिम को हटा देता है जिसे कम करने के लिए fail2ban मौजूद है। बस इस कॉन्फ़िगरेशन में इसके लॉग को सार्थक मानने की उम्मीद न रखें।
- की-ओनली auth, ed25519, कोई पासवर्ड फॉलबैक नहीं
- प्रति गुमनाम सर्वर एक समर्पित की-जोड़ी, कभी किसी व्यक्तिगत मशीन से पुनः उपयोग न करें
- PermitRootLogin no, और असली काम के लिए sudo वाला एक नॉन-रूट अकाउंट
- एक बार ट्रैफिक Tor के ज़रिए आने लगे तो fail2ban या IP allowlisting पर भरोसा न करें — लॉग में सोर्स IP हमेशा लूपबैक होता है
असल में परफॉर्मेंस कैसी दिखती है
एक मानक Tor सर्किट तीन रिले का होता है, और एक onion-सेवा कनेक्शन दो थ्री-हॉप सर्किट को अंत से अंत तक स्टैक करता है (एक क्लाइंट से Tor नेटवर्क में, एक Tor नेटवर्क से हिडन सेवा तक), इसलिए राउंड-ट्रिप लेटेंसी आमतौर पर कुछ सौ मिलीसेकंड से लेकर कुछ सेकंड के बीच रहती है, कभी-कभी सर्किट के फिर से बनने पर स्पाइक के साथ। इंटरैक्टिव काम — कॉन्फ़िग फ़ाइलें एडिट करना, लॉग चेक करना, कोई सेवा रीस्टार्ट करना — उस लेटेंसी पर पूरी तरह उपयोग करने योग्य है। अपने SSH कॉन्फ़िग में ServerAliveInterval सेट करें ताकि इनएक्टिव सेशन अतिरिक्त हॉप की वजह से ड्रॉप न हों, और जब Tor नया सर्किट चुने तो कभी-कभी रुकावट की उम्मीद रखें।
जो अच्छी तरह काम नहीं करता वह है थ्रूपुट। scp, rsync, या गीगाबाइट्स ले जाने वाली कोई भी चीज़ सीधे कनेक्शन की तुलना में बहुत धीमी चलेगी, क्योंकि Tor सर्किट कई शॉर्ट-लिव्ड स्ट्रीम में कम-लेटेंसी इंटरैक्टिविटी के लिए ऑप्टिमाइज़ किए गए हैं, निरंतर बैंडविड्थ के लिए नहीं। असल डेटा ट्रांसफर के लिए — बैकअप, बड़े अपलोड — एक सीधा एन्क्रिप्टेड चैनल (पब्लिक IP पर सादा SSH/rsync, या WireGuard टनल) का उपयोग करें और Tor पथ को विशेष रूप से एडमिनिस्ट्रेटिव शेल एक्सेस के लिए आरक्षित रखें जहाँ स्पीड से ज़्यादा कनेक्शन छिपाना मायने रखता है।
वे गलतियाँ जो आपकी हासिल की गई गुमनामी को चुपचाप तोड़ देती हैं
यहाँ ज़्यादातर विफलताएँ कोई असाधारण चीज़ नहीं होतीं — वे छोटे कॉन्फ़िगरेशन गैप होते हैं जो एक साइड डोर खुला छोड़ देते हैं। सेटअप पर भरोसा करने से पहले इन पर नज़र रखें:
इनमें से किसी को भी टालने के लिए उन्नत टूलिंग की ज़रूरत नहीं है; उन्हें बस यह मान लेने के बजाय कि Tor कॉन्फ़िगरेशन ने अकेले ही काम पूरा कर दिया, असल लिसनिंग पोर्ट और DNS व्यवहार को एक बार चेक करने की ज़रूरत है।
- sshd अभी भी onion सेवा के साथ-साथ पब्लिक इंटरफेस से बाइंड है, इसलिए 'हिडन' पोर्ट को एक सादा पोर्ट स्कैन भी ढूँढ सकता है
- Tor के बाहर होस्टनेम रिज़ॉल्व करना (कोई भटकी हुई DNS लुकअप, या DNS के लिए SOCKS प्रॉक्सी को नज़रअंदाज़ करने वाला ऐप) Tor कनेक्शन शुरू होने से पहले ही लीक कर देता है कि आप किस होस्ट से जुड़ने वाले हैं
- एक ProxyCommand जो Tor न चलने पर चुपचाप सीधे कनेक्शन पर वापस चला जाता है — इसे fail closed पर कॉन्फ़िगर करें, fail open पर नहीं, ताकि एक मृत Tor डेमन का मतलब कोई कनेक्शन न होना हो, न कि गलती से क्लियरनेट कनेक्शन
- किसी SSH की, टर्मिनल प्रॉम्प्ट, या शेल हिस्ट्री को पुनः उपयोग करना जो इस सेशन को कहीं और गैर-गुमनाम पहचान से जोड़ती हो
| तरीका | यह क्या छिपाता है | आमतौर पर जुड़ने वाली लेटेंसी | सेटअप प्रयास |
|---|---|---|---|
| क्लियरनेट पर सीधा SSH | SSH की अपनी एन्क्रिप्शन के अलावा कुछ नहीं | कोई नहीं | कोई नहीं |
| Tor के SOCKS प्रॉक्सी के ज़रिए रूट किया गया क्लाइंट | सर्वर और उसके लॉग से आपका IP पता | मध्यम — लगभग एक Tor सर्किट, ~300ms-1s | कम — torsocks या ProxyCommand लाइन |
| Tor onion सेवा के रूप में प्रकाशित SSH | VPS का पब्लिक IP; इंटरनेट पर कोई खुला SSH पोर्ट नहीं | मध्यम से उच्च — सर्वर-साइड सर्किट जुड़ता है | मध्यम — torrc और sshd_config बदलाव |
| दोनों को मिलाकर: क्लाइंट Tor के ज़रिए, सर्वर onion सेवा के रूप में | कनेक्शन के दोनों सिरे पूरी तरह क्लियरनेट से दूर रहते हैं | सबसे अधिक — दो स्वतंत्र 3-हॉप सर्किट | मध्यम |
सामान्य प्रश्न
क्या SSH over Tor SSH की एन्क्रिप्शन को कमज़ोर करता है?+
क्या असली एडमिनिस्ट्रेशन काम के लिए SSH over Tor बहुत धीमा है?+
अगर SSH केवल onion सेवा के ज़रिए पहुँच योग्य है तो क्या मैं फिर भी fail2ban का उपयोग कर सकता हूँ?+
क्या मुझे VPS एक्सेस के लिए Tor के साथ-साथ VPN की भी ज़रूरत है?+
क्या दोनों सिरों को Tor चलाना ज़रूरी है, या सिर्फ मेरे लैपटॉप को?+
ऑफशोर जाने के लिए तैयार हैं?
कोई KYC नहीं, कोई ईमेल नहीं — बस एक अनाम की और क्रिप्टो। ~55 सेकंड में डिप्लॉय करें।
अपना VPS कॉन्फ़िगर करें →