您好,登錄后才能下訂單哦!
這篇文章主要為大家分析了如何分析Linux系統中的pam的相關知識點,內容詳細易懂,操作細節合理,具有一定參考價值。如果感興趣的話,不妨跟著跟隨小編一起來看看,下面跟著小編一起深入學習“如何分析Linux系統中的pam”的知識吧。
PAM(Pluggable Authentication Modules)即可插拔式認證模塊,它是一種高效而且靈活便利的用戶級別的認證方式,它也是當前Linux服務器普遍使用的認證方式。
當然,在不同版本的Linux統中部署PAM認證是有所不同的。
它提供了對所有服務進行認證的中央機制,適用于login,遠程登錄(telnet,rlogin,fsh,ftp,點對點協議(PPP)),su等應用程序中。
系統管理員通過PAM配置文件來制定不同應用程序的不同認證策略;應用程序開發者通過在服務程序中使用PAM API(pam_xxxx( ))來實現對認證方法的調用;而PAM服務模塊的開發者則利用PAM SPI來編寫模塊(主要是引出一些函數pam_sm_xxxx( )供PAM接口庫調用),將不同的認證機制加入到系統中;PAM接口庫(libpam)則讀取配置文件,將應用程序和相應的PAM服務模塊聯系起來。
PAM框架結構如圖所示。
PAM認證一般遵循這樣的順序:Service(服務)→PAM(配置文件)→pam_*.so。PAM認證首先要確定那一項服務,然后加載相應的PAM的配置文件(位于/etc/pam.d下),最后調用認證文件(位于/lib/security下)進行安全認證。認證原理圖如下圖所示:
用戶訪問服務器的時候,服務器的某一個服務程序把用戶的誰請求發送到PAM模塊進行認證。對于不同的服務器應用程序所對應的PAM模塊也是不同的。如果想查看某個程序是否支持PAM認證,可以用ldd命令進行查看,例如查看查看sshd是不是支持PAM模塊認證,如下圖所示:
客觀地說PAM認證還是比較復雜的,這里只簡單地介紹它包括四種常見認證類型(module type):
1、認證管理(authentication management)
接受用戶名和密碼,進而對該用戶的密碼進行認證,并負責設置用戶的一些秘密信息。
2、帳戶管理(account management)
檢查帳戶是否被允許登錄系統,帳號是否已經過期,帳號的登錄是否有時間段的限制等等。
3、密碼管理(password management)
主要是用來修改用戶的密碼。
4、會話管理(session management)
主要是提供對會話的管理和記賬(accounting)。
驗證控制類型也可以稱做Control Flags,用于PAM驗證類型的返回結果,具體有以下四種:
1、required驗證失敗時仍然繼續,但返回Fail(用戶不會知道哪里失敗)。
2、requisite驗證失敗則立即結束整個驗證過程,返回Fail。
3、sufficient驗證成功則立即返回,不再繼續,否則忽略結果并繼續。
4、optional無論驗證結果如何,均不會影響(通常用于session類型)。
PAM驗證類型返回結果如下所示:
為了方便大家理解舉兩個例子,如下圖所示:
從上面兩個圖可以看出當required失敗后續還要繼續,但最后仍是失敗。requisite驗證失敗則立即結束。而sufficient則是驗證成功則立即結束。
關于“如何分析Linux系統中的pam”就介紹到這了,更多相關內容可以搜索億速云以前的文章,希望能夠幫助大家答疑解惑,請多多支持億速云網站!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。