[अस्वीकरण] मुझे एहसास है कि मैं पार्टी के लिए देर से हूं, लेकिन मैं एक जवाब देना चाहूंगा, जो मैंने एक और सवाल दिया था , क्योंकि मुझे ऐसा लगता है कि यह पाठकों को कुछ अच्छी अंतर्दृष्टि प्रदान कर सकता है, और यह सवाल प्रतीत होता है मूल ssh जानकारी के लिए जगह।
इसी तरह की एक समस्या थी जिसने आस्कुबंटु के यहाँ इस प्रश्न को पढ़ने के बाद मुझे मारा और मेरे VPS की जाँच की, केवल एक बलपूर्वक ब्रूट बल के प्रयासों को देखा। तभी मैंने कार्रवाई करने का फैसला किया।
अब मैं आपके द्वारा जुड़े प्रश्न के अनुसार, यदि आप ssh के ऊपर अपनी मशीन पर विफल लॉगिन प्रयास देखना चाहते हैं (बलपूर्वक प्रयास या कुछ भी हो सकता है), यह टाइप करने का प्रयास करें:
grep sshd.\*Failed /var/log/auth.log | less
यदि आउटपुट में कई पंक्तियाँ होती हैं, तो यह बल की कई कोशिशें होती हैं, खासकर यदि वे छोटे अंतराल के बीच हुई हों, तो आप निम्नलिखित कार्य करना चाह सकते हैं:
Ssh कॉन्फ़िगरेशन फ़ाइल बदलें
ऐसा करने के लिए, अपने पसंदीदा संपादक के साथ / etc / ssh / sshd_config पर स्थित फ़ाइल को इस तरह खोलें vim /etc/ssh/sshd_config
।
1. ssh को पोर्ट 22 से स्थानांतरित करने का प्रयास करें : अब उस रेखा का पता लगाएं जो पढ़ती है:
# What ports, IPs and protocols we listen for
Port 22
और पोर्ट 22 पर टिप्पणी करें, और जो भी आपको पसंद हो उसका उपयोग करें। उदाहरण:
# What ports, IPs and protocols we listen for
# Port 22
Port 28934
कृपया याद रखें कि 1024 से नीचे के बंदरगाहों को विशेष (रूट) अनुमति की आवश्यकता है। मुझे नहीं पता कि यह इसके साथ कैसे हस्तक्षेप कर सकता है, लेकिन मैं सिर्फ यह कह रहा हूं।
2. ssh के माध्यम से रूट लॉगिन को अक्षम करें : चूँकि रूट यूज़रनेम प्रेडिक्टेबल है और आपके सिस्टम तक पूरी पहुँच प्रदान करता है, इसलिए SSH के ऊपर इस खाते के लिए अपरिवर्तित पहुँच उपलब्ध नहीं है। पढ़ने लाइन का पता लगाएँ PermitRootLogin और के लिए सेट नहीं ।
PermitRootLogin no
3. पासवर्ड प्रमाणीकरण अक्षम करें : अपने सिस्टम में लॉग इन करने के लिए SSH कुंजियों का निर्माण और उपयोग करें। पासवर्ड सक्षम किए बिना, हमलावरों को आपके सर्वर तक पहुंच प्राप्त करने के लिए आपकी SSH निजी कुंजी का अनुमान (या चोरी) करना होगा। कुछ ऐसा जो बहुत मुश्किल है। लाइन है कि पढ़ता है खोजने के लिए आगे बढ़ें PasswordAuthentication और के लिए सेट नहीं
PasswordAuthentication no
! चेतावनी! ऐसा करने से पहले, कृपया प्रमाण पत्र प्रमाणीकरण कैसे सेट करें, इस दिशा में यहां से सलाह लें ।
नोट: के बाद आप परिवर्तन का उपयोग किया है sudo /etc/init.d/ssh restart
। Ssh उपयोग के माध्यम से दूसरे पोर्ट से कनेक्ट करने के लिए ssh username@hostname.com -p <port_number>
:।
एक फ़ायरवॉल सेटअप करें
कृपया बेहद शक्तिशाली और प्रभावी फ़ायरवॉल सेट करने के बारे में इस गाइड की जाँच करें , जिसे Linux, IPTables में एकीकृत किया गया है ।
सुरक्षा के साथ आपकी मदद करने के लिए स्क्रिप्ट सेट करें
एक है कि मैं व्यक्तिगत रूप से उपयोग करते हैं और जल्दी से मन में आता है Fail2Ban है । Fail2ban विफल लॉगिन प्रयासों के लिए आपकी लॉग फ़ाइलों की निगरानी करेगा। एक आईपी पते के प्रमाणीकरण प्रयासों की अधिकतम संख्या से अधिक हो जाने के बाद, इसे नेटवर्क स्तर पर ब्लॉक किया जाएगा और ईवेंट को लॉग इन किया जाएगा /var/log/fail2ban.log
। इसे स्थापित करने के लिए:sudo apt-get install fail2ban
Ssh के माध्यम से कमांड इतिहास की जाँच करें
एक लिनक्स कमांड है, जिसका नाम है history
, जो आपको यह देखने की अनुमति देता है कि उस बिंदु तक कौन से कमांड इनपुट किए गए हैं। history
उस बिंदु तक सभी आदेशों को देखने के लिए एक टर्मिनल में टाइप करने का प्रयास करें । यदि आप जड़ थे तो यह मदद कर सकता है ।
किसी विशेष कमांड के लिए खोज करने का प्रयास करें:history | grep command-name
Ssh के बाद सभी कमांड को सूचीबद्ध करने के लिए :fc -l ssh
आप vi का उपयोग करके भी आदेशों को संपादित कर सकते हैं (यह कोशिश नहीं की है, हालांकि मुझे लगता है कि यह भी काम करता है):fc -e vi
आप इतिहास को हटा भी सकते हैं :history -c
नोट: यदि आप कमांड के प्रशंसक नहीं हैं तो history
आपके होम डायरेक्टरी ( cd ~
), .bash_history (यदि आप बैश का उपयोग कर रहे हैं ) में एक फ़ाइल भी है जिसे आप cat
बैश शेल में टाइप किए गए सभी को देख सकते हैं।
unset HISTFILE
बैश के अंदर टाइप करने से रोकने का कोई तरीका नहीं है , और फिर उनका बैश इतिहास दर्ज नहीं किया जाएगा।