सबसे बड़ी चिंता यह होगी कि लोग एसएसएच पर कंप्यूटर के व्यवस्थापक के रूप में प्रवेश कर रहे हैं। यदि आप पासवर्ड का अनुमान लगाने में आसान हैं, तो यह क्रूर बल द्वारा किया जा सकता है।
कई सुरक्षा उपाय हैं जो आप कर सकते हैं, नीचे कुछ हैं जिन्हें मैं हमेशा एसएसएच सर्वर और कुछ अतिरिक्त स्थापित करते समय लेता हूं।
कम से कम (कहते हैं) 10 ऊपरी और निचले अक्षरों, संख्याओं और अन्य वर्णों से मिलकर एक मजबूत पासवर्ड का उपयोग करें।
उपयोगकर्ताओं को उनके घर निर्देशिका में जेल। जेल किए गए उपयोगकर्ता उन फ़ाइलों को एक्सेस / संपादित नहीं कर पाएंगे जो उनके होम डायरेक्टरी के बाहर हैं। इसलिए आपका उपयोगकर्ता कुंजी सिस्टम फ़ाइलों को एक्सेस / संपादित नहीं कर पाएगा। एक उपयोगकर्ता को कैसे जेल देना है, इस पर बहुत सारे ट्यूटोरियल देखे जा सकते हैं। उनमें से ज्यादातर जेलकिट का उपयोग करते हैं । इस तरह के एक ट्यूटोरियल का एक उदाहरण यहां पाया जा सकता है । वैकल्पिक रूप से, आप ओपनएसएसएच-सर्वर के मूल ChrootDirectory
निर्देश का भी उपयोग कर सकते हैं । इस पर एक ट्यूटोरियल का एक उदाहरण यहां पाया जा सकता है ।
Fail2Ban स्थापित करें । Fail2Ban एक प्रोग्राम है जो गलत प्रविष्टियों के लिए प्रमाणीकरण लॉग की जांच करता है। जब एक निश्चित सीमा पूरी हो जाती है, तो यह उस निश्चित IP के लिए फ़ायरवॉल ब्लॉक को प्रीसेट राशि के लिए जोड़ता है। वहाँ भी ऑनलाइन कैसे SSH के साथ fail2ban स्थापित करने के लिए के बारे में पाया हैं कई ऑनलाइन ट्यूटोरियल, एक उदाहरण होगा इस एक । Fail2Ban होमपेज कुछ अच्छे और पूर्ण HOWTOs रखता है।
SSH के माध्यम से रूट लॉगिन को अक्षम करें। यह वह उपयोगकर्ता है जिसकी आपके सिस्टम की प्रत्येक फ़ाइल तक बहुत अधिक पहुंच है, इसके शेल लॉगिन को अक्षम करना इसलिए अनुशंसित है। उबंटू के नवीनतम संस्करणों में, रूट उपयोगकर्ता स्वचालित रूप से अक्षम है, लेकिन यह वैसे भी अपने एसएसएच एक्सेस को अक्षम करने के लिए चोट नहीं करता है। यह फ़ाइल को संपादित करके किया जाता है /etc/ssh/sshd_config
। ✝ निम्नलिखित लाइन के लिए देखो और सुनिश्चित करें कि वहाँ उसके सामने कोई # है।
#PermitRootLogin no
एक गैर-मानक पोर्ट का उपयोग करें (ईजी नहीं 22) यह या तो आपके राउटर में पोर्ट अग्रेषण के माध्यम से किया जाता है (जैसे 16121 -> 22 के बजाय 22 -> 22) या एक अलग पोर्ट पर एसएसएच डेमन सुनकर। यह आपकी SSH सेवा को दुर्भावनापूर्ण उपयोगकर्ताओं के लिए आसानी से पता लगाने योग्य बना देगा। यह फ़ाइल को संपादित करके किया जाता है /etc/ssh/sshd_config
। ✝ निम्नलिखित लाइन और 22 जो कुछ भी बंदरगाह आप चाहते करने के लिए बदलाव के लिए देखो। बाद में अपने राउटर में सही पोर्ट को फॉरवर्ड करना न भूलें।
Port 22
लॉग इन करने के लिए पासवर्ड का उपयोग न करें। पासवर्ड के अलावा, SSH निजी कुंजी के उपयोग से भी लॉगिन की अनुमति देता है। इसका मतलब है कि आपके कंप्यूटर पर एक कुंजी संग्रहीत है, जिस पर आप SSH मशीन के SSH का उपयोग करते हैं। जब कनेक्शन का प्रयास किया जाता है, तो SSH क्लाइंट पासवर्ड प्रमाणीकरण के माध्यम से सर्वर में प्रवेश करने के लिए कुंजी का उपयोग करता है। प्रमाणीकरण कुंजी पासवर्ड की तुलना में क्रिप्टोग्राफिक रूप से बहुत मजबूत हैं और इसलिए दरार करना इतना आसान नहीं है। वहाँ भी ऑनलाइन कैसे SSH के साथ कुंजी आधारित प्रमाणीकरण स्थापित करने के लिए के बारे में पाया हैं कई ऑनलाइन ट्यूटोरियल, एक उदाहरण होगा इस एक । (यदि आप PuTTY वाली खिड़कियों से SSH करते हैं, तो इस लिंक को PuTTY howto के लिए जांचें ।) जब आपने कुंजी-आधारित प्रमाणीकरण सेट किया है, तो आप फ़ाइल को संपादित करके पासवर्ड प्रमाणीकरण को अक्षम कर सकते हैं /etc/ssh/sshd_config
। ✝ निम्नलिखित पंक्ति देखें और सुनिश्चित करें कि इसके सामने कोई # नहीं है।
#PasswordAuthentication no
वैकल्पिक रूप से, जैसा कि @ Linker3000 ने अपनी टिप्पणी में उल्लेख किया है, आप SSH के माध्यम से जिस पीसी को एक्सेस करना चाहते हैं , उसके लिए एक वीपीएन सुरंग स्थापित कर सकते हैं और फिर एसएसएच सर्वर पर गैर-स्थानीय नेटवर्क एक्सेस को अस्वीकार कर सकते हैं। इस तरह, वीपीएन कनेक्शन के बिना कोई भी बाहरी डिवाइस आपके एसएसएच सर्वर तक नहीं पहुंच पाएगा। यह सभी मेजबानों को नकारने और फिर केवल स्थानीय नेटवर्क आईपी को लॉगिन करने की अनुमति देकर किया जा सकता है। यह संपादन करके /etc/hosts.deny
और निम्नलिखित जोड़कर किया जाता है :
sshd: ALL
और /etc/hosts.allow
निम्नलिखित जोड़ने के लिए:
sshd: 192.168.1.*
जहाँ IP आपके स्थानीय नेटवर्क से मेल खाता है। *
एक वाइल्डकार्ड है, इसलिए शुरू होने वाले सभी आईपी पते 192.168.1.
स्वीकार किए जाएंगे। यदि यह काम नहीं करता है, तो आपका वितरण ssh
इसके स्थान पर उपयोग कर सकता है sshd
। उस मामले में, आपको प्रयास करना चाहिए ssh: 192.168.1.*
और ssh: ALL
इसके बजाय।
आप केवल विशिष्ट होस्ट करता है, साथ भी ऐसा ही अनुमति दे सकता है /etc/hosts.allow
और /etc/hosts.deny
6 में वर्णित है, लेकिन में /etc/hosts.allow
निम्न पंक्ति और हर मेजबान रिक्तियों से अलग करने देते हैं जोड़ें:
sshd: {IP OF HOST TO ALLOW 1} {IP OF HOST TO ALLOW 2} {IP OF HOST TO ALLOW 3} {ETC.}
केवल विशिष्ट उपयोगकर्ताओं को अपने SSH सर्वर तक पहुँचने की अनुमति दें। यह फ़ाइल को संपादित करके किया जाता है /etc/ssh/sshd_config
। ✝ निम्नलिखित लाइन के लिए देखो और सुनिश्चित करें कि वहाँ उसके सामने कोई # है। यदि यह मौजूद नहीं है, तो इसे बनाएं। उदाहरण के लिए, यदि आप जॉन, टॉम और मेरी को केवल अनुमति देना चाहते हैं, तो इस पंक्ति को जोड़ें / संपादित करें:
AllowUsers john tom mary
आप उदाहरण के लिए विशिष्ट उपयोगकर्ताओं को भी अस्वीकार कर सकते हैं, यदि आप जॉन, टॉम और मेरी तक पहुंच से इनकार करना चाहते हैं, तो इस नंबर को जोड़ें / संपादित करें:
DenyUsers john tom mary
आने वाले कनेक्शन के लिए केवल प्रोटोकॉल SSH2 की अनुमति दें। एसएसएच प्रोटोकॉल के दो संस्करण हैं। SSH1 सुरक्षा मुद्दों के अधीन है इसलिए SSH 2 का उपयोग करने की अनुशंसा की जाती है। इसे फ़ाइल को संपादित करके मजबूर किया जा सकता है /etc/ssh/sshd_config
। ✝ निम्नलिखित लाइन के लिए देखो और सुनिश्चित करें कि वहाँ उसके सामने कोई # है। यदि यह मौजूद नहीं है, तो इसे बनाएं।
Protocol 2,1
1 निकालें, तो लाइन होगी
Protocol 2
उन उपयोगकर्ताओं को लॉगिन करने की अनुमति न दें जिनके पास कोई पासवर्ड सेट नहीं है। इसे फ़ाइल को संपादित करके मजबूर किया जा सकता है /etc/ssh/sshd_config
। ✝ निम्नलिखित लाइन के लिए देखो और सुनिश्चित करें कि वहाँ उसके सामने कोई # है। यदि यह मौजूद नहीं है, तो इसे बनाएं।
PermitEmptyPasswords no
और हालांकि सरल और शायद कई मामलों में महत्वपूर्ण साबित होने के लिए अनावश्यक, अपने सॉफ़्टवेयर को अद्यतित रखें। अपने स्थापित पैकेज / सॉफ्टवेयर को नियमित रूप से अपडेट करें।