विधि # 1 - पासवर्ड लॉगिन अक्षम करें
यदि आपको पासवर्ड लॉगिन की अनुमति की आवश्यकता नहीं है, तो बस उन्हें अस्वीकार करने से आपको वांछित प्रभाव मिलेगा। बस इस लाइन को इसमें जोड़ें /etc/ssh/sshd_config
:
PasswordAuthentication no
इसके अतिरिक्त आप Match
ऑपरेटर के उपयोग से कुछ उपयोगकर्ताओं के लिए पासवर्ड के उपयोग को सीमित कर सकते हैं sshd_config
:
Match User root,foo,bar
PasswordAuthentication no
Match User user1,user2
PasswordAuthentication yes
विधि # 2 - iptables
आप iptables
असफल लॉगिन प्रयासों को ट्रैक करने और एक निश्चित सीमा के बाद उन्हें छोड़ने के लिए भी उपयोग कर सकते हैं । यह होस्टिंगफू से आपके उदाहरण के समान है लेकिन समझने में आसान है।
$ sudo iptables -I INPUT -p tcp --dport <YOUR PORT HERE> -i eth0 -m state --state NEW -m recent --set
$ sudo iptables -I INPUT -p tcp --dport <YOUR PORT HERE> -i eth0 -m state --state NEW -m recent --update --seconds 60 --hitcount 4 -j DROP
नोट: पहली पंक्ति मूल रूप से एक नियम बनाती है जो केवल ssh पोर्ट पर नए कनेक्शन प्रयासों के लिए उपयोग किए जाने वाले पैकेट पर लागू होता है। दूसरी पंक्ति कहती है कि अगर 60 सेकंड के भीतर एक आईपी से 4 से अधिक प्रयास होते हैं, तो उस आईपी से किसी भी यातायात को ब्लैकहोल किया जाना चाहिए। यह समाधान परवाह नहीं करता है कि अलग-अलग उपयोगकर्ता खातों पर प्रयास हैं या नहीं।
विधि # 3 - PAM का उपयोग करें
मुझे लगता है कि आपने कहा था कि आपके पास PAM उपलब्ध नहीं है, लेकिन यदि आपने किया है, तो यह है कि आप असफल लॉगिन प्रयासों में देरी कैसे कर सकते हैं। यदि आपका इरादा केवल ssh लॉगिन विफलताओं में देरी करना है तो आप PAM मॉड्यूल का उपयोग कर सकते हैं pam_faildelay
। यह PAM मॉड्यूल आमतौर पर डिफ़ॉल्ट मिक्स के साथ शामिल होता है।
मेरे फेडोरा 19 सिस्टम पर यह डिफ़ॉल्ट इंस्टॉलेशन का हिस्सा है।
उदाहरण
से संबंधित फाइलों को देखें pam_faildelay
।
$ locate pam|grep -i delay
/usr/lib/security/pam_faildelay.so
/usr/lib64/security/pam_faildelay.so
/usr/share/doc/pam-1.1.6/html/sag-pam_faildelay.html
/usr/share/doc/pam-1.1.6/txts/README.pam_faildelay
/usr/share/man/man8/pam_faildelay.8.gz
देखें कि वे किस RPM द्वारा प्रदान किए गए हैं:
$ rpm -qf /usr/share/man/man8/pam_faildelay.8.gz
pam-1.1.6-12.fc19.x86_64
pam-1.1.6-12.fc19.i686
प्रयोग
असफलता पर देरी बनाने के लिए आप बस एक पंक्ति जोड़ेंगे जैसे कि यह आपके sshd
pam config फाइल में। फ़ेडोरा / सेंटोस / आरएचईएल सिस्टम पर फिर से यह फ़ाइल यहाँ स्थित है /etc/pam.d/sshd
:।
10 सेकंड की देरी बनाने के लिए:
auth optional pam_faildelay.so delay=10000000
60 सेकंड की देरी:
auth optional pam_faildelay.so delay=60000000
उदाहरण
उपरोक्त विधि का उपयोग करते हुए 20 सेकंड की देरी के साथ, मैंने अपनी PAM sshd
कॉन्फ़िग फ़ाइल को इस तरह बदल दिया :
#%PAM-1.0
auth required pam_sepermit.so
auth substack password-auth
auth include postlogin
auth optional pam_faildelay.so delay=20000000
account required pam_nologin.so
account include password-auth
password include password-auth
# pam_selinux.so close should be the first session rule
session required pam_selinux.so close
session required pam_loginuid.so
# pam_selinux.so open should only be followed by sessions to be executed in the user context
session required pam_selinux.so open env_params
session optional pam_keyinit.so force revoke
session include password-auth
session include postlogin
अब जब मैं लॉगिन करता हूं:
$ date
Tue Dec 17 09:16:30 EST 2013
$ ssh blah@localhost
blah@localhost's password:
Permission denied, please try again.
blah@localhost's password:
...Control + C....
$ date
Tue Dec 17 09:16:50 EST 2013
संदर्भ