क्या आप दुनिया में SSH सेवा की अनुमति देने का इरादा रखते हैं? या सिर्फ विशेष स्थानों पर टीम के सदस्यों के लिए? मेरा जवाब आपकी चुनौती की गंभीरता पर थोड़ा निर्भर करता है।
किसी भी स्थिति में, आपको जो करना चाहिए वह यह सुनिश्चित करता है कि SSH सर्वर रूट यूज़र के लिए पासवर्ड लॉगिन की अनुमति नहीं देता है।
- में / etc / ssh / sshd_config सुनिश्चित करें कि आपने SSH कुंजी को छोड़कर कभी भी रूट लॉगिन की अनुमति नहीं दी है।
मेरे सिस्टम में, मुझे यह सेटिंग मिल गई है
PermitRootLogin without-password
लेकिन मेरे पास नए उबंटू में है
PermitRootLogin prohibit-password
यदि आप "man sshd_config" पढ़ते हैं, तो मुझे लगता है कि इसका मतलब है कि यह नया "निषेध-पासवर्ड" एक ही बात है और निश्चित रूप से अर्थ में अधिक स्पष्ट है। यह कुछ लिनक्स सिस्टम पर डिफ़ॉल्ट नहीं है, लेकिन शायद होना चाहिए।
अब, आपकी समस्या के बारे में। क्या आपका सिस्टम सर्वर केवल कुछ उपयोगकर्ताओं को विशेष स्थानों पर है? यह करो!
/etc/hosts.deny संपादित करें और डालें
सब - सब
फिर /etc/hosts.allow को संपादित करें और आईपी नंबर या एक सीमा को सूचीबद्ध करें जो एसएसएच का उपयोग करने की अनुमति देना चाहते हैं। इस संकेतन में थोड़ी गड़बड़ है क्योंकि यदि आप 111.222.65.101 के माध्यम से आईपी नंबर जैसे सभी सिस्टम को 111.222.65.255 के माध्यम से अनुमति देना चाहते हैं, तो आप hosts.allow में इस तरह से प्रवेश करते हैं।
ALL: 127.0.0.1
sshd: 111.222.65.
sshdfwd-X11: 111.222.65.
यह एक क्रूर, शक्तिशाली समाधान है। यदि आपके उपयोगकर्ताओं को आईपी रेंज द्वारा गणना की जा सकती है, तो करें!
आईपी टेबल बनने से पहले यह समाधान मौजूद था, यह (मुझे लगता है) प्रशासन के लिए बहुत आसान है, लेकिन आईपी तालिकाओं के समाधान के रूप में यह उतना अच्छा नहीं है क्योंकि आईपी टेबल रूटीन दुश्मनों को होस्टसेलो और मेजबानों द्वारा संचालित कार्यक्रमों की तुलना में जल्द ही हाजिर करेंगे। ।मना। लेकिन यह एक निश्चित आग है, बहुत सारी समस्याओं को बंद करने का सरल तरीका, न केवल एसएसएच से।
आपके द्वारा बनाई गई समस्या पर ध्यान दें। यदि आप एफ़टीपी सर्वर, वेब सर्वर या व्हाट्सएप खोलना चाहते हैं, तो आपको मेजबानों की अनुमति में प्रविष्टियां करनी होंगी।
आप iptables और फ़ायरवॉल के साथ फ़िडलिंग करके एक ही मूल उद्देश्य प्राप्त कर सकते हैं। एक मायने में, यह एक पसंदीदा समाधान है क्योंकि आप बाहरी सीमा पर दुश्मनों को रोक रहे हैं। उबंटू में "ufw" (सीधी फ़ायरवॉल) और "मैन ufw" के बहुत सारे उदाहरण हैं। मैं इसके माध्यम से उतारा करने के लिए एक अच्छा जीयूआई होगा, मुझे हर समय ऐसा करने की ज़रूरत नहीं है। हो सकता है कि अन्य लोग हमें बता सकते हैं कि क्या अब कोई है।
- यहां अन्य पोस्ट में आपके उपयोगकर्ताओं के लिए SSH सार्वजनिक कुंजी का उपयोग करने का सुझाव दिया गया है। यह निश्चित रूप से आपके उपयोगकर्ताओं के लिए जटिलता और हताशा की कीमत पर मदद करेगा। हमारी प्रयोगशाला में, 15 कंप्यूटर हैं। उपयोगकर्ता कंप्यूटर के बीच जाते हैं। SSH कुंजी प्रमाणीकरण की आवश्यकता एक बड़ी परेशानी का कारण होगी क्योंकि लोग एक कंप्यूटर से दूसरे कंप्यूटर पर जाते हैं।
निराशा का एक और स्रोत तब होगा जब कुछ उपयोगकर्ता विभिन्न सर्वरों के लिए अलग-अलग ssh कुंजी जमा करते हैं। क्योंकि मेरे पास लगभग 12 विभिन्न परियोजनाओं के लिए SSH कुंजियाँ हैं, अब ssh विफल हो गया है क्योंकि मेरे पास बहुत अधिक सार्वजनिक कुंजियाँ हैं (आवश्यक है कि "ssh -o PubkeyAuthentication = false" या .ssh / config फ़ाइल में प्रविष्टि का निर्माण। यह PITA है)
- यदि आपको बड़ी चौड़ी दुनिया से एसएसएच के लिए सर्वर को खुला छोड़ना है, तो निश्चित रूप से आपको उन स्थानों को ब्लॉक करने के लिए एक अस्वीकृति दिनचर्या का उपयोग करना चाहिए जो अक्सर लॉग इन करने का प्रयास करते हैं। इसके लिए 2 अच्छे कार्यक्रम हैं, जिनका हमने उपयोग किया है वे डेनिहोस्ट और फेल 2बेन हैं। । इन कार्यक्रमों में ऐसी सेटिंग्स होती हैं जो आपको अपराधियों पर प्रतिबंध लगाने की अनुमति देती हैं, जो आपको पसंद है।
हमारे सेंटोस लिनक्स सिस्टम में, मैंने देखा कि उन्होंने डेनिहोस्ट्स पैकेज को गिरा दिया और केवल असफल 2 नोट की पेशकश की। मुझे डेनिहोस्ट पसंद आया क्योंकि इसने परेशान उपयोगकर्ताओं / आईपी श्रेणियों की सूची बनाई और फिर होस्टेसडेन में, उस सूची को नोट किया गया। हमने इसके बजाय विफलता 2ban स्थापित किया और यह ठीक है। मेरी समझ यह है कि आप सर्वर के बाहरी किनारे पर इन खराब उपयोगकर्ताओं को रोकेंगे, इसलिए आईपी टेबल आधारित अवरोधक, जैसे कि फेल 2 बीएन, वास्तव में बेहतर हैं। शत्रु अतीत के शस्त्रों को प्राप्त करने के बाद डेनहॉस्ट माध्यमिक स्तर पर काम करते हैं, जिन्हें बाद में sshd डेमॉन द्वारा अस्वीकार कर दिया जाता है।
इन दोनों कार्यक्रमों में, उपयोगकर्ताओं को जेल से बाहर निकलने के लिए थोड़ा थकाऊ होना चाहिए, यदि वे अपना पासवर्ड भूल जाते हैं और लॉग इन करने के लिए कुछ प्रयास करते हैं। लोगों से लॉग इन करते समय उन्हें वापस प्राप्त करना थोड़ा मुश्किल होता है। आपने अनुमान लगाया होगा कि एक बिंदु और क्लिक GUI होगा जहाँ आप बस बिंदु कर सकते हैं और लोगों को वापस जाने दे सकते हैं, लेकिन यह ऐसा नहीं है। मुझे केवल हर कुछ महीनों में ऐसा करना है और समय के बीच कैसे भूलना है, इसलिए मैंने अपने वेब पेज http://pj.freefacademy.org/blog/?p=301 पर अपने लिए निर्देश लिखे हैं।