sshuttle विरुद्ध पूर्ण VPN: त्याची पद्धत प्रत्यक्षात काय व्यापते
sshuttle फक्त त्याची फॉरवर्डिंग पद्धत जे समर्थित करते तेच वाहून नेते: प्रथम TCP, DNS आणि UDP व्याप्ती, आवश्यक स्थानिक विशेषाधिकार आणि दूरस्थ सहाय्यक तपासा।
sshuttle निवडले जाते कारण SSH आधीच कार्यरत आहे आणि क्रिप्टोग्राफी परिचित वाटते, आणि हा युक्तिवाद योग्यतेचा निर्णय करणारा एकमेव प्रश्न वगळतो। कोणते पॅकेट मशीन सोडतात, दुसऱ्या बाजूला कोणते खाते ती वाहून नेते, आणि साधन किती स्थानिक विशेषाधिकार मागते। ही तीन उत्तरे फॉरवर्डिंग पद्धतीनुसार बदलतात, म्हणून एका अनुप्रयोगासाठी चालणारी रचना पुढच्यासाठी शांतपणे अयशस्वी होऊ शकते। खालील विवेचन अनुप्रयोगाला खरोखर आवश्यक असलेल्या प्रोटोकॉलपासून सुरू होते।
अनुप्रयोगाला आवश्यक असलेल्या प्रोटोकॉलपासून सुरुवात करा
sshuttle 2.0 मधील प्रोटोकॉल समर्थन तुम्ही निवडलेल्या पद्धतीवर अवलंबून आहे। Linux मधील NAT आणि nft पद्धती TCP आणि DNS हाताळतात, आणि TPROXY सामान्य UDP जोडते। प्रत्येक प्लॅटफॉर्म आणि पद्धतीला स्वतःच्या मर्यादा असतात, आणि macOS पूर्णपणे वेगळ्या यंत्रणेने अडवते। काहीही निवडण्यापूर्वी स्थापित आवृत्ती, निवडलेली पद्धत आणि अनुप्रयोगाला आवश्यक प्रोटोकॉल नोंदवा।
म्हणून कार्यरत TCP विनंती UDP अनुप्रयोग किंवा प्रत्येक DNS शोधाबद्दल फार थोडे सिद्ध करते। sshuttle TCP ला संपूर्ण IP पॅकेट टनेल करण्याऐवजी प्रवाह म्हणून पाहते, म्हणून पारंपरिक VPN मधून घेतलेला थ्रूपुट निष्कर्ष येथे लागू होत नाही। तुम्ही प्रत्यक्षात चालवत असलेल्या यंत्रणेची प्रत्यक्षात असलेल्या भाराशी तुलना करा।
| Approach | What it carries | What it needs locally |
|---|---|---|
| SSH local forward | One explicitly named TCP destination | Nothing beyond the SSH client |
| sshuttle, nft or nat method | TCP and DNS to the routed prefixes | Root or sudo for firewall rules |
| sshuttle, tproxy method | TCP, DNS and general UDP | Root or sudo, and kernel support |
| IP VPN | Routed IP traffic in a tunnel | A client with the required privileges |
क्लायंटला स्थानिक पातळीवर काय आवश्यक आहे
दस्तऐवजीकृत क्लायंट रचनेला root किंवा sudo आवश्यक आहे, कारण ती टनेल इंटरफेस तयार करण्याऐवजी स्थानिक अडवणूक नियम स्थापित करते। ही एकच गोष्ट सुरक्षेची कथा बदलते: त्या विशेषाधिकार असलेली प्रक्रिया संपूर्ण मशीनचा रहदारी वळवू शकते, केवळ एका अनुप्रयोगाचा नाही। विशेषाधिकाराला स्थापनेचा तपशील नाही तर रचनेचा भाग माना।
साधनाने कोणते नियम स्थापित केले आणि ते बाहेर पडताना नाहीसे होतात याची खात्री करा। कोसळलेले सत्र अडवणूक नियम मागे सोडल्यास ऑपरेटरला कनेक्शन गेले असे वाटल्यानंतर बराच काळ रहदारी काळ्या छिद्रात जाऊ शकते, आणि लक्षण उरलेल्या नियमासारखे नाही तर नेटवर्क बिघाडासारखे दिसते।
sudo sshuttle --method nft --dns 172.19.4.0/24
nft list ruleset | grep -i sshuttle
ip route
पहिला आदेश सामान्य आवाहनाचा आकार आहे, आपल्याला खरोखर आवश्यक असलेल्या उपसर्गासह। दुसरा साधनाने काय स्थापित केले ते दाखवतो, आणि तिसरा कोणतेही टनेल इंटरफेस आले नाही याची पुष्टी करतो, जो या रचनेसाठी अपेक्षित निकाल आहे।
दूरस्थ बाजू काय चालवते
दूरस्थ बाजू म्हणजे अधिकृत SSH खाते आणि सुसंगत Python सहाय्यक वातावरण। मर्यादित शेलखाली यशस्वी लॉगिन त्या सहाय्यकाला चालवण्याची परवानगी आपोआप देत नाही, आणि सहाय्यक चालवू शकणारे खाते प्रत्येक लक्ष्य सेवेपर्यंत आपोआप पोहोचत नाही। दोन्ही तथ्ये समस्या निवारण टिपांमध्ये नाही तर प्रवेश विनंतीत असतात।
होस्ट ओळख पडताळणी आणि खात्याचे प्रमाणीकरण संरक्षित करा। पहिले कनेक्शन चालावे म्हणून अनोळखी होस्ट की स्वीकारल्यास दूरस्थ बाजू आपल्या हेतूचे मशीन आहे याची पडताळणी काढून टाकली जाते, आणि हे येथे एका उद्देशाच्या फॉरवर्डिंगपेक्षा अधिक महत्त्वाचे आहे।
दूरस्थ खाते कार्यप्रवाहाला आवश्यक सेवांपुरते मर्यादित करा, आणि ती व्याप्ती होस्ट चालवणाऱ्यांशी ठरवा। ते विश्वासाच्या नात्याचा भाग आहेत, आणि क्लायंट बाजूचे कोणतेही सेटिंग ते बदलत नाही।
विश्वासाची सीमा कुठे आहे
SSH द्वारे खाजगी API कनेक्शन फॉरवर्ड केल्याने प्रत्येक API क्रियेला अधिकृतता मिळत नाही। अनुप्रयोगाचे TLS आणि अनुप्रयोगातील लॉगिन अजूनही लागू आहेत, आणि साधन प्रमाणीकरण नसलेल्या सेवेला सुरक्षित करू शकत नाही। दूरस्थ होस्टवरून पुढची उडीही आपोआप SSH चॅनेलसारखा तोच संरक्षित विभाग नसते, कारण ते दुसरे कनेक्शन दूरस्थ होस्टकडे असलेल्या धोरणाचे पालन करते।
सीमा एका वाक्यात लिहा: या उपसर्गांकडील रहदारी त्या होस्टवरील या खात्यातून बाहेर पडते। वाक्याला अपवादांचा एक परिच्छेद आवश्यक असल्यास, रचना तिच्या दस्तऐवजातील दाव्यापेक्षा अधिक करत आहे आणि उत्पादनात पोहोचण्यापूर्वी दुसऱ्या नजरेस पात्र आहे।
प्रत्येक प्रोटोकॉलवर सिद्ध करा, नंतर साधन निवडा
प्रत्येक आवश्यक प्रोटोकॉल निरुपद्रवी विनंतीने तपासा, रिझोल्व्हर मार्ग आणि अनुप्रयोग वापरत असलेली पत्ता कुटुंबे यासह। चाचणीत डिस्कनेक्टही समाविष्ट करा, जेणेकरून अनुप्रयोगाचे अनुमत अयशस्वी वर्तन घटनेच्या वेळी आश्चर्य नाही तर ज्ञात निकाल होईल। चालू असताना योग्य फॉरवर्ड करणाऱ्या सत्राने पडल्यानंतर काय होते याबद्दल काहीही सांगितले जात नाही।
स्पष्टपणे नाव दिलेल्या मोजक्या सेवांसाठी सामान्य स्थानिक फॉरवर्डिंगची मालकी आणि अंकेक्षण सोपे असते। आपल्या पद्धतीशी जुळणाऱ्या अनुप्रयोग रहदारीसाठी sshuttle कायदेशीर मध्यम मार्ग देते। गरज व्यापक IP कनेक्टिव्हिटी असेल तर VPN रचना हे प्रामाणिक उत्तर आहे, आणि निवड एन्क्रिप्शन अल्गोरिदमच्या क्रमवारीऐवजी व्याप्ती आणि कार्यचालन जबाबदारीचे पालन करते।