मुझे SSH के लिए एक रिवर्स प्रॉक्सी समाधान की आवश्यकता है


10

हाय यहाँ एक स्थिति है मेरे पास एक परियोजना के लिए कॉर्पोरेट डेटा सेंटर में एक सर्वर है। पोर्ट 22 पर इस मशीन के लिए मेरे पास SSH है। इस सर्वर पर कुछ वर्चुअल मशीनें चल रही हैं और फिर हर चीज़ के पीछे कई अन्य ऑपरेटिंग सिस्टम काम कर रहे हैं। अब चूंकि मैं डेटा केंद्रों में पीछे हूं इसलिए मेरे पर्यवेक्षक ने मुझसे पूछा कि क्या मैं कुछ काम कर सकता हूं जिसके द्वारा मैं इंटरनेट पर कई लोगों को सीधे इन आभासी मशीनों तक पहुंच दे सकता हूं। मुझे पता है कि अगर मुझे 22 के अलावा अन्य पोर्ट पर ट्रैफ़िक की अनुमति दी गई तो मैं पोर्ट फ़ॉरवर्डिंग कर सकता हूं। लेकिन चूंकि मुझे इसकी अनुमति नहीं है, इसलिए इस मामले में क्या समाधान हो सकता है। जो लोग कनेक्ट करना चाहते हैं, वे पूरी तरह से बेवकूफ हो सकते हैं। जो अपनी मशीनों पर पोटीन खोलकर खुश हो सकते हैं या वे फाइल करने योग्य भी हो सकते हैं।

मेरे हाथ में फायरवॉल नहीं है या 22 से ज्यादा खुला कोई पोर्ट नहीं है और वास्तव में अगर मैं रिक्वेस्ट करता हूं तो भी वे ओपन नहीं होने देते हैं। एसएसएच कुछ ऐसी चीज नहीं है जो मेरे सुपरवाइजर को चाहिए।


1
एक और महान समाधान के साथ संबंधित प्रश्न: serverfault.com/questions/361794/…
काई

SSH रिवर्स प्रॉक्सी github.com/tg123/sshpiper
किसान 1992

sshpiperd महान काम करता है!
किर्ली इस्तवान

जवाबों:


5

आपको अपने कंप्यूटर से सर्वर में डेटा सेंटर में ssh सुरंग खोलनी चाहिए। इसे "server1" नाम दें। यदि आप ओपनश का उपयोग कर रहे हैं, तो आप बस चला सकते हैं

ssh -L0.0.0.0:8080:localhost:8080 you_username@server1

यह आपके कंप्यूटर से पोर्ट 8080 से सर्वर, पोर्ट 8080, बीच में फायरवॉल को स्किप करने का कनेक्शन खोलेगा। मान लें कि आपका अपाचे पोर्ट 8080 पर सुन रहा है। पोर्ट फॉरवर्ड प्रारूप आईपी सुन रहा है: स्थानीय पोर्ट: रिमोट एड्रेस: ​​रिमोट पोर्ट। बेशक एकल सर्वर के लिए आप भी उपयोग कर सकते हैं

ssh -L0.0.0.0:8080:remote_server_address:8080 you_username@server1

कृपया ध्यान दें कि लोकलहोस्ट इन-एल पैरामीटर सर्वर 1 के सापेक्ष है। दूसरे शब्दों में, सर्वर लोकलहोस्ट से आने वाले कनेक्शनों को देख रहा है, जब वास्तव में वे आपके कंप्यूटर से ssh कनेक्शन पर आ रहे हैं।

आपको पैरामीटर भी चाहिए

AllowTcpForwarding yes

सर्वर के ssh कॉन्फ़िगरेशन में (आमतौर पर / etc / ssh / sshd_config)।

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


आपके कहने का मतलब है कि जब मैं करता हूं ssh -L0.0.0.0:8080:localhost:8080 you_username@server1 तो यदि कनेक्शन अभी भी फ़ायरवॉल के पोर्ट 22 से गुजर रहा है (क्योंकि अगर ऐसा नहीं होता है तो मैं कोई काम नहीं कर सकता) और ssh सुरंग स्थानीय मशीन और रिमोट मशीन के बीच स्थापित होगी निर्दिष्ट पोर्ट पर लेकिन संपूर्ण ट्रैफ़िक फ़ायरवॉल पर (पोर्ट 22) पर आ रहा होगा।
बॉन्ड

जब आप ssh टनल चलाते हैं, तो वह ट्रैफ़िक (पोर्ट 8080 से पोर्ट 8080 तक) ssh कनेक्शन के अंदर चला जाता है, पोर्ट 22 का उपयोग करके। फ़ायरवॉल पोर्ट 22 पर ट्रैफ़िक देखता है, 8080 नहीं।
ओली

जब आप यह कमांड देते हैं तो ssh -L0.0.0.0:8080:remote_server_address:8080 you_username@server1 मैं जानना चाहता हूं कि रिमोट_सर्वर_ड्रेस के रूप में क्या रखा जा सकता है वह यह है कि आंतरिक मशीन का आईपी जिसे मैं एक मध्यवर्ती के रूप में सर्वर 1 का उपयोग करना चाहता हूं। क्या मैंने इसे सही ढंग से समझा है?
बॉन्ड

बॉन्ड: हाँ, यह सही है। आप कई आंतरिक मशीनों के लिए कनेक्शन खोलने के लिए कई-एल सुरंग (विभिन्न स्रोत बंदरगाहों के साथ, निश्चित रूप से) निर्दिष्ट कर सकते हैं। उदाहरण के लिए "-L0.0.0.0: 8080: Remote_server1: 80 -L0.0.0.0: 8081: Remote_server2: 80 -L0.0.0.0: 8082: Remote_server2: 22" (बिना उद्धरण के)।
ओली

इस ठोस को बनाने के लिए डेटा सेंटर के बाहर रिबाउंड के रूप में कार्य करने वाले सर्वर को सेट करना होगा और ट्रैफ़िक को अनुमति देना होगा। निश्चित रूप से ssh सुरंग एक अस्थायी समाधान के रूप में ठीक है, लेकिन उत्पादन में कुछ के लिए, मैं एक वास्तविक रिवर्स प्रॉक्सी स्थापित करने की सलाह दूंगा पलटाव, और केवल उस पलटाव से 8080 कनेक्शन की अनुमति देने के लिए फ़ायरवॉल सेटिंग को अनुकूलित करें। इसने कहा, यह डीसी के अंदर आभासी मशीनों में से एक के रूप में रिवर्स प्रॉक्सी को रखने के लिए अधिक स्मार्ट है। ताकि कनेक्शन को केवल इस मशीन की ओर SSL के साथ सुरक्षित किया जा सके।
jmary

0

हो सकता है कि आप SshMeIn जैसी किसी चीज़ का उपयोग कर सकें । यह एक ओपनसोर्स वेब सिस्टम है जो फायरवॉल के माध्यम से ssh सुरंग बनाएगा, आपको पोर्ट खोलने की भी आवश्यकता नहीं है।

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