PAM:可插入式认证模块(可以根据自己的需要启用和关闭认证)

PAM不提供认证只是一个框架(某一个服务需要时只需调用它即可),可以调用的模块(库文件)在(同一个模块可以被不同的软件所使用(不是所有的程序都可以PAM认证的)

clip_image002

PAM提供了集中式的认证功能,可以动态配置它

系统用户账号包括:账号信息和认证信息(这两个信息是分开存储的)

名称服务是把名字解析为uid和gid

在/lib/security下有pam可用模块,在/etc/pam.d下有每个服务,每个服务中定义使用的模块

clip_image004

其中login定义了登陆时所使用的模块等信息

在每个文件中都定义了认证过程:auth 验证,account 账号信息,password ,密码session 会话

每一行定义了一个检查规则

clip_image006

语法:

clip_image008

Type:auth用于认证用户时才用到的

Account实现用户授权时才检查

Passwd用户登陆需要输入密时

Session:会话的简历

每个类型可以使用多次

Control(分为简单和复杂的,这里只介绍简单的)当同一个场景出现多次并被第一个匹配或者没有匹配到到了该如何处理

Required:必须通过检查,如果过不了可以检查后面的,如果成功则继续

Requisite:必须通过,如果过不了不会做检查了,如果成功则继续

Sufficient:如果通过了则不用检查直接通过,如果失败了则继续检查

Optional:可有可无的

Include:clip_image010读取后面文件中一auth开头的信息

Module-path:都在/lib/securety(如果 为64位系统则在/lib64/security

Modele-augument:模块所使用的参数

常用的模块:

system-auth 包含最常见的认证机制

other 定义默认认证规则,

clip_image012是模拟实现本地认证的模块,其中的选型nullok为如果密码为空则禁止登陆,shadow为用户的密码只允许root用户可见,MD5为用户的密码用MD5加密

clip_image014(该模块检查字典)可以定义密码的长度minlen最小长度 dcredit=数字 表示数字为多少位,ucredit=数字 大写字母要多少位 lcredit=小写字母 ,ocredit=数字 其他字符 ,retry=数字 最多可以试几次

clip_image016(不检查字典)其他功能与pam_cracklib.so功能一样

clip_image018用于记录某一个用户错误登录的时间和次数的

启用模块可以在var/log下生产faillog文件用faillog可以查看faillog –u 用户

clip_image020用户登录的shell是不是合法的shell(判断标准时用户登录使用的shell要出现在/etc/shells中)

clip_image022定义哪个tty可以登陆

在/etc/securetty定义可以用哪个tty登陆的

clip_image024

clip_image026非管理员账号在什么情况下不能登陆的,如果/etc/nologin这个文件存在则非管理员账号不能登陆

192.168.0.82上有ghn用户密码为ghn在192.168.0.36上以ghn的身份登陆

clip_image028

但是如果在192.168.0.82上建一个nologin的文件则不可以登陆了

clip_image030

clip_image032

clip_image034让某一个程序基于某一个特殊文件来决定是否登陆的

仅允许某一个组中的用户可以登陆(组为linux成员为ntop,ntop1,分别给两个用户一密码)还有一个ghn用户并不数以linux组

clip_image036

clip_image038

在/etc/pam.d/system-auth-ac中配置

语法:clip_image040

clip_image042file的路径是自己定义的可以随意些

clip_image044并把组写在文件中即可

clip_image046

clip_image048管理员切换到普通用户时不需要输入密码

clip_image050做资源限制的,可以限定某个用户登录后所使用的文件,该模块使用/etc/security/limits.conf来定义那些用户所使用的资源有哪些也可以在/etc/security/limits.d目录下以.conf结尾的配置文件

语法:

clip_image052

Domain为限制那些用户和组

Type:有软和硬的限制(可以超过软限制但是不能超过硬限制,如果为-则表示即限制软又限制硬)

Item:限制的项目(cpu的大小,文件数等)

clip_image054

用户也可以调整自己的软限制而不能调整自己的硬限制

用unlimits的选项:

clip_image056

举例:

禁止root用户在tty6终端登录

sed -i 's/tty6/#tty6/g' /etc/securetty

设置ghn用户登录系统后所能够打开的文件个数硬限制为200,软限制为120;

设置linux组中的用户登录系统后所能够运行的进程数的硬限制为300,软限制为200

vim /etc/security/limits.conf #在下方添加以下内容

ghn hard nofile 200

ghn soft nofile 120

%linux hard nproc 300

%linux soft nproc 200

设置用户在修改密码时所使用的密码长度最短为7位;

# vim /etc/pam.d/system-auth # 编辑第13行

在最后添加minlen=7 即

password requisite pam_cracklib.so try_first_pass retry=3 minlen=7