【資訊保安】PAM模組的研究(一)

kingsql發表於2014-09-09

    PAM,即Pluggable Authentication Modules(可插入式身份驗證模組)最初是由Sun 公司發明的,Sun 把它作為一種驗證使用者身份的靈活方法。它透過提供一些動態連結庫和一套統一的API,將系統提供的服務和該服務的認證方式分開,使得系統管理員可以靈活地根據需要給不同的服務配置不同的認證方式而無需更改服務程式,同時也便於向系 統中新增新的認證手段。PAM 最初是整合在Solaris 中,目前已移植到其它系統中,如LinuxSunOSHP-UX 9.0 等。

    多年以來,UNIX 環境下的身份驗證機制一直就是簡單地把使用者同他們在/etc/passwd 檔案裡的配置項關聯起來而已。後來,因為需要有更強的安全性,而且要支援更大範圍的驗證機制(像智慧卡),所以對靈活性更好的驗證方法的需求也就應運而生。某些PAM LDAP 模組對全域性的驗證目錄集中執行驗證。

Linux-PAM

所有完善的Linux 發行版本都帶Linux-PAM,它和Sun 公司PAM 標準目前的實現沒有關係。PAM的概念很簡單:需要驗證功能的程式只需要知道有一個模組可以用來替它們執行驗證功能就行了。PAM 的設定保證了模組可以隨時新增、刪除和重新配置—對於編譯工具程式的時候就被連結進來(甚至原本就有)

的模組來說,沒必要這樣做。這種結構的效果就是,PAM 已經成為系統管理員極其強大的工具。

PAM 模組是透過/etc/pam.conf 檔案或者/etc/pam.d 目錄下的檔案來進行配置的。當目錄/etc/pam.d/下存在檔案時,Linux-PAM 會忽略/etc/pam.conf 檔案。

先看下pam.conf 檔案的格式:

service_name module_type control_flag module_path arguments

Service_name 服務/程式名

指定服務/應用程式的名稱(預設值為 OTHER)。

Module_type 模組型別為 Service_name 欄位中的服務指定模組型別,有效的型別是auth/account/session passwd

Control_flag 控制標誌將指定模組的堆疊行為。控制標誌可以是requisiterequiredsufficient 或 optional

Module_path 將指定實現模組的庫物件的路徑名稱。預設情況下,它將被設為 /lib/security

Module_options/module_args(可選欄位)將指定可以傳遞給服務模組的選項或實參。



----------------------------------------------------
kingsql衝級大奉送
hongzhuohui@kingsql.com

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28389881/viewspace-1266665/,如需轉載,請註明出處,否則將追究法律責任。

相關文章