PAM认证机制
一、PAM簡介
Sun公司1995年開發的一種與認證相關的通用框架機制,PAM只關注如何為服務驗證用戶的API,通過提供一些動態鏈接庫和一套統一的API,將系統提供的服務和該服務的認證方式分開;PAM只是一個框架而已,自身不做認證。
它提供了對所有服務進行認證的中央機制,適用于login\telnet\rlogin\fsh\ftp\pp\su等應用程序中。
PAM-API 調用認證接口
PAM-SPI 提供認證接口
對應的文件名:pam_xxxx()
PAM認證一般遵循這樣的順序:Service->PAM(配置文件)->pam_*.so,這就是調用機制
二、配置PAM
PAM的目錄:
/lib64/security/pam* 全是pam模塊
/etc/security/ pam模塊的配置文件
/etc/pam.conf? pam主配置文件,默認不存在(不推薦使用)
/etc/pam.d/ pam子配置文件,推薦使用
?
我們查看/etc/pam.d/passwd
pam.conf文件格式
1)、第一列為type包括一下項目:
session
auth 只負責賬戶的認證和授權
account 負責賬戶相關,但是是認證之后的
password 負責用戶修改口令時,口令復雜度檢查
-type 表示因為缺失二不能加載的模塊將不記錄在日志內:例-password -session
pam.conf內,每一行,都要經過一次認證
2)、第二列為control,用來表示如何控制,一般都是簡單實現,即一個關機自
required 表示一票否決制,本模塊必須返回成功才能通過認證,但如果失敗,繼續檢查,但總體結果已經失敗了。
requisite 表示一票否決,它和required不同的地方是,不會繼續向下認證,直接返回失敗。
optional :表明本模塊是可選的,它的成功與否不會對身份認證起關鍵作用,其返回值一般被忽略
include: 調用其他的配置文件中定義的配置信息
sufficient:一票通過
3)、第三列為模塊名
具體路徑的引用由主配置文件/etc/pam.conf 中定義
三、PAM模塊示例
1、模塊:pam_securetty.so
功能:只允許root用戶在/etc/securetty列出的安全終端上登陸
例:
2、模塊:pam_shells
功能:檢查有效shell
例:
3、模塊:pam_nologin.so
功能:
如果/etc/nologin文件存在,將導致非root用戶不能登陸
如果用戶shell是/sbin/nologin 時,當該用戶登陸時,會顯示
/etc/nologin.txt文件內容,并拒絕登陸
4、模塊:pam_limits.so
功能:在用戶級別實現對其可使用的資源的限制,例如:可打
開的文件數量,可運行的進程數量,可用內存空間
修改限制的實現方式:
(1) ulimit命令,立即生效,但無法保存
-n 最多的打開的文件描述符個數
-u 最大用戶進程數
-S 使用 soft(軟)資源限制
-H 使用 hard(硬)資源限制
(2) 配置文件:/etc/security/limits.conf,
/etc/security/limits.d/*.conf
配置文件:每行一個定義;
<domain> <type> <item> <value>
<domain> 應用于哪些對象
Username 單個用戶
@group 組內所有用戶
* 所有用戶
<type> 限制的類型
Soft 軟限制,普通用戶自己可以修改
Hard 硬限制,由root用戶設定,且通過kernel強制生效
– 二者同時限定
<item> 限制的資源
nofile 所能夠同時打開的最大文件數量,默認為1024
nproc 所能夠同時運行的進程的最大數量,默認為1024
<value> 指定具體值
?
示例:pam_limits.so
?
四、總結
我們只是pam模塊的使用戶,不是開發者,每個模塊的用法各不相同,所以我們要知道如何去尋找pam模塊的幫助,我們可以通過man來查詢模塊的用法,這個是最快的途徑,或者在官網上下載pam模塊的文檔也是一個不錯的選擇。
pam文檔說明
/user/share/doc/pam-*
rpm -qd pam
man –k pam_模塊名
man 模塊名 如man rootok
pam模塊手冊《The Linux-PAM System Administrators’ Guide》
?
轉載于:https://www.cnblogs.com/momenglin/p/8486069.html
總結
- 上一篇: 新网银行安全吗?新网银行是干什么的?
- 下一篇: 工行信用卡融e借额度突然没了?几个原因了