क्या SSH एक गलत सबनेट वाले सर्वर तक पहुँच संभव है?


18

हमारे पास एक सर्वर है, जहां हमारे इंजीनियरों में से एक ने सबनेट को गलत तरीके से समझा और अब हम इस सर्वर से बाहर हैं और एकमात्र एक्सेस जिसे मैं काम करना जानता हूं, वह IDC से एक सीरियल कंसोल है (इसका मतलब है कि आईडीसी इंजीनियर से हमें इस बारे में मदद करने के लिए कहना है) ।

क्या गलत किया गया है:

address 192.168.1.9 # Original address there was
netmask 255.255.255.254 # Misconfigured, originally should've been .240

जिज्ञासा से बाहर - आईडीसी को कॉल करने से बचने और एसएसएच पर इस होस्ट से कनेक्ट करने का एक तरीका है (तब हम कॉन्फ़िगरेशन को ठीक कर सकते हैं)?

जवाबों:


25

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

IPv6 का उपयोग करके होस्ट तक पहुंचने का आसान तरीका

ssh -o ProxyCommand='ssh -W [fe80::42:ff:fe:42%%eth0]:%p user@intermediate-host' root@target-server

उपरोक्त आदेश जरूरत में निम्नलिखित उदाहरण मान आपके उपयोग के मामले के लिए सही मूल्यों के साथ प्रतिस्थापित किया जा करने के लिए: fe80::42:ff:fe:42, eth0, user, intermediate-host, और target-server

यह कैसे काम करता है, इसकी विस्तृत व्याख्या

ProxyCommandजब आप एक TCP कनेक्शन को सीधे लक्ष्य होस्ट पर नहीं खोल सकते, तो उपयोग करने के लिए एक ssh सुविधा है। तर्क ProxyCommandएक कमांड है जिसका टीसीपी कनेक्शन के बजाय स्टड / स्टडआउट का उपयोग करना है।

-Wएक एकल पोर्ट अग्रेषण खोलने और इसे stdin / stdout से जोड़ने के लिए उपयोग किया जाता है। यह अच्छी तरह से एक साथ फिट बैठता है ProxyCommand

fe80::42:ff:fe:42%%eth0लक्ष्य होस्ट का लिंक-स्थानीय पता है। ध्यान दें कि एस्केप चरित्र के रूप में ProxyCommandउपयोग करने के कारण %, टाइप किए गए ssh कमांड को %%उस स्थान पर उपयोग करना चाहिए । आप खंड के सभी लिंक-स्थानीय पते चलाकर पता कर सकते हैं ssh user@intermediate-host ping6 -nc2 ff02::1%eth0

इस उद्देश्य के लिए IPv6 लिंक-स्थानीय पतों का उपयोग करना आमतौर पर सबसे आसान तरीका है क्योंकि यह सभी आधुनिक प्रणालियों पर डिफ़ॉल्ट रूप से सक्षम है, और लिंक-स्थानीय पते भले ही IPv4 और IPv6 स्टैक दोनों को गंभीर रूप से गलत मान रहे हों।

IPv4 पर वापस आ रहा है

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

अगर गलत होस्ट अब भी अपने डिफ़ॉल्ट गेटवे का उपयोग करने में सक्षम था, तो आप इसे बाहर से एक्सेस कर पाएंगे। संभवतः गलत तरीके से लगाए गए नेटमास्क ने नेटमैक्स द्वारा कवर किए गए उपसर्ग के बाहर गेटवे का उपयोग करने से मना करने के कारण डिफ़ॉल्ट गेटवे को भी तोड़ दिया। यदि यह वास्तव में मामला है, तो गलत होस्ट केवल 192.168.1.8 के साथ संवाद करने में सक्षम होगा क्योंकि यह सबनेट में केवल दूसरा आईपी पता है जो वर्तमान में इस गलत होस्ट के लिए सुलभ है।

यदि आपके पास 192.168.1.8 पर लॉगिन है, तो आप बस वहां से 192.168.1.9 पर ssh कर सकते हैं। यदि 192.168.1.8 वर्तमान में अप्रकाशित है तो आप इसे अस्थायी रूप से उस सेगमेंट पर किसी होस्ट को असाइन कर सकते हैं जिस पर आपकी रूट एक्सेस है।


और fe80::42:ff:fe:42का पता है ...? मेरा गलत अनुमान सर्वर मैं लगता है?
एलेक्सी कमेंस्की

@AlexKey हाँ, इसे गलत सर्वर के लिंक-स्थानीय IPv6 पते के साथ प्रतिस्थापित किया जाना चाहिए।
कैस्परड

1
IPv4 (IPv6 के मामले में अक्षम है) के माध्यम से पहुंचने के साथ कोई उदाहरण?
एलेक्सी कमेंस्की

@AlexKey यदि IPv6 अक्षम है तो मुझे लगता है कि आपको 192.168.1.8 से गुजरना होगा क्योंकि यह कॉन्फ़िगर किए गए उपसर्ग के नीचे केवल अन्य IP प्रतीत होता है।
कैस्परड

1
जाहिरा तौर पर इस सवाल (कम से कम) जैसे कारण के लिए @ लेनी।
अलेक्सई कमेंस्की

9

kasperdमेरे लिए यह जानने के लिए पर्याप्त विस्तृत उत्तर पोस्ट किया गया है कि मैं प्रश्न में स्थिति से कैसे उबर सकता हूं। यह उत्तर सटीक चरण-दर-चरण है कि मैंने इसे कैसे किया।

  1. SSH एक ही भौतिक नेटवर्क पर सर्वर के लिए
  2. गलत सर्वर के मैक पते का उपयोग arp -aया के ip neighbor listरूप में root
  3. मैक का उपयोग लिंक-स्थानीय कनवर्टर करने के लिए गलत सर्वर के लिए लिंक-स्थानीय खोजने के लिए
  4. अब SSH को सर्वर के माध्यम से किसी भी उपयोगकर्ता के रूप में ssh user@link-local%devजहाँ:
    • उपयोगकर्ता - उपयोगकर्ता नाम जिसके लिए हमें SSH की अनुमति है
    • लिंक-स्थानीय - चरण 3 में स्व-नियत IPv6 पता बरामद
    • देव भौतिक इंटरफ़ेस है जो इस सर्वर से उपलब्ध है (जैसे eth0)

2

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

यदि आप सबनेट 255.255.255.248 से 10.0.0.2 के लिए एक पैकेट भेजते हैं, उदाहरण के लिए, 10.0.0.220, 10.0.0.2 इसके सबनेट मास्क पर गौर करेंगे कि कैसे उत्तर दिया जाए। चूंकि .220 सबनेट 255.255.255.248 से बाहर है, इसलिए .2 को डिफ़ॉल्ट गेटवे के बजाय उत्तर भेजना होगा।

तो अगर आप .2 के रूप में एक ही सबनेट के भीतर एक आईपी पते को लोड कर सकते हैं, जैसे। 10.0.0.3, फिर यह काम करेगा।

आपके विशिष्ट मामले में, 10.0.0.9 के लिए, सबनेट 255.255.255.254 में केवल 1 अतिरिक्त आईपी पता है , जिसका नाम 10.0.0.8 है। इसलिए यदि आप उस आईपी पते को लोड कर सकते हैं, तो आपको एसएसएच करने में सक्षम होना चाहिए।

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