सुरंग के माध्यम से विशिष्ट पतों को कैसे रूट करें?


14

कुछ वेबसाइटें / सेवाएं हैं जिन्हें मैं केवल सबनेट से एक्सेस कर सकता हूं जिस पर मेरा सर्वर स्थित है (विशिष्ट इंट्रानेट परिदृश्य के बारे में सोचें)। क्या एसएसएच सुरंग के माध्यम से इन पतों पर जाने वाले ट्रैफ़िक को पारदर्शी तरीके से चलाने का कोई तरीका है?

निम्नलिखित सेटअप पर विचार करें:

मेरा लैपटॉप होम नेटवर्क पर जुड़ा हुआ है। यह ips X और Y पर सेवाओं को सीधे एक्सेस नहीं कर सकता है। मेरे पास एक सर्वर के लिए एक एसएसएच सुरंग है जो एक सबनेट पर है जो वास्तव में इन सेवाओं तक पहुंच सकता है।

क्या मैं पूरे वीपीएन समाधान को चलाने के लिए एक्स-वाई के सब ट्रैफ़िक को स्वचालित रूप से इस सुरंग से जाने के लिए सभी ट्रैफ़िक को एन्क्रिप्ट कर सकता हूं, जो सर्वर के माध्यम से मेरे सभी ट्रैफ़िक को भेज देगा? दूसरे शब्दों में: सभी ट्रैफ़िक जो किसी भी अन्य सबनेट पर जाते हैं, उन्हें अभी भी सीधे सर्वर से गुजरने के बिना (सुरंग का उपयोग करके) लैपटॉप से ​​जाना चाहिए।

जवाबों:


6

आप इंटरफ़ेस को निर्दिष्ट कर सकते हैं जिसके माध्यम से रूटिंग तालिका में ट्रैफ़िक को रूट किया जा सकता है:

sudo route add <host.com> -interface <ppp0>

जहाँ host.com होस्टनाम या आईपी है जिसे आप इंटरफ़ेस के माध्यम से एक्सेस करना चाहते हैं, और ppp0 ifconfigकमांड के साथ दिखाए गए आपके vpn के लिए लिंक पहचानकर्ता है ।


2
नोट: कम से कम ubuntu पर -interfaceकोई विकल्प नहीं है routeइसलिए उपरोक्त सुझाव एक उपयोग त्रुटि देता है। यह भी कैसे ओपी पूछता है के रूप में ssh सुरंग के माध्यम से मार्ग में परिणाम होगा?
21

3

OpenSSH के हाल के संस्करण सच्चे वीपीएन समर्थन के लिए ट्यून / टैप नेटवर्क उपकरणों का समर्थन करते हैं। कुछ बुनियादी प्रलेखन के लिए https://help.ubuntu.com/community/SSH_VPN देखें (स्पष्ट रूप से उबंटू के लिए अभिप्रेत है, लेकिन मूल सिद्धांत कहीं और लागू होता है।)


ध्यान दें कि इसके लिए लैपटॉप और गेटवे होस्ट पर रूट विशेषाधिकार की आवश्यकता होती है।
रिकार्डो मुर्री

1

अस्वीकरण: मैंने वास्तव में परीक्षण नहीं किया है कि मैं क्या वर्णन करने जा रहा हूं, और वास्तव में यह पूरी तरह से गलत हो सकता है, लेकिन आपका प्रश्न इतना पेचीदा है कि मैं उत्तर का मसौदा तैयार करने के लिए प्रलोभन का विरोध नहीं कर सकता। :-) इसके अलावा, यहां सेटअप कुछ iptablesकार्यक्षमता पर निर्भर करता है जो केवल लिनक्स पर मौजूद हो सकता है।

मान लें कि आप अपने लैपटॉप से ​​सर्वर एक्स 1 पर एक विशिष्ट पोर्ट पी 1 से कनेक्ट करना चाहते हैं, सर्वर एक्स 2 पर पी 2 को पोर्ट करने के लिए, आदि - मैं एसएसएच सुरंग के माध्यम से इन विशिष्ट सर्वर + पोर्ट जोड़े के लिए टीसीपी ट्रैफ़िक को कैसे रूट करना है इसका वर्णन करने जा रहा हूं। नोट: IP पते X1, X2, आदि सर्वर के IP पते हैं जो गेटवे होस्ट (जिसे आप SSH में हैं) से देखा जाता है।

  1. कुछ अप्रयुक्त स्थानीय बंदरगाहों का चयन करें L1 (जैसे 10000), L2 (जैसे 10001), आदि Ports L1, L2, ..., सभी अलग-अलग होने चाहिए और उनकी संख्या अलग-अलग (Xn, Pn) सर्वर + की संख्या के बराबर होनी चाहिए। पोर्ट जोड़े।

  2. iptablesXn के लिए निर्देशित पैकेटों का उपयोग करें : लोकलहोस्ट पर Pn: Ln

    iptables -t nat -A OUTPUT -p tcp -d X1 --dport P1 -j DNAT --to-local Localhost: L1 iptables -t nat -A-OUTPUT -p tcp -d X2 --dport P2 -j DNAT - गंतव्य के लिए लोकलहोस्ट: L2

  3. अब SSH से गेटवे तक, -Lलोकलहोस्ट से सुरंग यातायात के विकल्प का उपयोग करते हुए : Ln to (Xn, Pn):

    ssh gateway.server -L localhost: L1: X1: P1 -L localhost: L2: X2: 2 ...

उदाहरण:

