एंड्रॉयड

Ssh टनलिंग (पोर्ट फ़ॉरवर्डिंग) कैसे सेट करें

FortiGate SSL VPN Configuration (FortiOS 6.4.0 Basic)

FortiGate SSL VPN Configuration (FortiOS 6.4.0 Basic)

विषयसूची:

Anonim

SSH टनलिंग या SSH पोर्ट फ़ॉरवर्डिंग एक क्लाइंट और सर्वर मशीन के बीच एक एन्क्रिप्टेड SSH कनेक्शन बनाने की एक विधि है जिसके माध्यम से सर्विस पोर्ट्स को रिले किया जा सकता है।

SSH अग्रेषण सेवाओं के नेटवर्क डेटा को ट्रांसपोर्ट करने के लिए उपयोगी है जो वीएनसी या एफ़टीपी जैसे अनएन्क्रिप्टेड प्रोटोकॉल का उपयोग करता है, जो भू-प्रतिबंधित सामग्री तक पहुँच प्राप्त करता है या मध्यवर्ती फायरवॉल को दरकिनार करता है। मूल रूप से, आप किसी भी टीसीपी पोर्ट को अग्रेषित कर सकते हैं और सुरक्षित एसएसएच कनेक्शन पर ट्रैफिक को टनल कर सकते हैं।

एसएसएच पोर्ट अग्रेषण के तीन प्रकार हैं:

  • स्थानीय पोर्ट अग्रेषण। - क्लाइंट होस्ट से SSH सर्वर होस्ट और फिर गंतव्य होस्ट पोर्ट के लिए कनेक्शन के लिए। पोर्ट पोर्ट अग्रेषण। - सर्वर होस्ट से क्लाइंट होस्ट तक एक पोर्ट फॉरवर्ड और फिर डेस्टिनेशन पोर्ट पोर्ट। डायनामिक पोर्ट फ़ॉरवर्डिंग। - SOCKS प्रॉक्सी सर्वर बनाता है जो पोर्ट की एक सीमा में संचार की अनुमति देता है।

, हम स्थानीय, दूरस्थ और गतिशील एन्क्रिप्टेड SSH सुरंगों को कैसे सेट करें, इसके बारे में बात करेंगे।

स्थानीय पोर्ट अग्रेषण

स्थानीय पोर्ट फ़ॉरवर्डिंग आपको रिमोट (ssh सर्वर) मशीन पर पोर्ट के लिए स्थानीय (ssh क्लाइंट) मशीन पर एक पोर्ट अग्रेषित करने की अनुमति देता है, जिसे तब गंतव्य मशीन पर एक पोर्ट के लिए अग्रेषित किया जाता है।

इस प्रकार के अग्रेषण में SSH क्लाइंट किसी दिए गए पोर्ट पर सुनता है और उस पोर्ट के किसी भी कनेक्शन को दूरस्थ SSH सर्वर पर निर्दिष्ट पोर्ट पर सुनता है, जो तब गंतव्य मशीन पर एक पोर्ट से जुड़ता है। गंतव्य मशीन दूरस्थ SSH सर्वर या कोई अन्य मशीन हो सकती है।

स्थानीय पोर्ट फ़ॉरवर्डिंग का उपयोग ज्यादातर किसी आंतरिक नेटवर्क जैसे डेटाबेस या वीएनसी सर्वर पर दूरस्थ सेवा से कनेक्ट करने के लिए किया जाता है।

Linux, macOS और अन्य यूनिक्स सिस्टम में ssh क्लाइंट के लिए -L विकल्प पास करने के लिए एक स्थानीय पोर्ट बनाने के लिए:

ssh -L LOCAL_PORT:DESTINATION:DESTINATION_PORT SSH_SERVER

उपयोग किए गए विकल्प इस प्रकार हैं:

  • LOCAL_PORT - स्थानीय मशीन आईपी और पोर्ट नंबर। जब LOCAL_IP को छोड़ दिया जाता है तो ssh क्लाइंट लोकलहोस्ट पर बांध देता है। DESTINATION:DESTINATION_PORT - IP या होस्टनाम और गंतव्य मशीन का पोर्ट। SERVER_IP - दूरस्थ SSH उपयोगकर्ता और सर्वर IP पता।

आप LOCAL_PORT रूप में 1024 से अधिक किसी भी पोर्ट संख्या का उपयोग कर सकते हैं। 1024 से कम पोर्ट नंबर विशेषाधिकार प्राप्त पोर्ट हैं और केवल रूट द्वारा उपयोग किए जा सकते हैं। यदि आपका SSH सर्वर 22 (डिफ़ॉल्ट) के अलावा किसी पोर्ट पर सुन रहा है -p विकल्प का उपयोग करें।

गंतव्य होस्टनाम को SSH सर्वर से फिर से शुरू किया जाना चाहिए।

