एसएसएच टनलिंग का उपयोग प्रतिबंधित सर्वर तक कैसे पहुंचें और सुरक्षित रूप से ब्राउज़ करें
एक SSH क्लाइंट सिक्योर शेल सर्वर से जुड़ता है, जो आपको टर्मिनल कमांड चलाने की अनुमति देता है जैसे कि आप दूसरे कंप्यूटर के सामने बैठे थे। लेकिन एक SSH क्लाइंट आपको अपने स्थानीय सिस्टम और एक दूरस्थ SSH सर्वर के बीच एक पोर्ट "सुरंग" करने की अनुमति देता है.
एसएसएच टनलिंग के तीन अलग-अलग प्रकार हैं, और वे सभी विभिन्न उद्देश्यों के लिए उपयोग किए जाते हैं। प्रत्येक में एक नेटवर्क पोर्ट से दूसरे में ट्रैफ़िक पुनर्निर्देशित करने के लिए SSH सर्वर का उपयोग करना शामिल है। ट्रैफ़िक एन्क्रिप्टेड SSH कनेक्शन पर भेजा जाता है, इसलिए इसे पारगमन में निगरानी या संशोधित नहीं किया जा सकता है.
आप इसके साथ कर सकते हैं ssh
Linux, macOS और अन्य UNIX जैसे ऑपरेटिंग सिस्टम पर कमांड शामिल है। विंडोज पर, जिसमें एक अंतर्निहित ssh कमांड शामिल नहीं है, हम SSH सर्वर से कनेक्ट करने के लिए मुफ्त टूल PuTTY की सलाह देते हैं। यह SSH टनलिंग का भी समर्थन करता है.
स्थानीय पोर्ट अग्रेषण: अपने स्थानीय सिस्टम पर दूरस्थ संसाधनों को सुलभ बनाएं
"स्थानीय पोर्ट फ़ॉरवर्डिंग" आपको स्थानीय नेटवर्क संसाधनों का उपयोग करने की अनुमति देता है जो इंटरनेट के संपर्क में नहीं हैं। उदाहरण के लिए, मान लें कि आप अपने घर से अपने कार्यालय में एक डेटाबेस सर्वर का उपयोग करना चाहते हैं। सुरक्षा कारणों से, वह डेटाबेस सर्वर केवल स्थानीय कार्यालय नेटवर्क से कनेक्शन स्वीकार करने के लिए कॉन्फ़िगर किया गया है। लेकिन अगर आपके पास कार्यालय में एक एसएसएच सर्वर तक पहुंच है, और वह एसएसएच सर्वर कार्यालय नेटवर्क के बाहर से कनेक्शन की अनुमति देता है, तो आप घर से उस एसएसएच सर्वर से कनेक्ट कर सकते हैं और डेटाबेस सर्वर तक पहुंच सकते हैं जैसे कि आप कार्यालय में थे। यह अक्सर मामला होता है, क्योंकि विभिन्न नेटवर्क संसाधनों की एक किस्म को सुरक्षित करने के लिए हमलों के खिलाफ एक एसएसएच सर्वर को सुरक्षित करना आसान होता है.
ऐसा करने के लिए, आप एसएसएच सर्वर के साथ एक एसएसएच कनेक्शन स्थापित करते हैं और क्लाइंट को अपने स्थानीय पीसी से एक विशिष्ट पोर्ट से ट्रैफ़िक के लिए कहते हैं-उदाहरण के लिए, पोर्ट 1234-डेटाबेस के सर्वर के पते और कार्यालय नेटवर्क पर इसके पोर्ट को। इसलिए, जब आप डेटाबेस सर्वर को अपने वर्तमान पीसी पोर्ट 1234, "लोकलहोस्ट" पर एक्सेस करने का प्रयास करते हैं, तो वह ट्रैफिक एसएसएच कनेक्शन पर स्वचालित रूप से "टनल" हो जाता है और डेटाबेस सर्वर को भेज दिया जाता है। SSH सर्वर ट्रैफ़िक को आगे और पीछे बीच में बैठाता है। आप डेटाबेस सर्वर तक पहुंचने के लिए किसी भी कमांड लाइन या ग्राफिकल टूल का उपयोग कर सकते हैं जैसे कि यह आपके स्थानीय पीसी पर चल रहा हो.
स्थानीय अग्रेषण का उपयोग करने के लिए, सामान्य रूप से SSH सर्वर से कनेक्ट करें, लेकिन आपूर्ति भी करें -एल
तर्क। वाक्य रचना है:
ssh -L local_port: Remote_address: Remote_port [email protected]
उदाहरण के लिए, मान लें कि आपके कार्यालय का डेटाबेस सर्वर कार्यालय के नेटवर्क पर 192.168.1.111 पर स्थित है। आपके पास कार्यालय के SSH सर्वर तक पहुंच है ssh.youroffice.com
, और SSH सर्वर पर आपका उपयोगकर्ता खाता है बॉब
. उस स्थिति में, आपकी कमांड इस तरह दिखाई देगी:
ssh -L 8888: 192.168.1.111: 1234 [email protected]
उस कमांड को चलाने के बाद, आप डेटाबेस सर्वर को लोकलहोस्ट पर 8888 पोर्ट पर एक्सेस कर पाएंगे। इसलिए, यदि डेटाबेस सर्वर ने वेब एक्सेस की पेशकश की है, तो आप इसे एक्सेस करने के लिए http: // localhost: 8888 को अपने वेब ब्राउजर में प्लग इन कर सकते हैं। यदि आपके पास एक कमांड लाइन उपकरण था जिसे डेटाबेस के नेटवर्क पते की आवश्यकता है, तो आप इसे स्थानीयहोस्ट: 8888 पर इंगित करेंगे। आपके पीसी पर 8888 पोर्ट पर भेजे गए सभी ट्रैफ़िक को आपके कार्यालय नेटवर्क पर 192.168.1.111:1234 पर सुरंग में भेज दिया जाएगा।.
यदि आप SSH सर्वर के समान सिस्टम पर चल रहे सर्वर एप्लिकेशन से कनेक्ट करना चाहते हैं तो यह थोड़ा अधिक भ्रमित करने वाला है। उदाहरण के लिए, मान लें कि आपके पास अपने ऑफिस के कंप्यूटर पर पोर्ट 22 पर एक एसएसएच सर्वर चल रहा है, लेकिन आपके पास एक डेटाबेस सर्वर भी उसी पते पर उसी सिस्टम पर पोर्ट 1234 पर चल रहा है। आप घर से डेटाबेस सर्वर का उपयोग करना चाहते हैं, लेकिन सिस्टम केवल पोर्ट 22 पर एसएसएच कनेक्शन स्वीकार कर रहा है और इसका फ़ायरवॉल अन्य अन्य कनेक्शनों की अनुमति नहीं देता है.
इस स्थिति में, आप निम्न की तरह एक कमांड चला सकते हैं:
ssh -L 8888: localhost: 1234 [email protected]
जब आप अपने वर्तमान पीसी पर पोर्ट 8888 पर डेटाबेस सर्वर तक पहुंचने का प्रयास करते हैं, तो ट्रैफिक को एसएसएच कनेक्शन पर भेजा जाएगा। जब यह SSH सर्वर को चलाने वाले सिस्टम पर आता है, SSH सर्वर इसे "लोकलहोस्ट" पर 1234 पोर्ट करने के लिए भेजेगा, जो कि SSH सर्वर को चलाने वाला एक ही पीसी है। तो ऊपर दिए गए कमांड में "लोकलहोस्ट" का मतलब रिमोट सर्वर के नजरिए से "लोकलहोस्ट" है.
विंडोज पर PuTTY एप्लिकेशन में ऐसा करने के लिए, कनेक्शन> SSH> टनल चुनें। "स्थानीय" विकल्प चुनें। "स्रोत पोर्ट" के लिए, स्थानीय पोर्ट दर्ज करें। "गंतव्य" के लिए, गंतव्य पता दर्ज करें और port_address: port_port के रूप में पोर्ट दर्ज करें.
उदाहरण के लिए, यदि आप ऊपर के समान एसएसएच सुरंग स्थापित करना चाहते हैं, तो आप दर्ज करेंगे 8888
स्रोत पोर्ट के रूप में और स्थानीय होस्ट: 1234
गंतव्य के रूप में। बाद में “Add” पर क्लिक करें और फिर SSH कनेक्शन को खोलने के लिए “Open” पर क्लिक करें। आपको कनेक्ट करने से पहले मुख्य "सत्र" स्क्रीन पर स्वयं SSH सर्वर का पता और पोर्ट दर्ज करना होगा.
रिमोट पोर्ट फ़ॉरवर्डिंग: रिमोट सिस्टम पर स्थानीय संसाधनों को सुलभ बनाना
"रिमोट पोर्ट फ़ॉरवर्डिंग" स्थानीय फ़ॉरवर्डिंग के विपरीत है, और इसका अक्सर उपयोग नहीं किया जाता है। यह आपको SSH सर्वर पर उपलब्ध अपने स्थानीय पीसी पर एक संसाधन बनाने की अनुमति देता है। उदाहरण के लिए, मान लें कि आप जिस स्थानीय पीसी पर सामने बैठे हैं, उस पर आप एक वेब सर्वर चला रहे हैं। लेकिन आपका पीसी एक फ़ायरवॉल के पीछे है जो सर्वर सॉफ़्टवेयर के लिए आने वाले ट्रैफ़िक की अनुमति नहीं देता है.
मान लें कि आप दूरस्थ SSH सर्वर तक पहुँच सकते हैं, तो आप उस SSH सर्वर से कनेक्ट कर सकते हैं और दूरस्थ पोर्ट अग्रेषण का उपयोग कर सकते हैं। आपका SSH क्लाइंट सर्वर को एक विशिष्ट पोर्ट-फॉरवर्ड, पोर्ट 1234-SSH सर्वर को एक विशिष्ट पते पर और आपके वर्तमान पीसी या स्थानीय नेटवर्क पर पोर्ट को बताएगा। जब कोई SSH सर्वर पर पोर्ट 1234 को एक्सेस करता है, तो वह ट्रैफिक SSH कनेक्शन पर स्वचालित रूप से "टनल" हो जाएगा। SSH सर्वर तक पहुंच रखने वाला कोई भी व्यक्ति आपके पीसी पर चलने वाले वेब सर्वर तक पहुंच बना सकेगा। यह प्रभावी रूप से फायरवॉल के माध्यम से सुरंग का रास्ता है.
रिमोट फ़ॉरवर्डिंग का उपयोग करने के लिए, का उपयोग करें ssh
के साथ कमान -आर
तर्क। सिंटैक्स स्थानीय अग्रेषण के साथ काफी हद तक समान है:
ssh -R Remote_port: local_address: local_port [email protected]
मान लें कि आप दूरस्थ SSH सर्वर पर पोर्ट 8888 पर उपलब्ध अपने स्थानीय पीसी पर पोर्ट 1234 पर एक सर्वर एप्लिकेशन को सुनना चाहते हैं। SSH सर्वर का पता है ssh.youroffice.com
और SSH सर्वर पर आपका उपयोगकर्ता नाम है बॉब. आप निम्न आदेश चलाएँगे:
ssh -R 8888: localhost: 1234 [email protected]
कोई व्यक्ति 8888 पोर्ट पर SSH सर्वर से कनेक्ट हो सकता है और उस कनेक्शन को टनल से लिंक किया जाएगा, जो उस पोर्ट 1234 पर चल रहे सर्वर एप्लिकेशन पर है जिससे आपने कनेक्शन स्थापित किया है.
विंडोज पर PuTTY में ऐसा करने के लिए, कनेक्शन> SSH> टनल चुनें। "रिमोट" विकल्प चुनें। "स्रोत पोर्ट" के लिए, दूरस्थ पोर्ट दर्ज करें। "गंतव्य" के लिए, गंतव्य पता और पोर्ट दर्ज करें local_address: local_port.
उदाहरण के लिए, यदि आप ऊपर दिए गए उदाहरण को सेट करना चाहते हैं, तो आप दर्ज करेंगे 8888
स्रोत पोर्ट के रूप में और स्थानीय होस्ट: 1234
गंतव्य के रूप में। बाद में “Add” पर क्लिक करें और फिर SSH कनेक्शन को खोलने के लिए “Open” पर क्लिक करें। आपको कनेक्ट करने से पहले मुख्य "सत्र" स्क्रीन पर स्वयं SSH सर्वर का पता और पोर्ट दर्ज करना होगा.
लोग SSH सर्वर पर 8888 पोर्ट से जुड़ सकते हैं और आपके ट्रैफ़िक को आपके स्थानीय सिस्टम पर पोर्ट 1234 में पोर्ट किया जाएगा।.
डिफ़ॉल्ट रूप से, दूरस्थ SSH सर्वर केवल उसी होस्ट से कनेक्शन सुनेंगे। दूसरे शब्दों में, केवल उसी सिस्टम पर लोग जो SSH सर्वर से कनेक्ट करने में सक्षम होंगे। यह सुरक्षा कारणों से है। यदि आप इस व्यवहार को ओवरराइड करना चाहते हैं तो आपको दूरस्थ SSH सर्वर पर sshd_config में "GatewayPorts" विकल्प को सक्षम करना होगा।.
डायनेमिक पोर्ट फ़ॉरवर्डिंग: प्रॉक्सी के रूप में अपने SSH सर्वर का उपयोग करें
"डायनेमिक पोर्ट फ़ॉरवर्डिंग" भी है, जो प्रॉक्सी या वीपीएन के समान काम करता है। SSH क्लाइंट एक SOCKS प्रॉक्सी बनाएगा जिसका उपयोग करने के लिए आप एप्लिकेशन कॉन्फ़िगर कर सकते हैं। प्रॉक्सी के माध्यम से भेजे गए सभी ट्रैफ़िक को SSH सर्वर के माध्यम से भेजा जाएगा। यह स्थानीय अग्रेषण के समान है-यह आपके पीसी पर एक विशिष्ट पोर्ट पर भेजा गया स्थानीय ट्रैफ़िक लेता है और इसे SSH कनेक्शन पर दूरस्थ स्थान पर भेजता है.
उदाहरण के लिए, मान लें कि आप सार्वजनिक वाई-फाई नेटवर्क का उपयोग कर रहे हैं। आप सुरक्षित रूप से ब्राउज़ किए बिना ब्राउज़ करना चाहते हैं। यदि आपके पास घर पर एक एसएसएच सर्वर तक पहुंच है, तो आप इसे कनेक्ट कर सकते हैं और डायनेमिक पोर्ट फ़ॉरवर्डिंग का उपयोग कर सकते हैं। SSH क्लाइंट आपके पीसी पर एक SOCKS प्रॉक्सी बनाएगा। उस प्रॉक्सी पर भेजे गए सभी ट्रैफ़िक को SSH सर्वर कनेक्शन पर भेजा जाएगा। सार्वजनिक वाई-फाई नेटवर्क की निगरानी करने वाला कोई भी व्यक्ति आपके ब्राउज़िंग या उन वेबसाइटों को सेंसर करने में सक्षम नहीं होगा जिन्हें आप एक्सेस कर सकते हैं। आपके द्वारा देखी जाने वाली किसी भी वेबसाइट के दृष्टिकोण से, यह ऐसा होगा जैसे आप घर पर अपने पीसी के सामने बैठे थे। इसका मतलब यह भी है कि आप यूएस-ओनली वेबसाइट्स को एक्सेस करने के लिए इस ट्रिक का उपयोग कर सकते हैं, जबकि यूएसए के बाहर यह माना जाता है कि आपके पास यूएसए के एसएसएच सर्वर तक पहुंच है,.
एक अन्य उदाहरण के रूप में, आप अपने होम नेटवर्क पर मौजूद मीडिया सर्वर एप्लिकेशन का उपयोग करना चाह सकते हैं। सुरक्षा कारणों से, आपके पास केवल SSH सर्वर हो सकता है जो इंटरनेट से अवगत कराया गया हो। आप इंटरनेट से अपने मीडिया सर्वर अनुप्रयोग के लिए आने वाले कनेक्शन की अनुमति नहीं देते हैं। आप डायनेमिक पोर्ट फ़ॉरवर्डिंग सेट कर सकते हैं, SOCKS प्रॉक्सी का उपयोग करने के लिए वेब ब्राउज़र कॉन्फ़िगर कर सकते हैं, और फिर अपने होम नेटवर्क पर चल रहे सर्वर को वेब ब्राउज़र के माध्यम से एक्सेस कर सकते हैं जैसे कि आप घर पर अपने SSH सिस्टम के सामने बैठे थे। उदाहरण के लिए, यदि आपका मीडिया सर्वर आपके होम नेटवर्क पर पोर्ट 192.168.1.123 पर स्थित है, तो आप पते को प्लग कर सकते हैं 192.168.1.123
SOCKS प्रॉक्सी का उपयोग करके किसी भी एप्लिकेशन में और आप मीडिया सर्वर तक पहुंचेंगे जैसे कि आप अपने होम नेटवर्क पर थे.
डायनेमिक फ़ॉरवर्डिंग का उपयोग करने के लिए, ssh कमांड को रन करें -डी
तर्क, जैसे:
ssh -D local_port [email protected]
उदाहरण के लिए, मान लें कि आपके पास SSH सर्वर तक पहुंच है ssh.yourhome.com
और SSH सर्वर पर आपका उपयोगकर्ता नाम है बॉब
. आप वर्तमान पीसी पर पोर्ट 8888 पर SOCKS प्रॉक्सी खोलने के लिए डायनेमिक फ़ॉरवर्डिंग का उपयोग करना चाहते हैं। आप निम्न आदेश चलाएँगे:
ssh -D 8888 [email protected]
फिर आप अपने स्थानीय आईपी पते (127.0.01) और पोर्ट 8888 का उपयोग करने के लिए एक वेब ब्राउज़र या किसी अन्य एप्लिकेशन को कॉन्फ़िगर कर सकते हैं। उस एप्लिकेशन के सभी ट्रैफ़िक को सुरंग के माध्यम से पुनर्निर्देशित किया जाएगा.
विंडोज पर PuTTY में ऐसा करने के लिए, कनेक्शन> SSH> टनल चुनें। "डायनामिक" विकल्प चुनें। "स्रोत पोर्ट" के लिए, स्थानीय पोर्ट दर्ज करें.
उदाहरण के लिए, यदि आप पोर्ट 8888 पर एक SOCKS प्रॉक्सी बनाना चाहते हैं, तो आप दर्ज करेंगे 8888
स्रोत पोर्ट के रूप में। बाद में “Add” पर क्लिक करें और फिर SSH कनेक्शन को खोलने के लिए “Open” पर क्लिक करें। आपको कनेक्ट करने से पहले मुख्य "सत्र" स्क्रीन पर स्वयं SSH सर्वर का पता और पोर्ट दर्ज करना होगा.
फिर आप अपने स्थानीय पीसी (जो आईपी पते 127.0.0.1, जो आपके स्थानीय पीसी को इंगित करता है) पर SOCKS प्रॉक्सी का उपयोग करने के लिए एक एप्लिकेशन कॉन्फ़िगर कर सकते हैं और सही पोर्ट निर्दिष्ट कर सकते हैं.
उदाहरण के लिए, आप SOCKS प्रॉक्सी का उपयोग करने के लिए फ़ायरफ़ॉक्स को कॉन्फ़िगर कर सकते हैं। यह विशेष रूप से उपयोगी है क्योंकि फ़ायरफ़ॉक्स की अपनी प्रॉक्सी सेटिंग्स हो सकती हैं और सिस्टम-वाइड प्रॉक्सी सेटिंग्स का उपयोग नहीं करना पड़ता है। फ़ायरफ़ॉक्स एसएसएच सुरंग के माध्यम से अपना ट्रैफ़िक भेजेगा, जबकि अन्य एप्लिकेशन आपके इंटरनेट कनेक्शन का सामान्य रूप से उपयोग करेंगे.
फ़ायरफ़ॉक्स में ऐसा करते समय, "मैन्युअल प्रॉक्सी कॉन्फ़िगरेशन" का चयन करें, SOCKS होस्ट बॉक्स में "127.0.0.1" दर्ज करें, और "पोर्ट" बॉक्स में डायनेमिक पोर्ट दर्ज करें। HTTP प्रॉक्सी, एसएसएल प्रॉक्सी, और एफ़टीपी प्रॉक्सी बॉक्स खाली छोड़ दें.
जब तक आपके पास SSH सत्र कनेक्शन खुला रहेगा, तब तक यह सुरंग सक्रिय रहेगी और खुली रहेगी। जब आप अपना SSH सत्र समाप्त करते हैं और किसी सर्वर से डिस्कनेक्ट होते हैं, तो सुरंग भी बंद हो जाएगी। सुरंग को फिर से खोलने के लिए बस उपयुक्त कमांड (या PuTTY में उपयुक्त विकल्प) के साथ फिर से कनेक्ट करें.