फ़ायरवॉल के पीछे लिनक्स मशीन का रिमोट एक्सेस


11

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

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


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

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

जवाबों:


5

यह एक बंदरगाह के साथ संबंधित होने के साथ कम खुला है और एक बंदरगाह को खोलने की प्रक्रिया है, हालांकि एक उपयोगकर्ता को चलने के लिए नहीं करना चाहते हैं। मेरे पास दुर्भाग्य से इस राउटर तक कोई पहुंच नहीं है।

यदि राउटर को बदलना पूरी तरह से प्रश्न से बाहर है, तो आपको हमाची की तरह एक P2P या VPN समाधान को देखने की आवश्यकता हो सकती है । यदि आप स्टार्टअप पर वीपीएन कनेक्शन को स्वचालित रूप से स्थापित करने के लिए सिस्टम को सेटअप करते हैं, तो आपको जब भी जरूरत हो, कनेक्ट करने में सक्षम होना चाहिए। हमाची आपके लिए सभी फ़ायरवॉल वार्ता करता है। एक दोष यह है कि आपको कनेक्ट करने की आवश्यकता होने पर हमाची सर्वर पर निर्भर और कार्यात्मक होना चाहिए।

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


नीचे मेरा मूल जवाब है, मैंने मान लिया था कि राउटर को अपडेट करना एक विकल्प था।

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

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


यह एक बढ़िया विचार की तरह लगता है! दुर्भाग्य से सवाल में फ़ायरवॉल सिर्फ एक साधारण उपभोक्ता ग्रेड Linksys या कुछ समकक्ष है।
बैडटैक

1
यदि आप dd-wrt स्थापित कर सकते हैं, तो आप knd ( dd-wrt.com/wiki/index.php/Knockd ) का उपयोग कर सकते हैं
Zoredache

@Zoredache सच है, लेकिन यह एक दूरस्थ स्थान पर है। मेरे पास इस राउटर तक कोई पहुंच नहीं है और मैं एक dd-wrt इंस्टॉल के माध्यम से एक उपयोगकर्ता को चलने की कोशिश करने के बारे में सोच रहा था।
बॉडटैक

मैं इस बात से सहमत हूं कि इसे स्थापित करने का यह संभवतया सही तरीका है, बशर्ते कि मुझे dd-wrt स्थापित करने के लिए राउटर तक भौतिक पहुंच हो।
बॉडटैक

LogMeIn द्वारा अधिग्रहित किए जाने के बाद से हमाची ने लिनक्स उपयोगकर्ताओं को घृणित विचार दिखाया है। जब लिनक्स मशीनें मेरे हमाची नेटवर्क का हिस्सा होती हैं तो मुझे उत्पाद अविश्वसनीय लगता है।
बीएमबी

6

मैं इंटरनेट के लिए पोर्ट 22 को सुलभ छोड़ने के बारे में चिंतित नहीं हूं, लेकिन मैं इसे सुरक्षित करने के लिए कुछ कदम उठाऊंगा।

सबसे पहले, कीबोर्ड इंटरेक्टिव प्रमाणीकरण को अक्षम करें और ssh कुंजी पर जाएं।

दूसरी बात, अपने रिमोट सर्वर पर फेल 2 आईबॉन जैसा कुछ स्थापित करें आईपी पते जो आपके मशीन की बार-बार जांच करते हैं। क्योंकि आपके पास सेटअप ssh कुंजियाँ हैं, अधिकृत उपयोगकर्ताओं के लिए कोई प्रमाणीकरण विफलताएँ नहीं होनी चाहिए।

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

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


यह एक बंदरगाह के साथ संबंधित होने के साथ कम खुला है और एक बंदरगाह को खोलने की प्रक्रिया है, हालांकि एक उपयोगकर्ता को चलने के लिए नहीं करना चाहते हैं। मेरे पास दुर्भाग्य से इस राउटर तक कोई पहुंच नहीं है।
बॉडटैक

मैं समझता हूं और आपके दर्द के प्रति सहानुभूति रखता हूं।
डेव चेनी

2
इस समाधान में पहला कदम गैर-मानक पोर्ट पर चलने के लिए sshd को कॉन्फ़िगर करना होगा। वहाँ पोर्ट 22 पर बहुत सारे बॉट्स दस्तक दे रहे हैं। ऐसा पोर्ट चुनें जो / etc / services पर नहीं दिखता है और "nmap HOST" उसे नहीं मिलता है।
हयालसी

4

ऐसा लगता है कि आप खटखट की तलाश कर रहे हैं

आप इसे linux सर्वर पर, iptables के साथ स्थापित कर सकते हैं ताकि यह दूसरे स्तर के फ़ायरवॉल की तरह हो। पोर्ट 22 फ़ायरवॉल पर खुले होने के साथ भी सर्वर पर नहीं खुलेगा, इसलिए पोर्ट्सकैंस को कोई भी खुला पोर्ट दिखाई नहीं देगा। फिर जब आप "गुप्त दस्तक" भेजते हैं, तो अचानक आपके पास 22 को पोर्ट करने का एक खुला रास्ता होता है।

क्या इसका कोई मतलब है?


