PAM <備忘>

# 實驗環境Centos 6.5 64位系統

 

1、配置文件在/etc/pam.d/ 目錄下

wKioL1XilcKzdfX-AAIHaL4gWLU076.jpg

2、使用ldd命令查看程序是否支持PAM

ldd `which sshd` | grep -i "pam"

3、以sshd服務爲例:

    wKiom1XiljujBfCFAAKEPSpl6i8499.jpg

語法格式爲:service    type    control    module-path    module-arguments

<可以通過 man pam.d 查看詳細信息>

service:

    auth:     主要是接受用戶名和密碼,進而對用戶的密碼進行認證

    account:    主要是檢查賬戶是否被允許登陸系統

    password:  主要是更新密碼

    session:    主要是記錄一些信息:opening/closing some data exchange with a user, mounting dir, etc.

type:

    required:    必須通過此認證,但是如果失敗,失敗的結果也不會立即通知用戶,而是要等到同一stack中的所有模塊全部執行完畢再將失敗結果返回給應用程序。<例如,用戶在登陸時,使用的用戶名不存在,也不會立即提示用戶名錯誤,而是要等輸完密碼後才提示,起到一定的防破解作用。>

    requisite:    與required類似,但是不同之處在於,如果返回失敗,將不會再執行同一stack內的任何模塊,而是直接將控制權返回給應用程序。

    sufficient:    表明本模塊返回成功已經足以通過身份認證的要求,不必再執行同一stack內的其他模塊,但是如果本模塊返回失敗的話可以忽略。

    optional:表明本模塊是可選的,它的成功與否一般不會對身份認證起關鍵作用,其返回值一般被忽略。

    include:    包括指定的配置文件中的所有行。

module-path: 用來指定模塊的路徑,默認路徑在 /lib64/security/ 目錄 <系統不同,位置可能不同,可以通過 `rpm -ql pam` 查看pam包將模塊裝到了什麼地方。>

module_arguments: 模塊執行時候的參數,可以使用[man 模塊名] 來查看詳細參數。

 

4、常用模塊<可以使用 man module_name 查看模塊的具體使用方法和應用的位置>:

    pam_nologin.so:    如果存在/etc/nologin文件,則不允許除root外的所有普通用戶登陸。

    pam_tally2.so:        用戶在登陸系統時,輸錯密碼多少次,鎖定用戶多長時間 (通過 man pam_tally2 查看詳細信息),例如: 輸錯兩次密碼鎖定用戶,也包括root,鎖定時間爲100s

        <auth       required     pam_tally2.so    deny=2 even_deny_root unlock_time=100>

        查看當前鎖定的用戶: pam_tally2        手動解鎖被鎖定用戶: pam_tally2  -u  username  -r

    pam_time.so:    指定用戶在指定終端的指定時間訪問指定程序。配置文件爲 /etc/security/time.conf。例如:

                    sshd;*;bloke;!Al0000-0800 & Al1800-2400        

                    #在每天的零點到八點和每天的18點到24點之間不允許在任何終端登錄系統。

    pam_timestamp: 和使用sudo類似,在認證成功後指定時間內不需要再次認證,默認是300s。

 

5、在設置時,需要注意順序和type

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章