SSH
एक वैकल्पिक पोर्ट पर चलने से अब सुरक्षा की गणना नहीं होती है। यह केवल थोड़ी सी अस्पष्टता और आपके उपयोगकर्ताओं के लिए जटिलता का एक अतिरिक्त कदम जोड़ता है। यह आपके नेटवर्क को तोड़ने वाले लोगों के लिए शून्य बाधाएं जोड़ता है, जो स्वचालित पोर्ट स्कैनर का उपयोग कर रहे हैं और परवाह नहीं करते हैं कि यह किस पोर्ट पर चल रहा है।
यदि आप ऐसी प्रणाली पर सुरक्षा sshd_config
को व्यवस्थित करना चाहते हैं जो दूरस्थ इंटरनेट-आधारित इनबाउंड SSH की अनुमति दे रही है, तो अपने उपयोगकर्ताओं को @Anthon के रूप में इंगित करने पर नियंत्रण करें , और फिर PAM में सीधे सुरक्षा को लागू करें।
दो समूह बनाएं, lusers
और rusers
। rusers
समूह में दूरस्थ मोबाइल उपयोगकर्ता जोड़ें । उन उपयोगकर्ताओं तक पहुँच की अनुमति देने के लिए pam_succeed_if.so PAM मॉड्यूल का उपयोग करें। Ssh के लिए अपने pam config में लाइनें जोड़ें:
account sufficient pam_succeed_if.so user ingroup lusers
account sufficient pam_succeed_if.so user ingroup rusers
कुछ pam_succeed_if.so मॉड्यूल आपको थोड़े अलग वाक्यविन्यास का उपयोग करने की आवश्यकता हो सकती है, जैसे group = lusers
।
फिर, न केवल sshd
उन उपयोगकर्ताओं को सीमित कर रहा है जो कनेक्ट कर सकते हैं, लेकिन बग के अंदर होने की स्थिति में sshd
, आपके पास अभी भी सुरक्षा है जो PAM आधारित प्रतिबंधों की पेशकश करता है।
दूरस्थ उपयोगकर्ताओं के लिए एक अतिरिक्त कदम पासफ़्रेज़ के साथ ssh_keys के उपयोग के लिए बाध्य करना है। इसलिए, स्थानीय उपयोगकर्ता कुंजी या पासवर्ड के साथ लॉगिन कर सकते हैं, लेकिन दूरस्थ उपयोगकर्ताओं के पास एक कुंजी होनी चाहिए, और यदि आप उनके लिए कुंजी बनाते हैं, तो आप सुनिश्चित कर सकते हैं कि कुंजी में पासफ़्रेज़ सहयोगी हैं। इस प्रकार उन स्थानों तक पहुँच को सीमित करना जो वास्तव में SSH कुंजी और पासफ़्रेज़ के अधिकारी हैं। और संभावित अटैक वैक्टर को सीमित करना यदि किसी उपयोगकर्ता का पासवर्ड कंप्रोमाइज़ किया गया है।
इन sshd_config
:
2 सेटिंग्स बदलें:
ChallengeResponseAuthentication yes
तथा
PasswordAuthentication yes
सेवा:
ChallengeResponseAuthentication no
तथा
PasswordAuthentication no
इसलिए, डिफ़ॉल्ट को अब केवल कुंजी प्रमाणीकरण की अनुमति है। फिर स्थानीय उपयोगकर्ताओं के लिए आप स्थानीय उपयोगकर्ताओं के match
लिए डिफ़ॉल्ट बदलने के लिए कॉन्फ़िगरेशन सेटिंग को उपयोगकर्ता कर सकते हैं । अपने स्थानीय निजी नेटवर्क को 192.168.1.0/24 मानते हुए, इसमें जोड़ें sshd_config
:
Match Address 192.168.1.0/24
PasswordAuthentication yes
अब, स्थानीय उपयोगकर्ता पासवर्ड या कुंजियों से जुड़ सकते हैं, और दूरस्थ उपयोगकर्ताओं को चाबियों का उपयोग करने के लिए मजबूर किया जाएगा। पास-वाक्यांशों के साथ कुंजियाँ बनाना आपके ऊपर है।
अतिरिक्त लाभ के रूप में, आपको केवल एक ही प्रबंधन करना होगा sshd_config
, और आपको केवल एक ही बंदरगाह पर ssh चलाना होगा, जो आपके प्रबंधन को आसान बनाता है।
संपादित करें 2017-01-21 - authorized_keys
फाइलों के उपयोग को सीमित करना ।
यदि आप यह सुनिश्चित करना चाहते हैं कि उपयोगकर्ता केवल ssh कुंजी को स्वयं उत्पन्न नहीं कर सकते हैं, और इसे authorized_keys
लॉगिन करने के लिए एक फ़ाइल के साथ उपयोग कर सकते हैं, तो आप यह नियंत्रित कर सकते हैं कि sshd के लिए एक विशिष्ट स्थान सेट करके अधिकृत कुंजी की तलाश करेंगे।
में /etc/ssh/sshd_config
, बदलें:
AuthorizedKeysFile %h/ssh/authorized_keys
कुछ इस तरह से:
AuthorizedKeysFile /etc/.ssh/authorized_keys/%u
एक नियंत्रित निर्देशिका की ओर इशारा करते हुए कि उपयोगकर्ताओं के पास लिखने की अनुमति नहीं है, इसका मतलब है कि वे अपनी खुद की कुंजी उत्पन्न नहीं कर सकते हैं और इसका उपयोग आपके द्वारा लगाए गए नियमों के आसपास काम करने के लिए कर सकते हैं।
lusers
समूह में है, लेकिन समूह में नहीं है, तोrusers
एक कीपर बनाता है और उन्हें अपडेट करता है~/.ssh/authorized_keys
, तो वे रिमोट से लॉग इन कर पाएंगे।