मान लें कि आपके पास एक आंतरिक (निजी) नेटवर्क पर मशीन db001.host पर चल रहा MySQL डेटाबेस सर्वर है, जो पोर्ट 3306 पर उपलब्ध है, जो मशीन pub001.host से सुलभ है और आप अपने स्थानीय मशीन mysql क्लाइंट का उपयोग डेटाबेस सर्वर से करना चाहते हैं। ऐसा करने के लिए आप कनेक्शन को आगे भेज सकते हैं जैसे:

ssh -L 3336:db001.host:3306 [email protected]

एक बार जब आप कमांड चलाते हैं, तो आपको दूरस्थ SSH उपयोगकर्ता पासवर्ड दर्ज करने के लिए प्रेरित किया जाएगा। इसे दर्ज करने के बाद, आपको रिमोट सर्वर में लॉग इन किया जाएगा और एसएसएच सुरंग स्थापित की जाएगी। SSH कुंजी-आधारित प्रमाणीकरण सेट करना और पासवर्ड दर्ज किए बिना सर्वर से कनेक्ट करना एक अच्छा विचार है।

अब यदि आप अपने स्थानीय मशीन डेटाबेस क्लाइंट को 127.0.0.1:3336 इंगित करते हैं, तो कनेक्शन को pub001.host मशीन के माध्यम से db001.host:3306 MySQL सर्वर पर भेजा जाएगा जो एक मध्यवर्ती सर्वर के रूप में कार्य करेगा।

आप एक ही ssh कमांड में कई पोर्ट्स को कई डेस्टिनेशन पर फॉरवर्ड कर सकते हैं। उदाहरण के लिए, आपके पास मशीन पर db002.host पर एक और MySQL डेटाबेस सर्वर चल रहा है और आप अपने स्थानीय क्लाइंट से उन दोनों सर्वरों से जुड़ना चाहते हैं जो आप चलाएंगे:

ssh -L 3336:db001.host:3306 3337:db002.host:3306 [email protected]

दूसरे सर्वर से जुड़ने के लिए आप 127.0.0.1:3337 उपयोग करेंगे।

जब गंतव्य होस्ट IP होस्ट या होस्टनाम निर्दिष्ट करने के बजाय SSH सर्वर के समान है, तो आप localhost उपयोग कर सकते हैं।

कहें कि आपको वीएनसी के माध्यम से एक रिमोट मशीन से कनेक्ट करने की आवश्यकता है जो एक ही सर्वर पर चलती है और यह बाहर से सुलभ नहीं है। आपके द्वारा उपयोग की जाने वाली कमांड है:

ssh -L 5901:127.0.0.1:5901 -N -f [email protected]

-f विकल्प ssh कमांड को बैकग्राउंड में चलने के लिए कहता है और -N रिमोट कमांड को निष्पादित नहीं करता है। हम localhost का उपयोग कर रहे हैं क्योंकि VNC और SSH सर्वर एक ही होस्ट पर चल रहे हैं।

रिमोट पोर्ट अग्रेषण

रिमोट पोर्ट फ़ॉरवर्डिंग स्थानीय पोर्ट फ़ॉरवर्डिंग के विपरीत है। यह आपको दूरस्थ (ssh सर्वर) मशीन पर एक पोर्ट को स्थानीय (ssh क्लाइंट) मशीन पर पोर्ट को अग्रेषित करने की अनुमति देता है, जिसे बाद में गंतव्य मशीन पर पोर्ट के लिए अग्रेषित किया जाता है।

इस प्रकार के अग्रेषण में SSH सर्वर किसी दिए गए पोर्ट पर सुनता है और उस पोर्ट के किसी भी कनेक्शन को स्थानीय SSH क्लाइंट पर निर्दिष्ट पोर्ट पर सुनता है, जो तब गंतव्य मशीन पर एक पोर्ट से जुड़ता है। गंतव्य मशीन स्थानीय या कोई अन्य मशीन हो सकती है।

लिनक्स में, macOS और अन्य यूनिक्स सिस्टम, जो ssh क्लाइंट के लिए -R विकल्प पास करने के लिए एक रिमोट पोर्ट बनाते हैं:

ssh -R REMOTE_PORT:DESTINATION:DESTINATION_PORT SSH_SERVER

उपयोग किए गए विकल्प इस प्रकार हैं:

  • REMOTE_PORT - दूरस्थ SSH सर्वर पर IP और पोर्ट नंबर। एक खाली REMOTE अर्थ है कि दूरस्थ SSH सर्वर सभी इंटरफेस पर बंध जाएगा। DESTINATION:DESTINATION_PORT - IP या होस्टनाम और गंतव्य मशीन का पोर्ट। SERVER_IP - दूरस्थ SSH उपयोगकर्ता और सर्वर IP पता।

स्थानीय पोर्ट फ़ॉरवर्डिंग का उपयोग ज्यादातर बाहरी लोगों को आंतरिक सेवा तक पहुंच प्रदान करने के लिए किया जाता है।

