Linux使用PAM鎖定屢次登錄失敗的用戶

 Linux有一個pam_tally2.so的PAM模塊,來限定用戶的登陸失敗次數,若是次數達到設置的閾值,則鎖定用戶。node

編譯PAM的配置文件linux

# vim /etc/pam.d/loginshell

  
  
           
  
  
  1. #%PAM-1.0 
  2. auth      required  pam_tally2.so   deny=3  lock_time=300 even_deny_root root_unlock_time=10 
  3. auth [user_unknown=ignore success=ok ignoreignore=ignore default=bad] pam_securetty.so 
  4. auth       include      system-auth 
  5.  
  6. account    required     pam_nologin.so 
  7. account    include      system-auth 
  8. password   include      system-auth 
  9. # pam_selinux.so close should be the first session rule 
  10. session    required     pam_selinux.so close 
  11. session    optional     pam_keyinit.so force revoke 
  12. session    required     pam_loginuid.so 
  13. session    include      system-auth 
  14. session    optional     pam_console.so 
  15. # pam_selinux.so open should only be followed by sessions to be executed in the user context 
  16. session    required     pam_selinux.so open 

各參數解釋
vim

  
  
           
  
  
  1. even_deny_root    也限制root用戶; 
  2.  
  3. deny           設置普通用戶和root用戶連續錯誤登錄的最大次數,超過最大次數,則鎖定該用戶 
  4.  
  5. unlock_time        設定普通用戶鎖定後,多少時間後解鎖,單位是秒; 
  6.  
  7. root_unlock_time      設定root用戶鎖定後,多少時間後解鎖,單位是秒; 
  8.  
  9. 此處使用的是 pam_tally2 模塊,若是不支持 pam_tally2 能夠使用 pam_tally 模塊。另外,不一樣的pam版本,設置可能有所不一樣,具體使用方法,能夠參照相關模塊的使用規則。 

 

在#%PAM-1.0的下面,即第二行,添加內容,必定要寫在前面,若是寫在後面,雖然用戶被鎖定,可是隻要用戶輸入正確的密碼,仍是能夠登陸的!session

最終效果以下圖ssh

 

這個只是限制了用戶從tty登陸,而沒有限制遠程登陸,若是想限制遠程登陸,須要改SSHD文件ide

# vim /etc/pam.d/sshdui

 

  
  
           
  
  
  1. #%PAM-1.0 
  2. auth          required        pam_tally2.so        deny=3  unlock_time=300 even_deny_root root_unlock_time=10 
  3.  
  4. auth       include      system-auth 
  5. account    required     pam_nologin.so 
  6. account    include      system-auth 
  7. password   include      system-auth 
  8. session    optional     pam_keyinit.so force revoke 
  9. session    include      system-auth 
  10. session    required     pam_loginuid.so 

一樣是增長在第2行!spa

查看用戶登陸失敗的次數xml

 

  
  
           
  
  
  1. [root@node100 pam.d]# pam_tally2 --user redhat 
  2. Login           Failures Latest failure     From 
  3. redhat              7    07/16/12 15:18:22  tty1 

解鎖指定用戶

 

  
  
           
  
  
  1. [root@node100 pam.d]# pam_tally2 -r -u redhat 
  2. Login           Failures Latest failure     From 
  3. redhat              7    07/16/12 15:18:22  tty1 

這個遠程ssh的時候,沒有提示,我用的是Xshell,不知道其它終端有沒提示,只要超過設定的值,輸入正確的密碼也是登錄不了的!

相關文章
相關標籤/搜索