# access webserver.intranet (port 80) through localhost:10080
iptables -t nat -A OUTPUT -p tcp -d webserver.intranet --dport 80 -j DNAT --to-destination localhost:10080
ssh gateway.server -L locahost:10080:webserver.intranet:80

चेतावनियां:

  • यह केवल टीसीपी के लिए काम करता है, अगर यह बिल्कुल काम करता है ...

  • यदि आप एक से अधिक सर्वर एक्सेस करना चाहते हैं, तो शायद वीपीएन सेटअप करना कम काम है

  • यह अभी भी SSH -Dविकल्प का उपयोग करने के लिए एक SOCKS प्रॉक्सी का अनुकरण और उस के माध्यम से अपने सभी यातायात सुरंग आसान हो सकता है।


यह वास्तव में काम करता है! (दुख की बात है कि यह मेरी विशिष्ट स्थिति पर फिट नहीं बैठता है, जहाँ मैं ट्रैफ़िक को रूट करना चाहता हूँ जो एक स्थानीय मशीन से उत्पन्न होता है, लोकलहोस्ट से नहीं।)
पैवगोरन

1

एक्स और वाई के सबनेट इस सुरंग के माध्यम से जाने के लिए, पूरे वीपीएन समाधान को चलाने के बिना, जो सर्वर के माध्यम से मेरे सभी ट्रैफ़िक को भेजेगा?

आप जो चाहते हैं वह एक वीपीएन की परिभाषा है।

एक वीपीएन नहीं होना चाहिए

सर्वर के माध्यम से सभी [अपने] ट्रैफ़िक भेजें?

यदि यह है, तो यह ठीक से सेटअप नहीं है।

यह माना जाता है कि कोई भी मशीन आपके माध्यम से एक सुरंग या वीपीएन के माध्यम से एक्सेस करने की कोशिश कर रही है, परिभाषा के अनुसार, इंटरनेट के माध्यम से सुलभ नहीं है। इसलिए, केवल आवश्यक, गैर-इंटरनेट रूटेबल पते को वीपीएन के नीचे रूट किया जाना चाहिए।

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


0

क्या मैं पूरे वीपीएन समाधान को चलाने के लिए एक्स-वाई के सब ट्रैफ़िक को स्वचालित रूप से इस सुरंग से जाने के लिए सभी ट्रैफ़िक को एन्क्रिप्ट कर सकता हूं, जो सर्वर के माध्यम से मेरे सभी ट्रैफ़िक को भेज देगा?

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

दूसरे शब्दों में: सभी ट्रैफ़िक जो किसी भी अन्य सबनेट पर जाते हैं, उन्हें अभी भी सीधे सर्वर से गुजरने के बिना (सुरंग का उपयोग करके) लैपटॉप से ​​जाना चाहिए।

फिर, एक वीपीएन उसका ख्याल रखेगा।

यदि आप सुरक्षित वीपीएन ट्रैफ़िक प्राप्त करने के लिए "हैवीवेट" समाधान के बारे में चिंतित हैं (यानी आप इसके साथ बंदर नहीं करना चाहते हैं क्योंकि यह बहुत जटिल होगा) तो आपको वास्तव में ओपनवीपीएन को देखना चाहिए , जो कि आप जो वर्णन कर रहे हैं वह वास्तव में करेंगे। न केवल यह सभी ट्रैफ़िक को बाधित करेगा, बल्कि यह इस तरह से किया जा सकता है कि केवल उन सबनेट्स के लिए नियत ट्रैफ़िक ही वीपीएन पाइप के ऊपर यात्रा कर देगा। मैं आपको चेतावनी दूंगा कि आपको अभी भी स्थानीय और दूरस्थ मशीन (ओं) पर एक पाठ फ़ाइल को संपादित करने की आवश्यकता होगी, लेकिन इसे चलाना आसान है।

आपके उद्देश्यों के लिए, क्योंकि आप नहीं चाहते हैं कि पार्टी आपके ट्रैफ़िक को देखने के लिए बीच में (एक सर्वर) हो, आप वीपीएन को अपने मशीन से सीधे रिमोट मशीन से कनेक्ट करने के लिए सेट करेंगे। आपके लैपटॉप को छोड़ने से पहले किसी भी रूट किए गए पैकेट को एन्क्रिप्ट किया जाएगा, ताकि आपके पास 100% एंड-टू-एंड कवरेज हो।


0

जैसा कि अन्य लोगों ने कहा है, यदि आपको "सब ट्रैफ़िक को सबनेट में बदलना होगा," तो आप शायद वीपीएन का उपयोग करना चाहते हैं।

हालाँकि, केवल कुछ सेवाओं तक पहुँचने के लिए, आप SSH के स्थानीय पोर्ट फ़ॉरवर्डिंग फीचर का उपयोग करना चाह सकते हैं, जो वास्तव में सरल है। उदाहरण के लिए, यदि आप (अपने लैपटॉप से) दर्ज करते हैं:

ssh -N -L 3333:localhost:2222 jump_box

फिर से कनेक्ट करना localhost:2222, से कनेक्ट करने localhost:2222जैसा होगा jump_box। आप एक साथ कई -L विकल्पों का उपयोग कर सकते हैं, और यदि ssd_config jump_boxइसे अनुमति देता है तो आप अन्य होस्ट पर सेवाओं से जुड़ सकते हैं ।

आप सुरंगों को ऊपर रखने और चलाने के लिए या इसके autosshसाथ उपयोग कर सकते हैं systemd

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.