जैसा कि ऊपर कहा गया है, एक संस्करण संख्या बदलना है
- करना मुश्किल है
- अस्पष्टता के माध्यम से सुरक्षा
- लचीला नहीं है
मेरा सुझाव है कि पोर्ट नॉकिंग को लागू करना। आपके सर्वर पर चल रही किसी भी चीज़ को छिपाने के लिए यह काफी सरल तकनीक है।
यहाँ एक अच्छा कार्यान्वयन है:
http://www.zeroflux.org/projects/knock
इस तरह से मैंने अपने सर्वर (अन्य नंबरों) पर एसएसएच को केवल उन लोगों के लिए लागू किया है जो 'गुप्त दस्तक' जानते हैं:
[openSSH]
sequence = 300,4000,32
seq_timeout = 5
command = /opencloseport.sh %IP% 2305
tcpflags = syn
यह एक 5 सेकंड विंडो देगा जिसमें 3 SYN- पैकेट को सही क्रम में प्राप्त करने की आवश्यकता होती है। ऐसे पोर्ट चुनें जो एक दूसरे से दूर हों और अनुक्रमिक न हों। इस तरह, एक portcanner दुर्घटना से बंदरगाह नहीं खोल सकता है। इन बंदरगाहों को iptables द्वारा खोलने की आवश्यकता नहीं है।
स्क्रिप्ट जिसे मैं कहता हूं वह यह है। यह SYN- पैकेट भेजने वाले IP के लिए 5 सेकंड के लिए एक विशेष पोर्ट खोलता है।
#!/bin/bash
/sbin/iptables -I INPUT -s $1 -p tcp --dport $2 -j ACCEPT
sleep 5
/sbin/iptables -D INPUT -s $1 -p tcp --dport $2 -j ACCEPT
यह SYN- पैकेट भेजने के लिए एक वास्तविक दर्द हो सकता है इसलिए मैं अपने सर्वर के SSH से कनेक्ट करने के लिए स्क्रिप्ट का उपयोग करता हूं:
#!/bin/bash
knock $1 $2
knock $1 $3
knock $1 $4
ssh $5@$1 -p $6
(यह स्पष्ट है कि यहाँ क्या हो रहा है ...)
कनेक्शन स्थापित होने के बाद, पोर्ट को बंद किया जा सकता है। संकेत: कुंजी-प्रमाणीकरण का उपयोग करें। अन्यथा आपको अपना पासवर्ड टाइप करने के लिए बहुत तेज़ होना चाहिए।