现在的位置: 首页 > 综合 > 正文

关于登录认证过程

2018年05月19日 ⁄ 综合 ⁄ 共 1952字 ⁄ 字号 评论关闭

最近,安装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

抱歉!评论已关闭.