5 असफल लॉगिन प्रयासों के बाद उपयोगकर्ताओं को कैसे लॉक किया जाए?


12

5 असफल लॉगिन प्रयासों के बाद उपयोगकर्ताओं को कैसे लॉक किया जाए?

मैंने कुछ डिस्ट्रीब्यूशन / वर्जन इकट्ठा किए कि इसे कैसे किया जाए, लेकिन मैं इसका परीक्षण नहीं कर सकता।

RHEL4 : को जोड़कर:

auth        required      /lib/security/$ISA/pam_tally.so no_magic_root
account     required      /lib/security/$ISA/pam_tally.so deny=5 reset no_magic_root

सेवा:

/etc/pam.d/system-auth
/etc/pam.d/login
/etc/pam.d/sshd

RHEL4 : ???

SLES9 : को जोड़कर:

auth required pam_tally.so no_magic_root
account required pam_tally.so deny=5 reset no_magic_root

सेवा:

/etc/pam.d/login
/etc/pam.d/sshd

SLES11 या SLES10 : को जोड़कर:

auth required pam_tally.so deny=5 onerr=fail per_user no_lock_time

सेवा:

/etc/pam.d/common-auth

और जोड़कर:

account required pam_tally.so

सेवा:

/etc/pam.d/common-account

प्रश्न : क्या कोई इसकी पुष्टि कर सकता है कि यह ५ असफल लॉगिन कोशिशों के बाद उपयोगकर्ताओं को लॉक करने का कार्य / अच्छा तरीका है? या यह कैसे करें?

पुनश्च:

/sbin/pam_tally --user USERNAME --reset

ऐसा करने से पहले एक उपयोगी बात है? क्या मैं इनके साथ रूट यूजर को लॉक कर सकता हूं? एडिटिंग PAM एक बहुत ही संवेदनशील चीज है, क्योंकि लोग सर्वर से खुद को बाहर निकाल सकते हैं (मेरा मतलब है पूर्व: रूट उपयोगकर्ता)। ऐसा करते समय कोई संकेत?


टैली मॉड्यूल ऐसा करने का तरीका है, लेकिन मैं pam_tally2 की सिफारिश करूंगा क्योंकि मूल एक काफी टूटा हुआ और गैर-सहज है। इसके अलावा, रूट इस तरह से लॉक होने के लिए खुला है, लेकिन आपको इसे सक्षम करना होगाno_magic_root
Bratchley

BTW, मैं रूट खाते पर किसी भी लॉकिंग को करने की सलाह नहीं दूंगा, कि आपका एस्केप हैच कुछ गलत हो जाना चाहिए (उदाहरण के लिए, अकाउंट लॉकिंग के साथ) और हमलावरों को इस पर कोई सीधा वैक्टर नहीं होना चाहिए।
ब्राचली

क्या SLES10 को no_magic_root की भी आवश्यकता है?
गास्को पीटर

सभी GNU / Linux डिस्ट्रोस अपस्ट्रीम प्रोजेक्ट्स के एक ही मूल सेट पर आधारित होते हैं, इसलिए जब तक नोवेल ने pam_tally मॉड्यूल के अपने संस्करण को एक तरह से बदलने का प्रयास नहीं किया, जो लोगों को भ्रमित करेगा, यह अन्य डिस्ट्रो की तरह SuSE पर भी होना चाहिए।
ब्राचली

1
क्या आप सुनिश्चित हैं कि यह एक अच्छा विचार है? इस तरह से प्रत्येक उपयोगकर्ता किसी भी अन्य उपयोगकर्ता को लॉग इन करने से आसानी से रोक सकता है। एक उच्च देरी का उपयोग करना IMO अधिक व्यावहारिक है, लेकिन अपने आप को तय करें।
मार्को

जवाबों:


17

आप विफलता 2 पर एक नज़र रखना चाह सकते हैं। यह विफल प्रयासों के एक सेट संख्या के बाद किसी खाते को लॉक करने के लिए कॉन्फ़िगर किया जा सकता है, और फिर समय की एक निर्धारित अवधि के बाद अनलॉक कर सकता है।

http://www.fail2ban.org/wiki/index.php/Downloads

यदि आप वास्तव में उपयोग करने के बारे में गंभीर हैं pam_tally, तो आप शायद pam_tally2इसके बजाय उपयोग करना चाहते हैं । किसी भी PAM पैकेज के साथ स्थापित किया जाना चाहिए जो वर्तमान है। आप इसका उपयोग कैसे करें, यह देखने के लिए एक आदमी pam_tally2 कर सकता है।

आपको आरंभ करने के लिए यहां एक उदाहरण है। की शुरुआत करने के लिए निम्नलिखित जोड़े प्रमाणन PAM फ़ाइल में अनुभाग, /etc/pam.d/password-auth:

auth        required      pam_tally2.so  file=/var/log/tallylog deny=3 even_deny_root unlock_time=1200

