PAM:可插入式认证模块(可以根据自己的需要启用和关闭认证)
PAM不提供认证只是一个框架(某一个服务需要时只需调用它即可),可以调用的模块(库文件)在(同一个模块可以被不同的软件所使用(不是所有的程序都可以PAM认证的)
PAM提供了集中式的认证功能,可以动态配置它
系统用户账号包括:账号信息和认证信息(这两个信息是分开存储的)
名称服务是把名字解析为uid和gid
在/lib/security下有pam可用模块,在/etc/pam.d下有每个服务,每个服务中定义使用的模块
其中login定义了登陆时所使用的模块等信息
在每个文件中都定义了认证过程:auth 验证,account 账号信息,password ,密码session 会话
每一行定义了一个检查规则
语法:
Type:auth用于认证用户时才用到的
Account实现用户授权时才检查
Passwd用户登陆需要输入密时
Session:会话的简历
每个类型可以使用多次
Control(分为简单和复杂的,这里只介绍简单的)当同一个场景出现多次并被第一个匹配或者没有匹配到到了该如何处理
Required:必须通过检查,如果过不了可以检查后面的,如果成功则继续
Requisite:必须通过,如果过不了不会做检查了,如果成功则继续
Sufficient:如果通过了则不用检查直接通过,如果失败了则继续检查
Optional:可有可无的
Module-path:都在/lib/securety(如果 为64位系统则在/lib64/security
Modele-augument:模块所使用的参数
常用的模块:
system-auth 包含最常见的认证机制
other 定义默认认证规则,
是模拟实现本地认证的模块,其中的选型nullok为如果密码为空则禁止登陆,shadow为用户的密码只允许root用户可见,MD5为用户的密码用MD5加密
(该模块检查字典)可以定义密码的长度minlen最小长度 dcredit=数字 表示数字为多少位,ucredit=数字 大写字母要多少位 lcredit=小写字母 ,ocredit=数字 其他字符 ,retry=数字 最多可以试几次
(不检查字典)其他功能与pam_cracklib.so功能一样
启用模块可以在var/log下生产faillog文件用faillog可以查看faillog –u 用户
用户登录的shell是不是合法的shell(判断标准时用户登录使用的shell要出现在/etc/shells中)
在/etc/securetty定义可以用哪个tty登陆的
非管理员账号在什么情况下不能登陆的,如果/etc/nologin这个文件存在则非管理员账号不能登陆
192.168.0.82上有ghn用户密码为ghn在192.168.0.36上以ghn的身份登陆
但是如果在192.168.0.82上建一个nologin的文件则不可以登陆了
仅允许某一个组中的用户可以登陆(组为linux成员为ntop,ntop1,分别给两个用户一密码)还有一个ghn用户并不数以linux组
在/etc/pam.d/system-auth-ac中配置
做资源限制的,可以限定某个用户登录后所使用的文件,该模块使用/etc/security/limits.conf来定义那些用户所使用的资源有哪些也可以在/etc/security/limits.d目录下以.conf结尾的配置文件
语法:
Domain为限制那些用户和组
Type:有软和硬的限制(可以超过软限制但是不能超过硬限制,如果为-则表示即限制软又限制硬)
Item:限制的项目(cpu的大小,文件数等)
用户也可以调整自己的软限制而不能调整自己的硬限制
用unlimits的选项:
举例:
禁止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
转载于:https://blog.51cto.com/ghnhl/524292