सवाल एसएसएच के माध्यम से मैं अपने सभी नेटवर्क यातायात को कैसे सुरंग कर सकता हूं?


जब भी मैं एक असुरक्षित स्थान (जैसे सार्वजनिक वाईफाई) से इंटरनेट का उपयोग कर रहा हूं, मुझे एक एसएस सुरंग का उपयोग करना पसंद है (ssh -D port host) यह सुनिश्चित करने के लिए कि मेरे यातायात को स्नीफ नहीं किया जा सकता है। दुर्भाग्यवश, ऐसे कई अनुप्रयोग प्रतीत होते हैं जो प्रॉक्सी निर्दिष्ट करने का तरीका प्रदान नहीं करते हैं (फ्लैश एक प्रमुख उदाहरण है)।

ऐसा लगता है कि सुरंग का उपयोग करने के लिए कुछ रास्ता होना चाहिए सब मेरे कंप्यूटर से नेटवर्क यातायात, लेकिन मैं यह कैसे करने के बारे में अज्ञानी हूँ। किसी भी तरह की सहायता का स्वागत किया जाएगा।


108
2017-10-29 00:51


मूल


निस्संदेह आप एसएसएच के माध्यम से अपने सभी ट्रैफिक को सुरंग नहीं कर सकते हैं, क्योंकि इसका अर्थ यह होगा कि सुरंग स्वयं के माध्यम से एसएसएच है, लेकिन हम जानते थे कि आपका क्या मतलब है। :) - CarlF
यह एक अच्छा विचार है लेकिन आप केवल अपने कंप्यूटर और अपने एसएसएच एंडपॉइंट के बीच सुरक्षित हैं। उसके बाद, आपका यातायात स्पष्ट है (जब तक अन्यथा संरक्षित न हो, उदाहरण के लिए एसएसएल)। दिया गया है, यह एक तार पर होने की अधिक संभावना है, लेकिन फिर भी ... आप उन तारों पर भरोसा नहीं कर सकते जिन्हें आप नियंत्रित नहीं करते हैं। - quack quixote
लेकिन जब आप व्यापक इंटरनेट पर बाहर निकलते हैं, तो आपको केवल अरबों पैकेटों में से एक होने में कुछ सुरक्षा है, है ना? जब आप किसी सार्वजनिक वाई-फाई से कनेक्ट होते हैं, तो आप शायद 3 कनेक्शनों में से एक हैं, आप व्यक्तिगत रूप से पहचाने जा सकते हैं आदि। - endolith


जवाब:


जो भी आप चाहते हैं वह करने के लिए, मैं अनुशंसा करता हूं sshuttle

आप इसे इस तरह इस्तेमाल करते हैं:

./sshuttle -r username@sshserver 0.0.0.0/0 -vv

यह आपके लिए स्वचालित रूप से आपके सभी टीसीपी यातायात को सुरंग करेगा। आप जोड़ सकते हैं --dns यह आपके DNS ट्रैफिक को सुरंग करने के लिए भी तर्क है। रिमोट सर्वर को केवल पायथन स्थापित करने की आवश्यकता है।

यदि आप केवल विशिष्ट कार्यक्रमों को सुरंग करना चाहते हैं तो मैं अनुशंसा करता हूं proxychains

एक बार यह स्थापित हो जाने के बाद, इस तरह अपने एसएसएच मोजे प्रॉक्सी शुरू करें:

ssh -fND 127.0.0.1:<local port> username@sshserver

यह <स्थानीय पोर्ट> पर एक "सॉक्स" प्रॉक्सी सुनना शुरू कर देगा।

फिर <etc/proxychains.conf को उसी पोर्ट पर <स्थानीय पोर्ट> के रूप में इंगित करने के लिए संपादित करें।

अंत में अपने प्रोग्राम को शुरू करें कि आप प्रॉक्सी-एड चाहते हैं:

proxychains <program name>

यह सिर्फ काम करना चाहिए। हालांकि, कुछ कार्यक्रमों को प्रॉक्सी चेन के साथ काम करने में परेशानी होगी। यह भी ध्यान रखें कि फ़ायरफ़ॉक्स के साथ, आपको इसके बारे में अतिरिक्त आइटम बदलना होगा: इसे कॉन्फ़िगर करने के बजाय प्रॉक्सी के माध्यम से DNS लुकअप करने के लिए मजबूर करने के लिए कॉन्फ़िगर करें।

वेब ब्राउज़र पर एक अतिरिक्त नोट के रूप में। यदि वे मोजे प्रॉक्सी का समर्थन करते हैं, तो आपको उपर्युक्त, एसएसएच सुरंग का उपयोग करने के लिए अतिरिक्त कुछ करने की आवश्यकता नहीं है, बस सॉक्स प्रॉक्सी सर्वर के लिए 127.0.0.1 दर्ज करें और प्रॉक्सी पोर्ट के लिए <स्थानीय पोर्ट> दर्ज करें।