उसी फ़ाइल में इसे खाता अनुभाग में जोड़ें:

account     required      pam_tally2.so

उपरोक्त पैरामीटर निम्नानुसार हैं:

  • file=/var/log/tallylog - डिफॉल्ट लॉग फाइल का इस्तेमाल लॉगिन काउंट को रखने के लिए किया जाता है।
  • deny=3 - 3 प्रयासों के बाद प्रवेश से इनकार करें और उपयोगकर्ता को बंद कर दें।
  • even_deny_root - पॉलिसी रूट यूजर पर भी लागू होती है।
  • unlock_time=1200 - 20 मिनट। (60 सेकंड। * 20 मिनट। = 1200 सेकंड।)

अगर आप रूट आउट चेंज को भी नहीं बदलना चाहते हैं तो भी ___मोटी_ को मैजिक_रोट में बदल दें

यदि आप रूट खाता बंद करना चाहते हैं तो यह संदेहास्पद है। आप इसके बजाय ऐसा कुछ करना चाह सकते हैं, जहां रूट खाता लॉक हो सकता है, लेकिन केवल अन्य खातों की तुलना में कम अवधि के लिए:

auth        required      pam_tally2.so  file=/var/log/tallylog deny=3 even_deny_root unlock_time=1200 root_unlock_time=60

यह केवल रूट खाते को एक मिनट के लिए बंद कर देगा, बाकी सभी सामान्य 1200 सेकंड।

एक नमूना लॉग फ़ाइल निम्नानुसार दिखाई देगी:

$ ssh me@somemachine
me@somemachine's password:
Permission denied, please try again.
me@somemachine's password:
Permission denied, please try again.
me@somemachine's password:
Account locked due to 4 failed logins
Account locked due to 5 failed logins
Last login: Mon Jun 4 21:21:06 2013 from someothermachine

आप कमांड pam_tally2 का उपयोग करके अवरोधित खातों के बारे में पूछताछ कर सकते हैं:

$ pam_tally2 --user=me
Login           Failures  Latest    failure     From
me                   5    06/04/13  21:21:06    someothermachine

आप प्रतिबंध को इस तरह अनलॉक कर सकते हैं:

pam_tally2 --user=me --reset
Login           Failures  Latest    failure     From
me                  5     06/04/13  21:21:06    someothermachine

अब खाता pam_tally2 में दिखाता है जैसे:

$ pam_tally2 --user=me
Login           Failures   Latest   failure     From
me                 0

संदर्भ


2

pam_tally2शुरू में मुझे उलझन हुई, लेकिन मैंने निम्नलिखित के बाद यह पता लगाया man pam_tally2-

  EXAMPLES
   Add the following line to /etc/pam.d/login to lock the account after 4 failed logins.
   Root account will be locked as well. The accounts will be automatically unlocked after
   20 minutes. The module does not have to be called in the account phase because the
   login calls pam_setcred(3) correctly.

   auth     required       pam_securetty.so
   auth     required       pam_tally2.so deny=4 even_deny_root unlock_time=1200
   auth     required       pam_env.so
   auth     required       pam_unix.so

उपरोक्त शब्द थोड़ा भ्रमित करने वाला है, क्योंकि आप वास्तव में केवल pam_tally2.soरेखा जोड़ते हैं ।

इसलिए आप /etc/pam.d/loginइसे अन्य सभी authलाइनों के नीचे संपादित और जोड़ सकते हैं:

   auth     required       pam_tally2.so deny=4 even_deny_root unlock_time=1200

या यदि आपके पास है तो /etc/pam.d/system-authआप इसे वहां जोड़ सकते हैं।

किसी भी सेवा की रिबूट या पुनः लोडिंग की आवश्यकता नहीं है - यह नए स्थानीय लॉगिन के लिए तुरंत सक्रिय हो जाता है।

नोट: यदि आप या अन्य दूरस्थ सेवाओं के pam_tally2लिए आवेदन करना चाहते हैं sshd, तो आपको लाइन को /etc/pam.d/sshdऔर / या में जोड़ना होगा/etc/pam.d/password-auth


यह जाँचने के लिए कि यह काम कर रहा है, किसी मान्य उपयोगकर्ता के साथ एक असफल लॉगिन प्रयास करें, फिर चलाएँ pam_tally2

उदाहरण के लिए, jacobरन नाम के उपयोगकर्ता के लिए :

  $ sudo pam_tally2 -u jacob

और यह कुछ इस तरह का उत्पादन करेगा:

  Login           Failures Latest   failure     From
  jacob           1        01/01/01 11:00:00    tty1

यदि बहुत सारे लॉगिन प्रयास विफल हो जाते हैं और खाता लॉक हो जाता है, तो आप मैन्युअल रूप से खाते को अनलॉक कर सकते हैं:

  $ sudo pam_tally2 -u jacob --reset
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.