जवाबों:
सबसे अधिक संभावित कारण यह है कि लोगों को बेतरतीब ढंग से किसी भी एसएसएच लॉगिन को पाटने के लिए बेतरतीब ढंग से प्रयास करना मुश्किल हो जाता है। मेरी इंटरनेट का सामना करने वाली मशीन डिफ़ॉल्ट SSH पोर्ट का उपयोग करती है, और मेरे लॉग इस तरह से भरे जाते थे (एक वास्तविक लॉग फ़ाइल से अंश):
sshd[16359]: Invalid user test from 92.241.180.96
sshd[16428]: Invalid user oracle from 92.241.180.96
sshd[16496]: Invalid user backup from 92.241.180.96
sshd[16556]: Invalid user ftpuser from 92.241.180.96
sshd[16612]: Invalid user nagios from 92.241.180.96
sshd[16649]: Invalid user student from 92.241.180.96
sshd[16689]: Invalid user tomcat from 92.241.180.96
sshd[16713]: Invalid user test1 from 92.241.180.96
sshd[16742]: Invalid user test from 92.241.180.96
sshd[16746]: Invalid user cyrus from 92.241.180.96
sshd[16774]: Invalid user temp from 92.241.180.96
sshd[16790]: Invalid user postgres from 92.241.180.96
sshd[16806]: Invalid user samba from 92.241.180.96
इन दिनों मैं IP को अवरुद्ध करने के लिए DenyHosts का उपयोग करता हूं जो कई बार प्रमाणित करने में विफल होते हैं, लेकिन यह सिर्फ बंदरगाहों को स्विच करना आसान है; इस तरह के लगभग सभी जानवर बल के हमलों को देखने के लिए स्कैनिंग को परेशान करने के लिए नहीं जा रहे हैं कि क्या आपका sshd दूसरे पोर्ट पर सुन रहा है, वे बस मान लेंगे कि आप एक नहीं चल रहे हैं और आगे बढ़ें
नहीं, यह अस्पष्टता रणनीति द्वारा एक सुरक्षा है ।
यदि आपका sshd सेटअप केवल dumb script kiddies का सामना करने के लिए पर्याप्त रूप से फिट नहीं है, केवल 22 पोर्ट की कोशिश कर रहा है, तो आपको वैसे भी समस्या है।
एक अधिक तर्कसंगत प्रतिक्रिया होगी:
सिस्टम लॉग में शोर sshd के लिखे जाने से कुछ लोग नाराज भी हो सकते हैं, जैसे:
Jan 02 21:24:24 example.org sshd[28396]: Invalid user guest from 212.129.23.128
Jan 02 21:24:24 example.org sshd[28396]: input_userauth_request: invalid user guest [preauth]
Jan 02 21:24:24 example.org sshd[28396]: error: Received disconnect from 212.129.23.128: 3: com.jcraft.jsch.JSchException: Auth fail [preauth]
Jan 02 21:24:24 example.org sshd[28398]: Invalid user ubnt from 212.129.23.128
Jan 02 21:24:24 example.org sshd[28398]: input_userauth_request: invalid user ubnt [preauth]
Jan 02 21:24:24 example.org sshd[28398]: error: Received disconnect from 212.129.23.128: 3: com.jcraft.jsch.JSchException: Auth fail [preauth
यह तब sshd पोर्ट को अस्पष्ट करने या फिर से सिग्नल-टू-शोर अनुपात को बढ़ाने के लिए एक स्वचालित अवरोधक समाधान (जैसे DenyHosts, Fail2ban या BlockHosts) का उपयोग करने के लिए लुभावना हो सकता है ।
लेकिन बेहतर विकल्प मौजूद हैं। उदाहरण के लिए, आप अपने syslog डेमॉन को कॉन्फ़िगर कर सकते हैं जैसे कि sshd लॉग शोर केवल लिखा है - कहना - /var/log/sshd-attempts.log
और संकेत (यानी शेष sshd लॉग संदेश) /var/log/messages
आदि को पहले की तरह लिखा जाता है ।
स्वचालित ब्लॉकिंग टूल की तैनाती को सावधानी से माना जाना चाहिए क्योंकि सुरक्षा प्रासंगिक प्रणालियों में अधिक जटिलता जोड़ने का मतलब शोषण का खतरा भी बढ़ जाता है । और वास्तव में, वर्षों में, प्रत्येक DenyHosts , Fail2ban और BlockHosts के लिए कई DoS भेद्यता रिपोर्ट हैं ।
SSH पोर्ट को बदलना ज्यादातर सुरक्षा थिएटर है । यह आपको कुछ करने के लिए एक अजीब एहसास देता है। आपने डोरमैट के नीचे SSH पोर्ट छिपाया है।
यदि आप इंटरनेट पर एक SSH सर्वर चलाते हैं, तो आपको अपने लॉग में बहुत सारे असफल लॉगिन प्रयास दिखाई देंगे, बोट्स से जो कि सर्वर के पुराने संस्करणों में मूर्खतापूर्ण कमजोर पासवर्ड, कमजोर कुंजी और ज्ञात कारनामों की तलाश में हैं। असफल प्रयास बस इतना ही है: असफल प्रयास। जहां तक यह मूल्यांकन करने की बात है कि आप कितने कमजोर हैं, वे पूरी तरह से अप्रासंगिक हैं। आपको सफल घुसपैठ के प्रयासों के बारे में चिंता करने की आवश्यकता है और आप उन लोगों को अपने लॉग में नहीं देखेंगे।
डिफ़ॉल्ट पोर्ट को बदलने से इस तरह के बॉट्स द्वारा हिट की संख्या कम हो जाएगी, लेकिन यह केवल कम से कम परिष्कृत हमलावरों को नाकाम कर देता है, जो किसी भी सभ्य सुरक्षा (नियमित रूप से लागू किए गए सुरक्षा अपडेट, काफी मजबूत पासवर्ड या अक्षम पासवर्ड प्रमाणीकरण) द्वारा रोक दिए जाते हैं। केवल लाभ लॉग की मात्रा को कम कर रहा है। यदि यह एक समस्या है, तो इसके बजाय कनेक्शन दर को सीमित करने के लिए Denyhosts या Fail2ban जैसी किसी चीज़ पर विचार करें , यह आपके बैंडविड्थ को भी अच्छा करेगी ।
डिफ़ॉल्ट पोर्ट को बदलने से एक बड़ा नुकसान होता है: यह आपको फ़ायरवॉल के पीछे से लॉग इन करने में सक्षम होने की संभावना कम कर देता है। फ़ायरवॉल कुछ यादृच्छिक अन्य पोर्ट की तुलना में अपने डिफ़ॉल्ट पोर्ट के माध्यम से सेवाएं देने की अधिक संभावना है। यदि आप HTTPS सर्वर नहीं चला रहे हैं, तो SSH को पोर्ट 443 पर सुनें (या पोर्ट 443 से पोर्ट 22 में आने वाले TCP अनुरोधों को पुनर्निर्देशित करें) पर विचार करें, क्योंकि कुछ फायरवॉल ट्रैफिक को अनुमति देते हैं कि वे पोर्ट 443 पर डिकोड नहीं कर सकते क्योंकि यह दिखता है HTTPS की तरह।