3/29/16 संपादित करें

चूंकि यह पोस्ट अभी भी कुछ अपवॉट देख रहा है, मैंने सोचा कि मैं इसे अपडेट कर दूंगा। Proxychains अभी भी अधिकांश लिनक्स repos में है और अभी भी लिनक्स पर काम करता है। हालांकि, परियोजना प्रभावी ढंग से त्याग दी जाती है और ओएसएक्स पर काम नहीं करती है। लिनक्स या ओएसएक्स के लिए, मैं अत्यधिक स्थिर रखरखाव के लिए अपग्रेड करने की अत्यधिक अनुशंसा करता हूं: proxychains-ng: https://github.com/rofl0r/proxychains-ng

लिनक्स और ओएसएक्स दोनों में काम करने के अलावा, संकलन करना आसान है, और DNS सुरंग के लिए भी बेहतर समर्थन है।

मुझे एक और विकल्प का भी उल्लेख करना चाहिए, जो रेडस्क्स है। यह प्रॉक्सिचेंस (-एनजी) के समान काम करता है और आपके डिस्ट रेपो में भी संभावना है: https://github.com/darkk/redsocks


54
2018-05-23 16:08





man ssh बिल्कुल इसका एक उदाहरण देता है। एक एसएसएच आधारित वीपीएन:

SSH-BASED VIRTUAL PRIVATE NETWORKS
     ssh contains support for Virtual Private Network (VPN) tunnelling using
     the tun(4) network pseudo-device, allowing two networks to be joined
     securely.  The sshd_config(5) configuration option PermitTunnel controls
     whether the server supports this, and at what level (layer 2 or 3 traf-
     fic).

     The following example would connect client network 10.0.50.0/24 with
     remote network 10.0.99.0/24, provided that the SSH server running on the
     gateway to the remote network, at 192.168.1.15, allows it:

       # ssh -f -w 0:1 192.168.1.15 true
       # ifconfig tun0 10.0.50.1 10.0.99.1 netmask 255.255.255.252

~~ धज्जी ~~

     Since a SSH-based setup entails a fair amount of overhead, it may be more
     suited to temporary setups, such as for wireless VPNs.  More permanent
     VPNs are better provided by tools such as ipsecctl(8) and isakmpd(8).

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


44
2017-07-18 10:24



क्या आप थोड़ा और समझा सकते हैं? Ifconfig कमांड tun0 नामक एक नया इंटरफेस बनाता है, है ना? या ssh द्वारा बनाई गई tun0 है और ifconfig द्वारा बस कॉन्फ़िगर किया गया है? शायद प्रश्न के लिए प्रासंगिक एक उदाहरण जोड़ें? - Nobody


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


7
2017-11-01 17:40





मैंने सॉफ्टवेयर विकसित किया है जो आपको सभी टीसीपी और वैकल्पिक रूप से यूडीपी को सॉक्स 5 प्रॉक्सी, सिस्टम-वाइड के माध्यम से अग्रेषित करने की अनुमति देता है।

http://code.google.com/p/badvpn/wiki/tun2socks

इसे लैन पर कंप्यूटर से सभी कनेक्शन अग्रेषित करने के लिए राउटर पर भी इंस्टॉल किया जा सकता है।


4
2017-07-18 08:55





बस यह साफ़ करना चाहता था कि (एसएसएच-डी पोर्ट होस्ट) यातायात के लिए 100% सुरक्षित तरीका नहीं है जिसे स्नीफ किया जाना चाहिए। जोड़ना (एसएसएच-डी-सी ब्लाफिश पोर्ट होस्ट) एक बेहतर विकल्प होगा क्योंकि आप कम से कम अपने सत्र में एन्क्रिप्शन जोड़ रहे हैं। ऐसे कई विकल्प हैं जिन्हें आप जोड़ सकते हैं लेकिन पूरी टर्मिनल के लिए अपने टर्मिनल या Google में "मैन एसएसएच" टाइप करना इतना आसान है।

विकल्प जो मुझे लगता है कि आप एक वीपीएन (वर्चुअल प्राइवेट नेटवर्क) स्थापित कर रहे हैं

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


-1
2017-10-29 01:43