जब तक मैं गलत नहीं हूँ, मैं सभी दस्तक बंदरगाहों के साथ ही सही करना होगा? क्या यह स्पष्ट नहीं होगा जब किसी ने राउटर को स्कैन किया हो? उन्हें आदेश का पता नहीं होगा, लेकिन 6 के लिए संभावित संयोजनों को छोड़ देना, अगर मुझे याद है कि कैसे मेरे लिए क्रमपरिवर्तन सही तरीके से करना है, तो उन्हें एक विशाल सिर शुरू होता है। या मैं इस बारे में गलत सोच रहा हूं?
बैडटैक

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

सही - पहले फ़ायरवॉल पर खुलने वाले पोर्ट 2 पर खुले नहीं होंगे, इसलिए स्कैनर के लिए वे सभी बंद दिखाई देते हैं। नॉन-नॉकिंग से नॉकिंग पोर्ट को अलग करने का कोई तरीका नहीं।
ब्रेंट

3

सभी उत्तरों का योग करने के लिए:

ssh का उपयोग करें, लेकिन इसे अधिक अस्पष्ट और सुरक्षित बनाएं।

सुरक्षा के लिए:

  • सुनिश्चित करें कि रूट लॉगिन की अनुमति नहीं है (PermitRootLogin no)।
  • उपयोगकर्ताओं को सीमित करें, जो कॉन्फ़िगर विकल्प AllowUsers या AllowGroups द्वारा लॉग इन कर सकते हैं।
  • सुनिश्चित करें कि यह केवल 2 संस्करण ssh प्रोटोकॉल (प्रोटोकॉल 2) का उपयोग करता है।
  • केवल प्रमाणीकरण कुंजियों का उपयोग करना उचित है, लेकिन पासवर्ड अधिक सुविधाजनक है, जब छुट्टी से सर्वर से कनेक्ट करने की आवश्यकता हो सकती है जहां आपके पास प्रमाणीकरण कुंजी तक पहुंच नहीं है।

अस्पष्टता के लिए:

  • 20486 की तरह कुछ रैंडम हाई पोर्ट के लिए ssh पोर्ट को बदलें। इससे ज्यादातर ऑटोमैटिक ब्रूटफोर्स से छुटकारा मिल जाएगा, लेकिन यह इसे सर्वर पर मौजूद सभी पोर्ट स्कैन से नहीं छिपाएगा।
  • पोर्ट से कनेक्ट करने की क्षमता छिपाएं। एक तरीका अन्य उत्तरों में उल्लिखित पोर्ट दस्तक है, लेकिन आपको विशेष सॉफ़्टवेयर की आवश्यकता है, जो हर जगह सुलभ नहीं हो सकता है। एक और सरल विकल्प नियम बनाने के लिए हाल के मॉड्यूल के साथ iptables फ़ायरवॉल का उपयोग करना है, जो केवल दूसरे या तीसरे प्रयास पर कनेक्ट करने की अनुमति देगा। तो आप जानते हैं कि आपको सफलतापूर्वक कनेक्ट करने के लिए कई बार प्रयास करना होगा, लेकिन सरल सभी पोर्ट स्कैन से ssh पोर्ट प्रकट नहीं होगा। नियम उनके समान होंगे:


iptables -A INPUT -m tcp -p tcp --dport 20486 -m state --state NEW -m recent --set
iptables -A INPUT -m tcp -p tcp --dport 20486 -m state --state NEW  -m recent --rcheck --seconds 60 --hitcount 2 -j ACCEPT
iptables -A INPUT -m tcp -p tcp --dport 20486 -j DROP


+1 अच्छा सारांश, और कई प्रयासों के बारे में दिलचस्प विचार।
डेविड जेड

2

अपने रिवर्स ssh सुरंग के लिए स्क्रिप्ट को निर्धारित कार्य, या फ़ायरवॉल पोर्ट खोलें।

यदि आप SSH के दुनिया के लिए खुले रहने के बारे में चिंतित हैं तो आप कार्य को निर्धारित कर सकते हैं जब iptables स्क्रिप्ट के साथ आपका रखरखाव अवधि और केवल तब पोर्ट उपलब्ध हो।


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

2

में देखो पोर्ट-दस्तक आपकी SSH सुरंग को खोलने के लिए।

इसके अलावा, बहुत से बुरे अनुरोधों के बाद लोगों को बाहर निकालने के लिए डेनिहोस्ट चलाएं।

दोनों पैकेज मानक उबंटू, फेडोरा और आरएचईएल रिपॉजिटरी में उपलब्ध हैं।


1

आगे बढ़ो और एक बंदरगाह खोलें, बस इसे सामान्य सीमा के बाहर एक बनाएं। मैं इसे 1024 से अधिक कुछ रैंडम पोर्ट बनाऊंगा। इस तरह से हैकर्स के लिए भी इसकी संभावना नहीं होगी।


0

यदि आपको मशीन से दूरस्थ रूप से पहुंच की आवश्यकता हो, तो कोई कारण नहीं कि आप फ़ायरवॉल में छेद न करें।

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

बेशक, यह बहुत अधिक भंगुर है और सिर्फ बंदरगाह को खोलने की तुलना में कम सुरक्षित है। लेकिन मुझे यकीन है कि आपके पास अपने कारण हैं।

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