मान लीजिए कि आप अपने स्थानीय मशीन पर एक वेब एप्लिकेशन विकसित कर रहे हैं और आप अपने साथी डेवलपर को एक पूर्वावलोकन दिखाना चाहते हैं। आपके पास एक सार्वजनिक आईपी नहीं है इसलिए अन्य डेवलपर इंटरनेट के माध्यम से आवेदन तक नहीं पहुंच सकते हैं।

ssh -L 8080:127.0.0.1:3000 -N -f [email protected]

ऊपर की कमांड ssh सर्वर को पोर्ट 8080 पर सुनने के लिए 8080 और इस पोर्ट से सभी ट्रैफिक को आपके लोकल मशीन को पोर्ट 3000 पर भेज देगी।

अब आपका साथी डेवलपर अपने ब्राउज़र में the_ssh_server_ip:8080 टाइप कर सकता है और आपके भयानक एप्लिकेशन का पूर्वावलोकन कर सकता है।

डायनेमिक पोर्ट फ़ॉरवर्डिंग

डायनेमिक पोर्ट फ़ॉरवर्डिंग आपको स्थानीय (ssh क्लाइंट) मशीन पर सॉकेट बनाने की अनुमति देता है जो SOCKS प्रॉक्सी सर्वर के रूप में कार्य करता है। जब कोई ग्राहक इस पोर्ट से जुड़ता है तो कनेक्शन को रिमोट (ssh सर्वर) मशीन पर भेज दिया जाता है, जिसे बाद में गंतव्य मशीन पर डायनेमिक पोर्ट पर भेज दिया जाता है।

इस तरह, SOCKS प्रॉक्सी का उपयोग करने वाले सभी एप्लिकेशन SSH सर्वर से जुड़ जाएंगे और सर्वर सभी ट्रैफ़िक को उसके वास्तविक गंतव्य पर भेज देगा।

लिनक्स, macOS और अन्य यूनिक्स सिस्टम में डायनेमिक पोर्ट फॉरवर्डिंग (SOCKS) बनाने के लिए -D लिए -D विकल्प पास करें:

ssh -D LOCAL_PORT SSH_SERVER

उपयोग किए गए विकल्प इस प्रकार हैं:

  • LOCAL_PORT - स्थानीय मशीन आईपी और पोर्ट नंबर। जब LOCAL_IP को छोड़ दिया जाता है तो ssh क्लाइंट लोकलहोस्ट पर बांध देता है। SERVER_IP - दूरस्थ SSH उपयोगकर्ता और सर्वर IP पता।

डायनेमिक पोर्ट फ़ॉरवर्डिंग का एक विशिष्ट उदाहरण SSH सर्वर के माध्यम से वेब ब्राउज़र ट्रैफ़िक को टनल करना है।

निम्न आदेश पोर्ट 9090 पर एक SOCKS सुरंग बनाएगा:

ssh -D 9090 -N -f [email protected]

एक बार टनलिंग स्थापित होने के बाद आप इसका उपयोग करने के लिए अपने एप्लिकेशन को कॉन्फ़िगर कर सकते हैं। यह आलेख बताता है कि SOCKS प्रॉक्सी का उपयोग करने के लिए फ़ायरफ़ॉक्स और Google क्रोम ब्राउज़र को कैसे कॉन्फ़िगर किया जाए।

पोर्ट फ़ॉरवर्डिंग को प्रत्येक एप्लिकेशन के लिए अलग से कॉन्फ़िगर करना पड़ता है जिसे आप ट्रैफ़िक को सुरंग करना चाहते हैं।

Windows में SSH टनलिंग सेट करें

विंडोज उपयोगकर्ता PuTTY SSH क्लाइंट का उपयोग करके SSH सुरंग बना सकते हैं। आप यहां पुट्टी डाउनलोड कर सकते हैं।

  1. पोटीन लॉन्च करें और Host name (or IP address) क्षेत्र में एसएसएच सर्वर आईपी पता दर्ज करें।

    आपके उपयोगकर्ता नाम और पासवर्ड के लिए पूछने वाली एक नई विंडो दिखाई देगी। एक बार जब आप अपना उपयोगकर्ता नाम और पासवर्ड दर्ज करते हैं, तो आप अपने सर्वर पर लॉग इन हो जाएंगे और एसएसएच सुरंग शुरू हो जाएगी।

    सार्वजनिक कुंजी प्रमाणीकरण सेट करना आपको पासवर्ड दर्ज किए बिना अपने सर्वर से कनेक्ट करने की अनुमति देगा।

निष्कर्ष

हमने आपको दिखाया है कि एसएसएच सुरंगों को कैसे स्थापित किया जाए और सुरक्षित एसएसएच कनेक्शन के माध्यम से यातायात को आगे बढ़ाया जाए। उपयोग में आसानी के लिए, आप अपनी SSH विन्यास फाइल में SSH सुरंग को परिभाषित कर सकते हैं या एक Bash उपनाम बना सकते हैं जो SSH सुरंग स्थापित करेगा।

ssh सुरक्षा