बुरी सलाह "ब्लाफिश" एक एसएसएच -1 सिफर है; यह तेज़ है, सोचा सुरक्षित (1 999 तक: unixhelp.ed.ac.uk/CGI/man-cgi?ssh+1 ), फिर भी। आप शायद चाहते हैं ssh -2 -C -D [...] (बल एसएसएच 2, संपीड़न का उपयोग करें) और ड्रॉप -c। मेरे सिस्टम के अनुसार man ssh एसएसएच 2 में सिफर सूची डिफ़ॉल्ट है aes128-cbc,3des-cbc,blowfish-cbc,[etc]। मेरा मुद्दा है, अगर आप अनुरोध करते हैं -c blowfish आप एसएसएच 1 के साथ समाप्त हो सकते हैं, जो एसएसएच 2 की तुलना में बहुत कम सुरक्षित है। - quack quixote
सच है, लेकिन जेरेमी इस धारणा के तहत था कि कनेक्शन सिर्फ डी 8080 के साथ सुरक्षित था, मैंने केवल इतना कहा था कि वह जो भी इस्तेमाल कर रहा था उससे बेहतर था। आप एक वैध बिंदु बनाते हैं और यही कारण है कि मैं अधिक विकल्पों के लिए मैनुअल का उल्लेख करता हूं। - ricbax
शायद आपको अपना जवाब बदलना चाहिए, क्योंकि यह अन्यथा उपयोगी है। - endolith
भूल गए मैंने यह पूछा, नियमित रूप से इस साइट का उपयोग न करें। स्पष्टीकरण के लिए धन्यवाद ... मेरे पास मजबूत प्रभाव था कि एसएसएच डिफ़ॉल्ट रूप से सुरक्षित था। - Shareware
डिफ़ॉल्ट रूप से एन्क्रिप्शन का उपयोग कर डब्ल्यूटीएफ एसएसएच नहीं है ?? - LatinSuD


एसएसएच आधारित मूल निजी नेटवर्क      एसएसएच का उपयोग कर वर्चुअल प्राइवेट नेटवर्क (वीपीएन) सुरंग के लिए समर्थन शामिल है      ट्यून (4) नेटवर्क छद्म-डिवाइस, दो नेटवर्क को शामिल करने की इजाजत देता है      सुरक्षित रूप से। Sshd_config (5) कॉन्फ़िगरेशन विकल्प PermitTunnel नियंत्रण      चाहे सर्वर इसका समर्थन करता है, और किस स्तर पर (परत 2 या 3 ट्रैफ-      एफआईसी)।

 The following example would connect client network 10.0.50.0/24 with
 remote network 10.0.99.0/24 using a point-to-point connection from
 10.1.1.1 to 10.1.1.2, provided that the SSH server running on the gateway
 to the remote network, at 192.168.1.15, allows it.

 On the client:

       # ssh -f -w 0:1 192.168.1.15 true
       # ifconfig tun0 10.1.1.1 10.1.1.2 netmask 255.255.255.252
       # route add 10.0.99.0/24 10.1.1.2

 On the server:

       # ifconfig tun1 10.1.1.2 10.1.1.1 netmask 255.255.255.252
       # route add 10.0.50.0/24 10.1.1.1

 Client access may be more finely tuned via the /root/.ssh/authorized_keys
 file (see below) and the PermitRootLogin server option.  The following
 entry would permit connections on tun(4) device 1 from user “jane” and on
 tun device 2 from user “john”, if PermitRootLogin is set to
 “forced-commands-only”:

   tunnel="1",command="sh /etc/netstart tun1" ssh-rsa ... jane
   tunnel="2",command="sh /etc/netstart tun2" ssh-rsa ... john

 Since an SSH-based setup entails a fair amount of overhead, it may be
 more suited to temporary setups, such as for wireless VPNs.  More perma‐
 nent VPNs are better provided by tools such as ipsecctl(8) and
 isakmpd(8).

-1
2018-03-12 22:57



कृपया अपनी जानकारी के लिए एक स्रोत जोड़ें। नोट: यह एक पुराना सवाल है। - Lorenzo Von Matterhorn


इन उदाहरणों का प्रयोग करें:

  • अपने स्थानीयहोस्ट पर रिमोट होस्ट से 8888 तक अग्रेषित पोर्ट 80

    ssh -fnN -L8888: localhost: 80 उपयोगकर्ता @ सर्वर

    रिमोट होस्ट पर सेवाओं तक पहुंचने के लिए इसका उपयोग करें जो केवल वहां उपलब्ध हैं

  • रिमोट होस्ट पर yourlocalhost से 8888 तक अग्रेषित पोर्ट 80

    ssh -fnN -R8888: localhost: 80 उपयोगकर्ता @ सर्वर

    थर्म उपयोगकर्ताओं को आपकी सेवाओं तक पहुंचने की अनुमति देने के लिए इसका उपयोग करें: वेबसर्वर, या जो भी हो।

चीयर्स! :)


-3
2017-11-01 17:47



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