概述:本文介紹常見的PAM認證模塊,包括每一個模塊的所屬類型、功能描述以及可識別的參數,有配置文件的,我們給出了配置文件的簡單說明,其中一部分模塊,我們還給出了配置實例。希望通過我們的介紹,使讀者對常用的PAM認證模塊有一定的了解。本文的介紹是基于RedHat7.x系統。水平有限,不足之處請讀者批評指正。
1.pam_access認證模塊
所屬類型:account
功能描述:該模塊提供基于登錄用戶名、客戶ip/主機名、網絡號以及登錄終端號的訪問控制。缺省的,該模塊的配置文件是/etc/security/access.conf,可以使用accessfile參數指定自定義的配置文件。
可帶參數:accessfile=/path/to/file.conf
配置文件說明:
該文件的每一行由如下三個字段構成,中間使用冒號分割:
權限 : 用戶 : 來源
權限字段可以是”+”(即允許訪問),”-”(禁止訪問);
用戶字段可以是用戶名、組名以及諸如格式的用戶名,ALL表示任何人,
具有多個值時,可以用空格分開。
來源字段可以是tty名稱(本地登錄時)、主機名、域名(以”.”開始),主機ip地址,網絡號(以”.”結束)。ALL表示任何主機,LOCAL表示本地登錄。
可以使用EXCEPT操作符來表示除了…之外。
配置實例:
只有bye2000可以從本地登錄主機。
編輯/etc/pam.d/login如下所示:
#%PAM-1.0
auth required /lib/security/pam_securetty.so
auth required /lib/security/pam_stack.so service=system-auth
auth required /lib/security/pam_nologin.so
account required /lib/security/pam_stack.so service=system-auth
account required /lib/security/pam_access.so
password required /lib/security/pam_stack.so service=system-auth
session required /lib/security/pam_stack.so service=system-auth
session optional /lib/security/pam_console.so
也即加上
account required /lib/security/pam_access.so
然后在/etc/security/access.conf中加上:
-:ALL EXCEPT bye2000 : LOCAL
假如禁止root以外的任何人從任何地方登錄,可以在/etc/security/access.conf中加上:
-:ALL EXCEPT root: ALL
2.pam_chroot認證模塊
所屬類型:account, session, auth
功能描述:該模塊為一般用戶提供一個虛根環境,該模塊的配置文件是/etc/security/chroot.conf。
可帶參數:
debug:將調試信息寫入日志
onerr:定義當配置文件無法打開、chroot()函數失敗以及配置文件中沒有用戶信息時的動作,缺省為”succeed”。
附加說明:該模塊文檔不全,沒有對chroot.conf的相關配置說明。
3.pam_cracklib認證模塊
所屬類型:password
功能描述:該模塊對用戶密碼提供強健性檢測。換句話說,您可以定義用戶密碼的方方面面,比如密碼長度、密碼的復雜程度等等。
可帶參數:
debug:將調試信息寫入日志
type=xxx:添加/修改密碼時,系統的缺省提示符是” New UNIX password:”以及” Retype UNIX password:”,使用該參數可以自定義提示符中的UNIX,比如指定type=your.
retry=N:定義添加/修改密碼失敗時,可以重試的次數。
Difok=N:定義新密碼中必須有幾個字符要與舊密碼不同。但是如果新密碼中有1/2以上的字符與舊密碼不同時,該新密碼將被接受。
minlen=N:定義密碼最小長度。
dcredit=N:定義密碼中可以包含數字的最大數目。
ucredit=N:定義密碼中可以包含的大寫字母的最大數目。
lcredit=N:定義密碼中可以包含的小寫字母的最大數目。
ocredit=N:定義密碼中可以包含的其他字符(除數字、字母之外)的最大數目。
配置實例:
請參考/etc/pam.d/system-auth文件
4.pam_deny認證模塊
所屬類型:account, session, auth,password
功能描述:該模塊僅僅返回一個錯誤。用來拒絕用戶訪問。通常該模塊被用來作為缺省的驗證規則。
可帶參數:無
配置實例:
請參考/etc/pam.d/system-auth文件
5.pam_env認證模塊
所屬類型: auth
功能描述:該模塊可以用來設置任意的環境變量,缺省的,該模塊的配置文件是/etc/security/pam_env.conf,可以使用conffile參數指定自定義的配置文件。
配置文件說明:該配置文件每一行(一個條目)的語法如下:
變量名 [DEFAULT=[值]] [OVERRIDE=[值]]
選項DEFAULT說明這是一個缺省值;OVERRIDE則說明可以覆蓋缺省值。在該配置文件中,可以使用${變量名}的形式應用變量。除此之外,該模塊還可以從/etc/environment文件中讀入形如“變量名=值”的環境變量,當然該文件也可以用readenv參數自己指定。需要注意的是,該文件的讀入的值,將覆蓋conffile文件中的缺省值。
可帶參數:
debug:將調試信息寫入日志
conffile=filename:指定自定義的配置文件;
readenv=filename:指定自定義包含“變量名=值”形式的環境變量配置文件;
readenv=1/0:設置是否從readenv中讀入環境變量,缺省是1,也即讀入。
配置實例:
請參考/etc/pam.d/system-auth文件
6.pam_filter認證模塊
所屬類型:account, session, auth,password
功能描述:該模塊提供對用戶和應用程序交互內容的訪問控制功能,目前僅僅具有大小寫轉換功能。該模塊還有待完善。
7.pam_ftp認證模塊
所屬類型:auth
功能描述:該模塊提供匿名ftp用戶認證機制。
可帶參數:
debug:將調試信息寫入日志
users=xxx,yyy:指定采用該模塊進行認證的用戶名,缺省為ftp和anonymous,可以用逗號進行分割;
ignore:不對用戶輸入的密碼(郵件地址)進行檢驗