PAM工作平臺
功能由PAM提供,平臺是面向應(yīng)用程序開發(fā)者與安全認證開發(fā),由系統(tǒng)運維人員管理
相關(guān)文件
/usr/lib64/security/*.so 文件

image.png
工作原理

image.png
PAM配置
/etc/security/ #對于較復(fù)雜服務(wù),配置如何調(diào)用*.so模塊
/etc/pam.d/app-name # 服務(wù)的PAM配置文件是以對應(yīng)服務(wù)名命名的文件

image.png
格式
注意:修改PAM配置文件將馬上生效
建議∶編輯pam規(guī)則時,保持至少打開一個root會話,以防止root身份驗證錯誤
| Type | Control | Module-Path | Arguments |
|---|

image.png
Type
auth 賬號的認證和授權(quán)
account 帳戶的有效性,是否由權(quán)限操作
password 用戶修改密碼時密碼復(fù)雜度檢查機制等功能
session 用戶會話期間的控制,如:最多打開的文件數(shù),最多的進程數(shù)等
-Type類型 表示因為缺失而不能加載的模塊將不記錄到系統(tǒng)日志
Control
required 一票否決,表示本模塊必須返回成功才能通過認證,但是所有模塊全部執(zhí)行完畢后
才返回失敗結(jié)果;
requisite 一票否決,該模塊必須返回成功才能通過認證,但是一旦該模塊返回失敗;
sufficient 一票通過,表明本模塊返回成功則通過身份認證的要求,不必再執(zhí)行同一type內(nèi)
的其它模塊,優(yōu)先于一票否決
optional 表明本模塊是可選的,它的成功與否不會對身份認證起關(guān)鍵作用,其返回值一般被忽略
include 調(diào)用其他的配置文件中定義的配置信息
Module-Path
模塊文件所在絕對路徑:
模塊文件所在相對路徑:lib64/security目錄下的模塊可使用相對路徑,如: pam_shells.so
有些模塊有自已的專有配置文件,在/etc/security/*.conf目錄下
Arguments
debug
該模塊應(yīng)當(dāng)用syslog()將調(diào)試信息寫入到系統(tǒng)日志文件中
no_warn
表明該模塊不應(yīng)把警告信息發(fā)送給應(yīng)用程序
use_first_pass
該模塊不能提示用戶輸入密碼,只能從前一個模塊得到輸入密碼
try_first_pass
該模塊首先用前一個模塊從用戶得到密碼,如果該密碼驗證不通過,再提示用戶輸入新密碼
use_mapped_pass
該模塊不能提示用戶輸入密碼,而是使用映射過的密碼
expose_account
允許該模塊顯示用戶的帳號名等信息,一般只能在安全
的環(huán)境下使用,因為泄漏用戶名會對安全造成一定程度
的威脅
日志文件
/var/log/secre
模塊
pam_shell.so
功能
檢查有效shell
匹配 /etc/shells配置文件中定義的合法shell
pam_securetty.so
功能
只允許root用戶在/etc/securetty文件列出的安全終端上登陸,這個文件centos未創(chuàng)建需手動創(chuàng)建

image.png
在/etc/pam.d/login /etc/pam.d/remote 中啟用可以限制用戶從何種終端登錄

image.png

image.png
pam_nologin.so
功能
如果/etc/nologin文件存在,將導(dǎo)致非root用戶不能登陸,當(dāng)該用戶登陸時,會顯示/etc/nologin文件內(nèi)容,并拒絕登陸(內(nèi)容可以為空)
pam_limits.so
功能
在用戶級別實現(xiàn)對其可使用的資源的限制,例如:可打開的文件數(shù)量,可運行的進程數(shù)量,可用內(nèi)存空間
ulimit 命令臨時修改
ulimit [ption]
-n 每個進程最多的打開的文件個數(shù)
-u 最大用戶進程數(shù)
-s 使用soft(軟)資源限制
-H使用hard(硬)資源限制
ulimit -a 查看可以使用資源

image.png
配置文件
/etc/security/ limits.conf
/etc/security/limits.d/*.conf #子配置文件
格式

image.png
Domain
Username 單個用戶
@group 組內(nèi)所有用戶
* 所有用戶
% 僅用于限制maxlogins limit ,可以使用%group語法.只用%相當(dāng)于*對所有用戶
maxsyslogins limit限制.%group表示限制此組中的所有用戶總的最大登錄數(shù)
type
soft 軟限制,可以超出限制
Hard 硬限制,不能超出限制,由root用戶設(shè)定,且通過kernel強制生效
- 二者同時限定
Item
core limits the core file size (KB)
data max data size (KB)
fsize maximum filesize (KB)
memlock max locked-in-memory address space (KB)
nofile max number of open file descriptors
rss max resident set size (KB)
stack max stack size (KB)
cpu max CPU time (MIN)
nproc max number of processes
as address space limit (KB)
maxlogins max number of logins for this user
maxsyslogins max number of logins on the system
priority the priority to run user process with
locks max number of file locks the user can hold
sigpending max number of pending signals
msgqueue max memory used by POSIX message queues (bytes)
nice max nice priority allowed to raise to values: [-20, 19]
rtprio max realtime priority
value
unlimited 無限制
數(shù)字
pam_succeed_if.so
功能
根據(jù)參數(shù)中的所有條件都滿足才返回成功
Ubuntu 啟用root賬戶
vim /etc/pam.d/gdm-passwd
#將下面行注釋
auth requried pam_succeed_if.so user !=root quiet_success
pam_google_authenticator.so
功能
實現(xiàn)SSH登錄的兩次身份驗證,先驗證APP的數(shù)字碼,再驗證root用戶的密碼,都通過才可以登錄。目前只支持口令驗證,不支持基于key驗證