1.備份要操作的兩個配置檔案
cp /etc/pam.d/sshd /etc/pam.d/sshd.bak
cp /etc/pam.d/login /etc/pam.d/login.bak
2.檢查是否有pam_tally2.so模組
[root@iz25dd99ylmz security]# find /lib* -iname 「pam_tally2.so」
/lib64/security/pam_tally2.so
[root@iz25dd99ylmz security]# find /lib* -iname 「pam_tally.so」
[root@iz25dd99ylmz security]# cat /etc/pam.d/sshd
3.登入失敗處理功能策略(伺服器終端)
vim /etc/pam.d/system-auth (伺服器終端)
在首行#%pam-1.0下增加:
auth required pam_tally2.so onerr=fail deny=3 unlock_time=40 even_deny_root root_unlock_time=30
注意新增的位置,要寫在第一行,即#%pam-1.0的下面。
以上策略表示:普通帳戶和 root 的帳戶登入連續 3 次失敗,就統一鎖定 40 秒, 40 秒後可以解鎖。如果不想限制 root 帳戶,可以把 even_deny_root root_unlock_time
這兩個引數去掉, root_unlock_time 表示 root 帳戶的 鎖定時間,onerr=fail 表示連續失敗,deny=3,表示 超過3 次登入失敗即鎖定。
注意:使用者鎖定期間,無論在輸入正確還是錯誤的密碼,都將視為錯誤密碼,並以最後一次登入為鎖定起始時間,若果使用者解鎖後輸入密碼的第一次依然為錯誤密碼,則再次重新鎖定。
4.登入失敗處理功能策略(ssh遠端連線登入)
上面只是限制了從終端登陸,如果想限制ssh遠端的話, 要改的是
/etc/pam.d/sshd這個檔案,新增的內容跟上面一樣!
vim /etc/pam.d/sshd (遠端ssh)
在首行#%pam-1.0下增加:
auth required pam_tally2.so deny=3 unlock_time=20 even_deny_root root_unlock_time=30
vim /etc/pam.d/login (終端)
在首行#%pam-1.0下增加:
auth required pam_tally2.so deny=3 unlock_time=20 even_deny_root root_unlock_time=30
如果在操作中間出現下面這個錯誤:
dec 7 15:06:51 iz2zee7gmy40tbverl53rfz sshd[15747]: pam unable to dlopen(/lib64/security/pam_tally.so): /lib64/security/pam_tally.so: cannot open shared object file: no such file or directory
dec 7 15:06:51 iz2zee7gmy40tbverl53rfz sshd[15747]: pam adding faulty module: /lib64/security/pam_tally.so
上面的錯誤意思是在/lib64/security/ 下面找不到pam_tally.so,而我進入到目錄下,確實沒找到這個檔案,解決方法是將現有的 pam_tally2.so做個軟連線到pam_tally.so
[root@iz2zee7gmy40tbverl53rfz ~]# cd /lib64/security/
[root@iz2zee7gmy40tbverl53rfz ~]#ln -s pam_tally2.so pam_tally.so
各引數解釋:
even_deny_root 也限制root使用者;
deny=3 設定普通使用者和root使用者連續錯誤登陸的最大次數,超過最大次數,則鎖定該使用者
unlock_time=20 設定普通使用者鎖定後,多少時間後解鎖,單位是秒;
root_unlock_time 設定root使用者鎖定後,多少時間後解鎖,單位是秒;
5.測試
可以故意輸錯密碼超過三次,然後第五次輸入正確密碼,如果正確密碼進入不了系統,說明配置生效。以上的配置是即時生效的,不用重啟配置檔案或系統,但是請注意多開個ssh視窗,防止配置檔案更改錯誤,將自己關在伺服器外面。
6.解鎖賬戶
如果密碼在鎖定時間內,但是又要立即進入系統,可使用下面方法解鎖被鎖定使用者,當然這是對於root使用者解鎖普通使用者來說的。如果root使用者被鎖,請等待鎖定期過後在操作。
手動解除鎖定:
檢視某一使用者錯誤登陸次數:
pam_tally –-user
例如,檢視work使用者的錯誤登陸次數:
pam_tally –-user work 或者 pam_tally –u work
清空某一使用者錯誤登陸次數:
pam_tally –-user –-reset
例如,清空 work 使用者的錯誤登陸次數,
pam_tally –-user work –-reset
faillog -r 命令亦可。
如果前幾條沒生效的話,也可以使用命令:
pam_tally2 –u tom --reset將使用者的計數器重置清零(sles 11.2下用此命令才重置成功)
檢視錯誤登入次數:pam_tally2 –u tom
解鎖指定使用者
[root@iz25dsfp6c3dz ~]# pam_tally2 -r -u root
7.修改密碼長度限制和字元限制
vim /etc/pam.d/system-auth
password requisite pam_cracklib.so try_first_pass retry=3 minlen=8 lcredit=-1 dcredit=-1 ocredit=-1 ucredit=-1
password sufficient pam_unix.so md5 shadow nullok try_first_pass use_authtok remember=5
就是密碼的一些策略,密碼長度至少8
retry 定義登入/修改密碼失敗時,可以重試的次數
minlen 定義使用者密碼的最小長度為8位
lcredit=-1 定義使用者密碼中最少有1個小寫字母
dcredit=-1 定義使用者密碼中最少有1個數字
ocredit=-1 定義使用者密碼中最少有1個特殊字元
ucredit=-2 定義使用者密碼中最少有2個大寫字母
remember=5 修改使用者密碼時最近5次用過的舊密碼就不能重用了
Linux伺服器檔案刪除策略
磁碟空間滿 由於linux沒有 站功能,所以線上伺服器上所有要刪除的檔案都會先移動到系統 tmp目錄下,然後定期清除 tmp目錄下的資料。這個策略本身沒有問題,但是通過檢查發現這台伺服器的系統分割槽中並沒有單獨劃分 tmp分割槽,這樣 tmp下的資料其實占用了根分割槽的空間。既然找到了問題,那麼刪除...
linux設定時間伺服器
對多個linux伺服器,時間保持一致是很必要的。根據精確度要求,應該有相應的時間間隔進行時間同步。如果不進行時間同步,時間久了就會差別很大,遇到問題時定位就很困難。因為多台裝置的配合,log之間可能有前因後果,時間是同步事件的先後的重要依據。一般來說,對乙個機房內的裝置,可以設定一台時間伺服器,由它...
linux設定時間伺服器
周海漢 文 2010.3.30 對多個linux伺服器,時間保持一致是很必要的。根據精確度要求,應該有相應的時間間隔進行時間同步。如果不進行時間同步,時間久了就會差別很大,遇到問題時定位就很困難。因為多台裝置的配合,log之間可能有前因後果,時間是同步事件的先後的重要依據。一般來說,對乙個機房內的裝...