एक SSH क्लाइंट एक से जोड़ता है सुरक्षित शेल सर्वर , जो आपको टर्मिनल कमांड चलाने की अनुमति देता है जैसे कि आप दूसरे कंप्यूटर के सामने बैठे थे। लेकिन एक SSH क्लाइंट आपको अपने स्थानीय सिस्टम और एक दूरस्थ SSH सर्वर के बीच एक पोर्ट "सुरंग" करने की अनुमति देता है।
एसएसएच टनलिंग के तीन अलग-अलग प्रकार हैं, और वे सभी विभिन्न प्रयोजनों के लिए उपयोग किए जाते हैं। प्रत्येक में एक नेटवर्क पोर्ट से दूसरे ट्रैफ़िक को पुनर्निर्देशित करने के लिए SSH सर्वर का उपयोग करना शामिल है। ट्रैफ़िक एन्क्रिप्टेड SSH कनेक्शन पर भेजा जाता है, इसलिए इसे पारगमन में निगरानी या संशोधित नहीं किया जा सकता है।
आप इसके साथ कर सकते हैं
ssh
Linux, macOS और अन्य पर कमांड शामिल है
UNIX- जैसे
ऑपरेटिंग सिस्टम। विंडोज पर, जिसमें बिल्ट-इन ssh कमांड शामिल नहीं है, हम मुफ्त टूल की सलाह देते हैं
पुट्टी
SSH सर्वर से कनेक्ट करने के लिए। यह SSH टनलिंग का भी समर्थन करता है।
स्थानीय पोर्ट फ़ॉरवर्डिंग: अपने स्थानीय सिस्टम पर दूरस्थ संसाधनों को सुलभ बनाएँ
"स्थानीय पोर्ट फ़ॉरवर्डिंग" आपको स्थानीय नेटवर्क संसाधनों का उपयोग करने की अनुमति देता है जो इंटरनेट के संपर्क में नहीं आते हैं। उदाहरण के लिए, मान लें कि आप अपने घर से अपने कार्यालय में एक डेटाबेस सर्वर का उपयोग करना चाहते हैं। सुरक्षा कारणों से, वह डेटाबेस सर्वर केवल स्थानीय कार्यालय नेटवर्क से कनेक्शन स्वीकार करने के लिए कॉन्फ़िगर किया गया है। लेकिन अगर आपके पास कार्यालय में एक एसएसएच सर्वर तक पहुंच है, और वह एसएसएच सर्वर कार्यालय नेटवर्क के बाहर से कनेक्शन की अनुमति देता है, तो आप घर से उस एसएसएच सर्वर से कनेक्ट कर सकते हैं और डेटाबेस सर्वर तक पहुंच सकते हैं जैसे कि आप कार्यालय में थे। यह अक्सर ऐसा होता है, क्योंकि विभिन्न नेटवर्क संसाधनों को सुरक्षित करने की तुलना में हमलों के खिलाफ एक एकल एसएसएच सर्वर को सुरक्षित करना आसान होता है।
ऐसा करने के लिए, आप एसएसएच सर्वर के साथ एक एसएसएच कनेक्शन स्थापित करते हैं और क्लाइंट को अपने स्थानीय पीसी से एक विशिष्ट पोर्ट से ट्रैफिक को आगे बढ़ाने के लिए कहते हैं- उदाहरण के लिए, पोर्ट 1234 - डेटाबेस के सर्वर के पते और कार्यालय नेटवर्क पर इसके पोर्ट। इसलिए, जब आप डेटाबेस सर्वर को अपने वर्तमान पीसी पोर्ट 1234, "लोकलहोस्ट" पर एक्सेस करने का प्रयास करते हैं, तो वह ट्रैफिक एसएसएच कनेक्शन पर स्वचालित रूप से "टनल" हो जाता है और डेटाबेस सर्वर को भेज दिया जाता है। SSH सर्वर ट्रैफ़िक को आगे और पीछे बीच में बैठाता है। आप डेटाबेस सर्वर तक पहुंचने के लिए किसी भी कमांड लाइन या ग्राफिकल टूल का उपयोग कर सकते हैं जैसे कि यह आपके स्थानीय पीसी पर चल रहा हो।
स्थानीय अग्रेषण का उपयोग करने के लिए, सामान्य रूप से SSH सर्वर से कनेक्ट करें, लेकिन आपूर्ति भी करें
-एल
बहस। वाक्य रचना है:
ssh -L local_port: Remote_address: Remote_port [email protected]
उदाहरण के लिए, मान लें कि आपके कार्यालय का डेटाबेस सर्वर कार्यालय नेटवर्क पर 192.168.1.111 पर स्थित है। आपके पास कार्यालय के SSH सर्वर तक पहुंच है
एसएसएच.योरोफिके.कॉम
, और SSH सर्वर पर आपका उपयोगकर्ता खाता है
बॉब
। उस स्थिति में, आपकी कमांड इस तरह दिखाई देगी:
ssh -L 8888: 192.168.1.111: 1234 [email protected]
उस कमांड को चलाने के बाद, आप डेटाबेस सर्वर को लोकलहोस्ट पर 8888 पर एक्सेस करने में सक्षम होंगे। इसलिए, यदि डेटाबेस सर्वर ने वेब एक्सेस की पेशकश की है, तो आप इसे एक्सेस करने के लिए http: // localhost: 8888 को अपने वेब ब्राउजर में प्लग इन कर सकते हैं। यदि आपके पास एक कमांड लाइन उपकरण है जिसे डेटाबेस के नेटवर्क पते की आवश्यकता है, तो आप इसे स्थानीयहोस्ट: 8888 पर इंगित करेंगे। आपके पीसी पर 8888 पोर्ट पर भेजे गए सभी ट्रैफ़िक को आपके कार्यालय नेटवर्क पर 192.168.1.111:1234 पर टनल किया जाएगा।
यदि आप SSH सर्वर के समान सिस्टम पर चल रहे सर्वर एप्लिकेशन से कनेक्ट करना चाहते हैं तो यह थोड़ा अधिक भ्रमित करने वाला है। उदाहरण के लिए, मान लें कि आपके कार्यालय के कंप्यूटर पर पोर्ट 22 पर एक SSH सर्वर चल रहा है, लेकिन आपके पास एक डेटाबेस सर्वर भी उसी पते पर समान सिस्टम पर पोर्ट 1234 पर चल रहा है। आप घर से डेटाबेस सर्वर का उपयोग करना चाहते हैं, लेकिन सिस्टम केवल पोर्ट 22 पर एसएसएच कनेक्शन स्वीकार कर रहा है और इसके फ़ायरवॉल किसी अन्य बाहरी कनेक्शन की अनुमति नहीं देता है।
इस स्थिति में, आप निम्न की तरह एक कमांड चला सकते हैं:
ssh -L 8888: localhost: 1234 [email protected]
जब आप अपने वर्तमान पीसी पर पोर्ट 8888 पर डेटाबेस सर्वर तक पहुंचने का प्रयास करते हैं, तो ट्रैफिक को एसएसएच कनेक्शन पर भेजा जाएगा। जब यह SSH सर्वर को चलाने वाले सिस्टम पर आता है, SSH सर्वर इसे "लोकलहोस्ट" पर 1234 पोर्ट करने के लिए भेजेगा, जो एसएसएच सर्वर को चलाने वाला एक ही पीसी है। तो ऊपर दिए गए कमांड में "लोकलहोस्ट" का मतलब रिमोट सर्वर के नजरिए से "लोकलहोस्ट" है।
विंडोज पर 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]
मान लें कि आप अपने स्थानीय पीसी पर पोर्ट 834 पर दूरस्थ एसएसएच सर्वर पर उपलब्ध पोर्ट 1234 पर एक सर्वर एप्लीकेशन सुनना चाहते हैं। SSH सर्वर का पता है
एसएसएच.योरोफिके.कॉम
और 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 सर्वर के समान सिस्टम पर ही लोग कनेक्ट कर पाएंगे। यह सुरक्षा कारणों से है। आपको "गेटवेपोर्ट" विकल्प को सक्षम करने की आवश्यकता होगी sshd_config दूरस्थ SSH सर्वर पर यदि आप इस व्यवहार को ओवरराइड करना चाहते हैं।
डायनेमिक पोर्ट फ़ॉरवर्डिंग: प्रॉक्सी के रूप में अपने SSH सर्वर का उपयोग करें
सम्बंधित: एक वीपीएन और एक प्रॉक्सी के बीच अंतर क्या है?
"डायनेमिक पोर्ट फ़ॉरवर्डिंग" भी है, जो प्रॉक्सी या वीपीएन के समान ही काम करता है। SSH क्लाइंट a बनाएगा 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 सर्वर पर आपका उपयोगकर्ता नाम है
बॉब
। आप वर्तमान PC पर पोर्ट 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 प्रॉक्सी का उपयोग करने के लिए फ़ायरफ़ॉक्स को कॉन्फ़िगर करें । यह विशेष रूप से उपयोगी है क्योंकि फ़ायरफ़ॉक्स की अपनी प्रॉक्सी सेटिंग्स हो सकती हैं और सिस्टम-वाइड प्रॉक्सी सेटिंग्स का उपयोग नहीं करना पड़ता है। फ़ायरफ़ॉक्स एसएसएच सुरंग के माध्यम से अपना ट्रैफ़िक भेजेगा, जबकि अन्य एप्लिकेशन आपके इंटरनेट कनेक्शन का सामान्य रूप से उपयोग करेंगे।
फ़ायरफ़ॉक्स में ऐसा करते समय, "मैन्युअल प्रॉक्सी कॉन्फ़िगरेशन" का चयन करें, "127.0.0.1" सॉक्स होस्ट बॉक्स में दर्ज करें, और डायनेमिक पोर्ट को "पोर्ट" बॉक्स में दर्ज करें। HTTP प्रॉक्सी, SSL प्रॉक्सी, और FTP प्रॉक्सी बॉक्स खाली छोड़ दें।
जब तक आपके पास SSH सत्र कनेक्शन खुला रहेगा, तब तक यह सुरंग सक्रिय रहेगी और खुली रहेगी। जब आप अपना SSH सत्र समाप्त करते हैं और सर्वर से डिस्कनेक्ट होते हैं, तो सुरंग भी बंद हो जाएगी। सुरंग को फिर से खोलने के लिए बस उपयुक्त कमांड (या PuTTY में उपयुक्त विकल्प) के साथ फिर से कनेक्ट करें।