मैं ssh सुरक्षा कैसे बढ़ा सकता हूं? क्या मुझे एक कुंजी और पासवर्ड दोनों की आवश्यकता हो सकती है?


16

मेरे पास सर्वर का एक छोटा नेटवर्क है और मैं सामान्य सुरक्षा को बढ़ाना चाहूंगा। वीपीएन स्थापित करने के लिए मेरे पास पर्याप्त समय / पैसा / व्यामोह नहीं है - मैं अपने सिस्टम की सुरक्षा को बढ़ाने के लिए एक बुनियादी तरीका क्या कर सकता हूं?

एक बात की आवश्यकता हो सकती है कि उपयोगकर्ता अपनी कुंजी भेजें और एक पासवर्ड दर्ज करें। यह Google के लिए थोड़े कठिन है क्योंकि "ssh कुंजी पासवर्ड" के बारे में सब कुछ एक पासवर्ड के बिना sshing के बारे में है। :-)

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

तुम क्या सोचते हो? उसके अलावा और क्या है वहाँ?


आप उन उपयोगकर्ताओं की सूची को भी प्रतिबंधित कर सकते हैं जिन्हें AllowUsers या DenyUsers के निर्देशों का उपयोग करके कनेक्ट करने की अनुमति है। इस पोस्ट पर अधिक जानकारी ।
फ्रेड

जवाबों:


8

पासवर्ड और कुंजी के साथ लॉगिन "बस कुंजी के साथ" के समान है। प्रमुख निर्माण के दौरान, आपको पासफ़्रेज़ दर्ज करने के लिए कहा जाता है। यदि आप इसे खाली छोड़ देते हैं, तो आपसे पासवर्ड नहीं मांगा जाएगा। यदि आप कुछ पासफ़्रेज़ भरते हैं, तो आपसे हर बार जब आप लॉगिन करना चाहते हैं, तो आपसे यह माँगा जाएगा।

यदि आप सुरक्षा के बारे में चिंतित हैं, तो इस फ़ोरम में उल्लिखित ट्रिलियन बार इनमें से कुछ सलाह पर विचार करें:

  • रूट के लिए ssh लॉगिन अक्षम करें
  • परिभाषित आईपी पते से केवल ssh एक्सेस की अनुमति दें (iptables, hosts.allow, ...)
  • Ssh पोर्ट को दूसरे पोर्ट पर ले जाएं (अधिक अस्पष्टता फिर सुरक्षा, लेकिन यह काम करता है)
  • विदेशी लॉगिन प्रयासों की निगरानी करें और तदनुसार प्रतिक्रिया करें
  • अपने सिस्टम को अप-टू-डेट रखें

आदि आदि।

अपडेट: कृपया एक ओपनएसएसएच सर्वर के साथ सार्वजनिक कुंजी और स्थानीय सिस्टम पासवर्ड दोनों की आवश्यकता के लिए यहां उत्तर देखें ।


आपके सभी सुझावों के लिए धन्यवाद, उन पर गौर करेंगे। यदि कुंजी और पासवर्ड दोनों की आवश्यकता होती है, तो यदि कोई शोषण करने वाला पासवर्ड बाहर निकालता है (जैसे यदि उपयोगकर्ता इसे कहीं और उपयोग करता है जो असुरक्षित है), तो वे कुंजी के बिना प्राप्त नहीं कर सकते हैं, और यदि उपयोगकर्ता के मशीन से चाबी चोरी करता है , वे पासवर्ड जानने के बिना नहीं मिल सकता ... सही?
जॉन बाचिर

12
यह वैसा नहीं है। यदि आपको केवल कुंजी की आवश्यकता है, तो सर्वर कुंजी पर किसी भी पासवर्ड शक्ति नीति को लागू नहीं कर सकता है। एक लापरवाह उपयोगकर्ता क्लाइंट के आसपास एक अनएन्क्रिप्टेड निजी कुंजी रख सकता है जो कुंजी चोरी होने पर आपके सर्वर को असुरक्षित बना देता है।
200_सेक्यूट

