關於Linux登錄認證過程

发布时间:2018-08-03 15:27:52 编辑:Admin 手机版

 最近,安裝pam和登錄過程,一些經驗總結如下:


Linux系統登錄過程簡述如下:


       read /etc/inittab                    get username in tty             get password 
init ---------------------> mingetty ---------------------------> login ------------------
                                            /etc/pam.d
-----> call PAM modules -------------> act/rej


Linux PAM 是一個通用認證機制。為庫的形式。

配置文件放在/etc/pam.conf或/etc/pam.d/ . 配置文件可以使用include指令包含其它配置文件。當支持Linux-PAM的客戶程序調用PAM api. PAM首先根據客戶程序的類別,檢查配置文件中的PAM在此類別中的堆疊模塊數以及相應的堆疊模塊名。依次調用這些模塊進行認證檢查。對於每一種模塊的所需的配置文件放在/etc/security/目錄中。


一般包括4種類別


auth                    驗證類,用於登錄驗證
account              帳號類,用於非驗證的帳號管理,如限制/允許訪問基於,時間,允許的最大用戶數,用戶名
password         口令維護類,用於修改口令
session            會話類,用於用戶在使用某項服務前或後必須先做某件事的檢查。

模塊後的域,一般是該模塊的參數。

所以,要保證login,passwd正常工作必須保證PAM模塊被正確安裝和配置(配置文件必須存在),一般的安裝目錄為:
PAM全局文件:/etc/pam.conf   或 /etc/pam.d/* ; pam.d目錄的存在會引起pam.conf被忽略。
PAM模塊:/lib/security
PAM模塊配置文件:/etc/security

系統登錄(auth)修改(password)常用的模塊是:
pam_unix :提供傳統unix登錄密碼檢查(從/etc/passwd和,或/etc/shadow)。
pam_cracklib:提供基於字典的密碼復雜度和安全性檢查。一般作為pam_unix的first pass(及上層堆疊模塊)進行檢查。pam_cracklib.so由PAM包提供。但它需要cracklib庫(libcrack.so)。cracklib的字典文件一般位於:/usr/lib/cracklib_dict.*文件中,或/usr/share/cracklib/pw_dict.*文件中

典型的PAM配置文件如下:

#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth        required      pam_env.so
auth        sufficient    pam_unix.so nullok try_first_pass
auth        requisite     pam_succeed_if.so uid >= 500 quiet
auth        required      pam_deny.so

account     required      pam_unix.so
account     sufficient    pam_localuser.so
account     sufficient    pam_succeed_if.so uid < 500 quiet
account     required      pam_permit.so

password    requisite     pam_cracklib.so try_first_pass retry=3
password    sufficient    pam_unix.so md5 shadow nullok try_first_pass use_authtok
password    required      pam_deny.so

session     optional      pam_keyinit.so revoke
session     required      pam_limits.so
session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session     required      pam_unix.so
本文已影响0
+1
0