कनेक्शन ssh सर्वर के लिए टाइमआउट


11

मैं ओपनश-सर्वर को सेटअप करने की कोशिश कर रहा हूं, लेकिन मैं कुछ मुद्दों को जोड़ रहा हूं। मैंने पोर्ट को कुछ गैर-मानक (57757) में बदल दिया और फिर उस पोर्ट के आगे अपना राउटर सेट किया। मेरे LAN पर, मैं 57757 पोर्ट का उपयोग करके अपने मशीन ठीक में ssh करने में सक्षम हूं, लेकिन WAN पर ऐसा करने में सक्षम नहीं हूं।

यदि मैं LAN से बाहर हूं, और मैं अपनी मशीन को गलत पोर्ट द्वारा एक्सेस करने का प्रयास करता हूं, तो मुझे तुरंत "कनेक्शन मना कर दिया" संदेश मिलता है। हालांकि, सही पोर्ट के साथ यह सिर्फ हैंग होता है और फिर टाइमआउट होता है।

मैं इस समस्या को हटाने के लिए क्या प्रयास कर सकता हूं? मैंने एक ट्रेसरूट की कोशिश की, लेकिन इसने मुझे कुछ उपयोगी नहीं बताया।

संपादित करें: मुझे एहसास हुआ कि मेरी समस्या यह थी कि मेरे राउटर ने आंतरिक रूप से वान आईपी द्वारा इसे एक्सेस करने का समर्थन नहीं किया था। मैं एक अलग सर्वर पर वापस जाना चाहता हूँ और यह ठीक काम किया है।


क्या आप उस पोर्ट के पास कुछ बदल रहे हैं जिस पर वह सुन रहा है?
22 अप्रैल को गुंटबर्ट

@ गुंटबर्ट नोप। क्या यह लूपबैक की समस्या हो सकती है?
Ci3

लूपबैक? क्या आपने केवल मशीन से ही प्रयास किया था? क्या आपके पास परीक्षण करने के लिए आपके LAN के अंदर एक और उपकरण है?
गुंटबर्ट

@guntbert मैंने इसे दूसरी मशीन के साथ आज़माया और LAN के अंदर कोई समस्या नहीं है।
Ci3

"अंतिम उपाय" का मेरा विचार: sudo apt-get purge openssh-serverतो इसे फिर से स्थापित करें (इसलिए हम उस चीज़ से छुटकारा पा सकते हैं जो शायद कॉन्फ़िगरेशन से खुश हो गया है) और अपने राउटर को 22-> 22 को अग्रेषित करने के लिए पुन: कॉन्फ़िगर करें।
गुंटबर्ट

जवाबों:


11

आमतौर पर इसका मतलब है कि आपने पोर्ट को LAN पर गलत IP पते पर भेज दिया है।

आपका NAT राउटर 57757 पोर्ट पर आने वाले ट्रैफ़िक को प्राप्त करता है, और इसे एक विशेष आईपी पते और लैन पर पोर्ट भेजता है।

डिफ़ॉल्ट रूप से, Ubuntu फ़ायरवॉल के साथ आने वाले कनेक्शन प्रयासों को फ़िल्टर नहीं करता है। इसलिए जब तक आप उबंटू में फ़ायरवॉल सेटिंग्स नहीं बदलते हैं, किसी भी टीसीपी पोर्ट से कनेक्शन खोलने का प्रयास, 1 65535 के माध्यम से, या तो होगा:

  • यदि पोर्ट खुला है, तो कनेक्शन स्वीकार करें
  • यदि पोर्ट बंद है, तो कनेक्शन के प्रयास को अस्वीकार करें

यदि पोर्ट फ़ायरवॉल द्वारा फ़िल्टर किए गए थे , तो आपको वह मिलेगा जो आप देख रहे हैं - कनेक्शन प्रयास का कोई जवाब नहीं। परंतु:

  • जब तक आपने फ़ायरवॉल सेटिंग्स (जैसे ufw, iptables) को नहीं बदला है , कोई पोर्ट फ़िल्टर नहीं किया जाता है, और
  • किसी भी स्थिति में, आप LAN पर 22 पोर्ट से कनेक्ट कर सकते हैं, इसलिए यह खुला है।