mkudlacek - मुझे पहले से होस्टेसलो के बारे में नहीं पता था - चारों ओर गुगली करना, ऐसा लगता है जैसे मेरे डॉग्स व्हाइटलाइनिस्ट का विचार इतना मूर्खतापूर्ण नहीं है, मुझे लगता है कि मैं इसे आज़माऊंगा।
जॉन बाचिर

1
200_success - तो क्या कुंजी और पासवर्ड दोनों की आवश्यकता है?
जॉन बाचिर

मैं उन लोगों को बाहर निकालने में मदद करने के लिए DenyHosts एप्लिकेशन का उपयोग करता हूं जो अंदर जाने और असफल होने का प्रयास करते रहते हैं। लोगों को ब्लैक लिस्ट करने का एक अच्छा सा प्रो-एक्टिव ऑटोमैटिक तरीका ..
जेम्स टी स्नेल

6

एक विचार जो मुझे दिलचस्प लगा वह है पोर्ट नॉकिंग - मूल रूप से, ssh कनेक्शन को स्थापित करने के लिए, आपको सबसे पहले दूसरे पोर्ट के अनुक्रम पर जांच करनी होगी, इससे पहले कि ssh सर्वर कनेक्ट रिक्वेस्ट को स्वीकार करेगा। यदि पोर्ट के सही अनुक्रम का उपयोग नहीं किया जाता है, तो कोई प्रतिक्रिया नहीं होती है, इसलिए यह प्रभावी रूप से ऐसा लगता है कि कोई ssh सर्वर नहीं चल रहा है। बंदरगाहों का क्रम अनुकूलन योग्य है और अपने इच्छित उपयोगकर्ताओं के साथ साझा किया जा सकता है; बाकी सभी प्रभावी रूप से जुड़ने में असमर्थ होंगे।

मैंने खुद यह कोशिश नहीं की है, लेकिन जो मैंने सुना है (जो वास्तव में बहुत अधिक नहीं है) से, ओवरहेड नगण्य है और यह आपकी दृश्यता प्रोफ़ाइल को बहुत कम करता है।


यदि आप केवल "सामान्य सुरक्षा बढ़ाना" चाहते हैं तो मैं इसके साथ जाऊँगा, लेकिन आपको शायद इसके बजाय विशेष सुरक्षा समस्याओं को हल करने का प्रयास करना चाहिए।
स्टीफन थ्यबर्ग

मैं इसे उन सभी साइटों पर उपयोग करता हूं जिन्हें मैं ssh करता हूं, और यह बहुत प्रभावी है।
साइरेक्स

क्या यह वही पासवर्ड नहीं है जो 4 वर्णों से अधिक लंबा हो?
जॉन बाचिर

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

अच्छी तरह से 8 या 12 अक्षर लंबे समय तक :-D
जॉन बाचिर

3

SSH में सीधे सक्षम करने से संबंधित पैच और बहुत सारी प्रासंगिक चर्चा:

यह ForceCommandकॉन्फ़िगरेशन विकल्प के उपयोग के साथ एक पासवर्ड सत्यापन स्क्रिप्ट के साथ संशोधन के बिना भी किया जा सकता है ।

अंत में, हालांकि इसके लिए कोई मॉड्यूल मौजूद नहीं है, अगर आपने सार्वजनिक कुंजी प्रमाणीकरण को PAM में स्थानांतरित कर दिया है, तो आप PAM प्रमाणीकरण को सफल मानने से पहले दोनों चरणों को पारित करने की आवश्यकता होगी।


2

महज प्रयोग करें

RequiredAuthentications publickey, password

में sshd_configआप ssh.com से sshd प्रयोग कर रहे हैं। यह सुविधा ओपनएसएसएच में उपलब्ध नहीं है।


RequiredAuthenticationsOpenSSH के लिए निश्चित रूप से गैर मानक विस्तार है
ह्यूबर्ट करियो

क्या आप जानते हैं कि कौन से sshd कार्यान्वयन इसका समर्थन करते हैं?
जॉन बच्चिर

टेक्टिया एसएसएच सर्वर इसका समर्थन करता है। BTW: @nameOfUser का उपयोग करें जब उनकी टिप्पणियों का उत्तर देते हैं, तो इस तरह से उन्हें उत्तर के बारे में सूचित किया जाएगा
ह्यूबर्ट करियो

इसी तरह की कार्यक्षमता ओपनएसएसएच में संस्करण 6.2 के रूप में समर्थित है: serverfault.com/a/562899
सोरेन लोर्बोर्ग

1

आप सुरक्षा बढ़ाने के लिए वन-टाइम पासवर्ड का भी उपयोग कर सकते हैं । यह उपयोगकर्ताओं को एक असुरक्षित टर्मिनल से लॉगिन करने की अनुमति देगा, जिसमें एक कीलॉगर हो सकता है, अगर वे पहले अगला पासवर्ड उत्पन्न करते हैं। इसके अलावा पासवर्ड जनरेटर भी हैं जो पुराने जावा MIDP फोन पर भी इंस्टॉल किए जा सकते हैं, जिन्हें आप हर समय अपने साथ रखते हैं।


हां, अपने व्यक्तिगत सर्वर पर मैं अपने पासवर्ड के अलावा एक Yubikey टोकन का उपयोग करता हूं। टोकन एक बार का पासवर्ड जनरेट करता है। दोनों को प्रमाणित करने की आवश्यकता है। यदि आप SSH कुंजी से प्रमाणित करते हैं, तो वैकल्पिक रूप से, मैं पासवर्ड / ओटीपी जोड़ी को दरकिनार करने की अनुमति देता हूं। Yubikey सस्ता है और पाम, लिनक्स के एक्स्टेंसिबल प्रमाणीकरण प्रणाली के साथ इसे एकीकृत करने के लिए बहुत सारे सॉफ़्टवेयर हैं।
Martijn Heemels

1

मैं आपको सलाह दूंगा कि आप कभी भी बिना आईपी प्रतिबंध के sshd, rdp या ऐसी प्रबंधन सेवाएं न चलाएं। वास्तव में, मैं वीपीएन से जुड़ने वाले प्रशासकों को ऐसी सेवाओं तक पहुंच सीमित करने का सुझाव दूंगा।


1

कुंजी और पासवर्ड दोनों की आवश्यकता के बारे में अपने मूल प्रश्न के बारे में, यदि आप RHEL या CentOS 6.3 चला रहे हैं तो यह अब पॉसिबल है। RHEL 6.3 रिलीज नोट्स में वर्णन है, यह आपकी sshd_config को यह जोड़ने की बात है

RequiredAuthentications2 publickey,password

0

मैं 3molo से दृढ़ता से सहमत हूं। ओपनएसएसएच लिनक्स और यूनिक्स का डिफ़ॉल्ट एसएसएच सर्वर है। हमें इसे बदलने का कोई कारण नहीं है, खासकर सुरक्षा के लिए। वीपीएन सबसे अच्छा समाधान होना चाहिए, जो हमारे ट्रैफ़िक को एन्क्रिप्ट कर सकता है और 2-चरण पासवर्ड प्राधिकरण प्रदान कर सकता है।


0

सुनिश्चित नहीं हैं कि किसी ने इसका उल्लेख क्यों नहीं किया है - लेकिन आपको डिफ़ॉल्ट 1024 बिट्स की तुलना में लंबे समय तक कुंजियों को उत्पन्न करना सुनिश्चित करना चाहिए जिसे अब सुरक्षित नहीं माना जाता है।

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