जब आप नैट राउटर के साथ एक नॉनटेन्स्टेंट मशीन के लिए एक पोर्ट को फॉरवर्ड करते हैं , तो यह उस पोर्ट पर आने वाले ट्रैफिक को नॉनटेक्स्ट मशीन में भेजता है, जो यह कहता है कि यह इसे ब्लैक होल में भेजता है ; यह प्रभावी रूप से गिरा है।

यह ठीक उसी स्थिति का कारण बनता है जिस स्थिति का आपने वर्णन किया है। इसलिए आप यह सुनिश्चित कर सकते हैं कि पोर्ट लैन पर सही आईपी पते पर भेजा जा रहा है या नहीं।

अगर यह पता चला कि समस्या नहीं है ...

... तो आपको कुछ समस्या निवारण करना होगा।

  1. क्या लैन साइड के लिए पोर्ट सही है? यह मानते हुए कि आपने SSH सर्वर के कॉन्फ़िगरेशन को नहीं बदला है, ओपनएसएसएच सर्वर पर 22 को पोर्ट करने के लिए सेट किए गए वान पक्ष पर 57757 पोर्ट है? (आप इसे दोबारा जांच सकते हैं।)

  2. शायद आपके द्वारा चुने गए विशिष्ट पोर्ट (57757) के साथ कुछ समस्या है। एक अलग कोशिश करें और देखें कि क्या बेहतर काम करता है।

    (यदि यह नहीं है, और आप इन निर्देशों के साथ आगे बढ़ते हैं, तो इसे वापस बदल दें या नीचे दिए गए "57757" को नए नंबर से बदल दें।)

  3. OpenSSH सर्वर को पुनरारंभ करने का प्रयास करें। अगर नेटवर्क समस्या है तो यह मदद कर सकता है। यदि वह मदद नहीं करता है, तो राउटर और केबल / डीएसएल / आईएसडीएन मॉडेम को भी पुनरारंभ करने का प्रयास करें।

    यदि किसी कारण से आप तीनों उपकरणों को पुनः आरंभ नहीं कर सकते हैं, तो मैं सुझाव देता हूं कि आप जो भी कर सकते हैं, उसे पुनः आरंभ करें। यदि आप ओपनएसएसएच सेवा को पुनः आरंभ नहीं कर सकते हैं, तो कम से कम आप सेवा को पुनः आरंभ कर सकते हैं और (इसे ठीक करने की अधिक संभावना है) इंटरफ़ेस को नीचे ले जाएं और इसे फिर से ऊपर लाएं।

    OpenSSH सर्वर को पुनरारंभ करने के लिए:

    sudo restart ssh
    

    नेटवर्क इंटरफ़ेस को नीचे लाने के लिए, पहले पता लगाएँ कि यह किस इंटरफ़ेस पर है:

    ifconfig
    

    आमतौर पर, एक एकल ईथरनेट कार्ड और / या एक वायरलेस कार्ड के साथ एक मशीन के लिए, ईथरनेट है eth0और वायरलेस है wlan0

    यदि वायर्ड ईथरनेट कनेक्शन वह है जिसे आप नीचे ले जाना और फिर से शुरू करना चाहते हैं, तो चलाएं:

    sudo ifdown eth0
    

    फिर भागो:

    sudo ifup eth0
    

    वैकल्पिक रूप से, आप चला सकते हैं:

    sudo ifconfig eth0 down
    

    के बाद:

    sudo ifconfig eth0 up
    

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

    ईथरनेट कनेक्शन के लिए, केबल को अनप्लग करने का प्रयास करें और इसे वापस प्लग इन करें। वायरलेस कनेक्शन के लिए, इसे हार्डवेयर स्विच (यदि कोई है) के साथ बंद करने का प्रयास करें, और फिर से वापस करें।

    यहां कुछ अजीब चल रहा है और इसमें से कोई भी बहुत लंबा नहीं लगता है - यह अधिक कष्टप्रद समस्या निवारण कदम उठाने से पहले पूरी तरह से लायक है।

  4. आप इसे WAN की ओर से कैसे एक्सेस करने का प्रयास कर रहे हैं? यदि आप ऐसा करने के लिए LAN पर एक मशीन का उपयोग कर रहे हैं (केवल LAN से अपने राउटर के WAN IP से कनेक्ट कर रहे हैं ), यह केवल कुछ राउटर के लिए समर्थित है। आखिरकार, राउटर का काम WAN और LAN पक्षों के बीच ट्रैफ़िक को रूट करना है, न कि ट्रैफ़िक को एक तरफ से रूट करना। लैन के अंदर से वान आईपी पर अग्रेषित बंदरगाहों से कनेक्ट करने के लिए समर्थन वास्तव में नियम के बजाय अपवाद है, हालांकि कई घर / कार्यालय राउटर में यह सुविधा है।

    इसलिए यदि आप WAN की ओर से होस्ट से आगे पोर्ट का परीक्षण नहीं कर रहे हैं, तो आपको ऐसा करना चाहिए। इसके लिए आपके विकल्प हैं:

    • WAN की तरफ से खुद को कनेक्ट करें। यह काम करता है यदि आपके पास वहां एक मशीन तक पहुंच है, उदाहरण के लिए, स्कूल में एक दूरस्थ मशीन तक एसएसएच पहुंच, काम, एक दोस्त के घर, या इसी तरह की।

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

      इस विधि के कुछ नुकसान हैं। यह एक दर्द है! इसके अलावा, आईएसपी के लिए अपने नेटवर्क को गलत तरीके से कॉन्फ़िगर करना सैद्धांतिक रूप से संभव है ताकि स्विच से जुड़ी टेस्ट मशीन इंटरनेट तक पहुंच सके। (जब तक कि यह आपके ISP का इरादा नहीं है कि आप एक से अधिक WAN IP और से कनेक्ट होंआपने परीक्षण मशीन के लिए एक WAN IP उठाया है जिसे आपके ISP ने आपको सौंपा है, इसके बीच ट्रैफ़िक और एक सच्चे WAN होस्ट को ISP द्वारा अवरुद्ध / छोड़ दिया जाना चाहिए। लेकिन कुछ ISP की अजीब प्रथाएं हैं, इसलिए कौन जानता है?) यदि ऐसा होता है, तो इससे किसी को भी गंभीर समस्या नहीं होगी (और अगर ऐसा किया भी है, तो आप इसे केवल कुछ मिनटों के लिए कनेक्ट कर सकते हैं)। हालांकि, इसे संभावित रूप से आपकी सदस्यता की सीमा से परे अतिरिक्त पहुंच प्राप्त करने के प्रयास के रूप में देखा जा सकता है, और - अधिक महत्वपूर्ण बात - यदि किसी अन्य उपयोगकर्ता के पास वही आईपी है, तो यह उनके कनेक्शन के साथ पूर्ण हो सकता है। इसलिए, यदि आप इस विधि को आजमाना चाहते हैं, परीक्षण मशीन से इंटरनेट का उपयोग करने का प्रयास न करें, तुरंत रोकें यदि आपको लगे कि परीक्षण मशीन इंटरनेट तक पहुंच सकती है, और यदि आपके आईएसपी द्वारा प्रतिबंधित या सलाह दी गई है, तो यह बिल्कुल भी प्रयास न करें। (और इसका उपयोग न करें यदि आपके राउटर का WAN पक्ष एक ऑफिस लैन है, तो पहले अपने नेटवर्क एडमिनिस्ट्रेटर से सलाह लिए बिना। यह एक ISP नहीं है और कोई अनुमान नहीं है कि अवांछित पहुंच को रोकने के लिए संसाधनों का प्रावधान किया गया है।)

      इस तकनीक पर एक भिन्नता है जो कभी-कभी अधिक उपयुक्त होती है। आपके राउटर को संभवतः इसकी कनेक्शन जानकारी मिलती है - आईपी एड्रेस, सबनेट मास्क, डब्लूएएन पर गेटवे (राउटर) का आईपी पता जो इसका उपयोग तब करता है जब यह नहीं जानता कि कुछ कहां भेजा जाए, और DNS सर्वरों के बारे में जानकारी - अपने से आईएसपी, डीएचसीपी के माध्यम से, केबल / डीएसएल / आईएसडीएन मॉडेम के माध्यम से। यही कारण है कि आपको WAN- साइड परीक्षण के परिणामों को सार्थक बनाने के लिए आवश्यक कॉन्फ़िगरेशन देने के लिए राउटर को मॉडेम में प्लग करना होगा। लेकिन राउटर आमतौर पर इस जानकारी को याद रखेगा, इसलिए जब तक यह वास्तव में WAN साइड पर एक नेटवर्क से जुड़ा होता है। तो आप राउटर, मॉडेम और टेस्ट मशीन को कनेक्ट कर सकते हैं, लेकिन फिर, जल्दी, औरपरीक्षण मशीन के साथ कुछ भी करने से पहले सुनिश्चित करें कि स्विच इसे जुड़ा हुआ है , मॉडेम को डिस्कनेक्ट करें।

    • अपने बंदरगाहों का परीक्षण करने के लिए इंटरनेट पर एक मुफ्त सेवा का उपयोग करें। अपने राउटर के WAN इंटरफ़ेस और इंटरनेट (ऊपर) के बीच एक परीक्षण मशीन सम्मिलित करने के बाद से अत्यधिक शामिल है - और चूंकि यह आपके ISP द्वारा अवरुद्ध होने के कारण दुर्गम होने पर भी एक पोर्ट को सुलभ दिखाएगा (जो कनेक्ट करने के लिए भी सही है) राउटर की लैन की ओर से WAN IP) - आमतौर पर वेब-आधारित पोर्ट स्कैनिंग सेवा का उपयोग करना बेहतर होता है।

      कई पोर्ट स्कैन सेवाएं हैं। (कुछ खेल वाक्यांश "अपने फ़ायरवॉल की जांच करें" इस विचार के साथ कि ज्यादातर लोग सुविधा की बजाय ब्लॉक करने की कोशिश कर रहे हैं ।) यह एक है। आप उपयोग करना है कि एक का चयन करते हैं, तो क्लिक करें आगे बढ़ें , पाठ बॉक्स में 57,757 टाइप करें, और क्लिक करें का प्रयोग करें द्वारा बताया गया कस्टम पोर्ट जांच । सर्वर को चलाने के लिए प्राप्त करने के प्रयोजनों के लिए, आप चाहते हैं कि यह "खुला" हो। "बंद" का अर्थ है कि पोर्ट सुलभ है लेकिन सर्वर नहीं चल रहा है (और इस प्रकार कनेक्शन का प्रयास अस्वीकार कर दिया गया था)। "चुपके" का अर्थ है कि बंदरगाह दुर्गम था - यह ऐसा है जैसे कोई मशीन वहां स्थित नहीं थी (या जैसे कि बंदरगाह को आगे भेजा गया जहां कोई मशीन नहीं है)।

  5. ठीक है, इसलिए आपने निर्धारित किया है कि यह वास्तव में इंटरनेट से सुलभ नहीं है। विवरण प्राप्त करने के लिए संभावित रूप से आप इसे (आदर्श रूप से WAN पक्ष से) स्कैन कर सकते हैं, हालांकि अक्सर यह सहायक जानकारी नहीं देगा।

    यदि आप ऐसा करना चाहते हैं, तो WAN की तरफ, आप दौड़ सकते हैं:

    sudo nmap -sS -sV -p57757 -vv WAN-IP

    यदि पोर्ट को फ़िल्टर्ड के रूप में दिखाया गया है, तो इस बात की पुष्टि करता है कि वहाँ भेजे गए पैकेट संभवतः कहीं नहीं जा रहे हैं (या रास्ते में अवरुद्ध / गिराए गए हैं)।

  6. यह देखने के लिए जाँचने योग्य है कि क्या समस्या पोर्ट से उत्पन्न हो रही है, जो सर्वर वास्तव में सुन रहा है, बंदरगाह से भिन्न होने के कारण। लैन मशीन पर WAN से पोर्ट 22 पर पोर्ट 55757 को फॉरवर्ड करने से चीजें ठीक होनी चाहिए, लेकिन शायद कहीं (सर्वर, क्लाइंट) कुछ मान रहा है कि पोर्ट नंबर सर्वर और क्लाइंट के नजरिए से समान है।

    संभवतः आप राउटर के माध्यम से पोर्ट 22 को अग्रेषित नहीं कर सकते। शायद आपका ISP उस पोर्ट को ब्लॉक कर दे। लेकिन अगर आप ऐसा कर सकते हैं, तो करें!

    अन्यथा, आप OpenSSH सर्वर को वास्तव में पोर्ट 57757 पर सुन सकते हैं ।

    ऐसा करने के लिए, सर्वर कॉन्फ़िगरेशन फ़ाइल का बैकअप लें:

    cd /etc/ssh
    sudo cp sshd_config sshd_config.old
    

    फिर इसे संपादित करें:

    gksu gedit sshd_config
    

    अगर मशीन में GUI नहीं है तो कंसोल टेक्स्ट एडिटर का उपयोग करें:

    sudo nano -w sshd_config
    

    फ़ाइल के शीर्ष के पास, पाठ का यह खंड दिखाई देता है:

    # What ports, IPs and protocols we listen for
    Port 22
    # Use these options to restrict which interfaces/protocols sshd will bind to
    #ListenAddress ::
    #ListenAddress 0.0.0.0
    Protocol 2
    # HostKeys for protocol version 2
    HostKey /etc/ssh/ssh_host_rsa_key
    HostKey /etc/ssh/ssh_host_dsa_key
    HostKey /etc/ssh/ssh_host_ecdsa_key
    #Privilege Separation is turned on for security
    UsePrivilegeSeparation yes
    

    इसके बजाय Port 22कहने के लिए, शीर्ष पर लाइन बदलें Port 57757

    • आप इसे बदलने के बजाय एक पोर्ट जोड़ सकते हैं । मैं सरलतम प्रभावी विन्यास के साथ परीक्षण की सलाह देता हूं, यद्यपि।

      man sshd_configOpenSSH सर्वर को कॉन्फ़िगर करने के बारे में अधिक जानकारी के लिए देखें ।

    फाइल को सेव करें, टेक्स्ट एडिटर को छोड़ दें और SSH सर्वर को फिर से शुरू करें:

    sudo restart ssh
    

    अब राउटर पर आगे पोर्ट को बदलें ताकि ओपनएसएसएच सर्वर पर 57757 (22 नहीं) को पोर्ट करने के लिए 57757 आगे की ओर पोर्ट करें, और देखें कि क्या यह इंटरनेट से एक्सेस करने योग्य है।

  7. यदि यह अभी भी काम नहीं कर रहा है, तो देखें कि क्या उबंटू का फ़ायरवॉल वास्तव में लैन के बाहर से आने वाले ट्रैफ़िक को रोक रहा है।

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

    Daud:

    sudo iptables -L
    

    डिफ़ॉल्ट रूप से, Ubuntu में, आउटपुट दिखता है:

    Chain INPUT (policy ACCEPT)
    target     prot opt source               destination         
    
    Chain FORWARD (policy ACCEPT)
    target     prot opt source               destination         
    
    Chain OUTPUT (policy ACCEPT)
    target     prot opt source               destination
    

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

    यदि आपका कॉन्फ़िगरेशन ऐसा नहीं दिखता है, तो man iptablesयह पता लगाने के लिए पढ़ें कि वे क्या कर रहे हैं, और / या अपने प्रश्न को संपादित करें (या, यदि आप इसे पढ़ने में एक समान समस्या वाले एक अलग व्यक्ति हैं, तो एक नया प्रश्न पोस्ट करें) उन्हें। कृपया ध्यान दें कि, संभवतः, आपके iptablesनियम आपके कॉन्फ़िगरेशन के बारे में संवेदनशील जानकारी का खुलासा कर सकते हैं। व्यावहारिक रूप से, यह आमतौर पर ऐसा नहीं है - विशिष्ट मेजबानों के बारे में नियमों के संभावित अपवाद के साथ जो अवरुद्ध हैं, या यदि आपका कॉन्फ़िगरेशन बहुत खराब / असुरक्षित है - आमतौर पर एक हमलावर के लिए इस जानकारी की उपयोगिता, विशेष रूप से एक मशीन के लिए NAT राउटर के पीछे एक घर / कार्यालय लैन , न्यूनतम है।


1

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


ठीक है, मुझे लगा कि मशीन की तरफ ठीक है। हाँ, मैंने अपना राउटर 57757 से 22 तक आगे करने के लिए सेट किया है ... लेकिन मुझे भी यही समस्या है। sshd_config को पोर्ट 22 पर भी सेट किया गया है।
सिय 3

यही कारण है कि शायद होना चाहिए: ' बंदरगाह आप पर उपयोग करना चाहते हैं के बाहर (जैसे। 57,757 बंदरगाह के लिए) 22 पर अपने मशीन ।' यह सार्वजनिक बंदरगाह का पता है जिसके लिए आपको अस्पष्टता की आवश्यकता है।
david6

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