即插即用安全验证模块-使用pam模块
Posted hongjinping
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了即插即用安全验证模块-使用pam模块相关的知识,希望对你有一定的参考价值。
可插入式验证模块(PAM)
。可插入式验证木块 。应用程序调用libpam函数来验证和授权用户 。libpam基于应用程序的PAM配置文件做检测 。可以通过libc在NSS中检查 。共享的,动态可配置代码 。文档:/usr/share/doc/pam-<version>/
#man -k pam_ //打印linux可供使用的pam模块
PAM操作
。/lib/security/PAM模块 。每个模块执行一个通过(pass)或失败(fail)测试 。在/etc/security/中的文件会影响到一些模块如何执行他们的测试 。/etc/pam.d/PAM模块 。服务文件决定了怎样/何时模块被使用在特定的程序上
/etc/pam.d/文件:测试
。测试分成四组:
。auth 认证用户是否为此用户
。account 用于给账户授权
。password 控制密码的修改
。session 打开,断开并记录会话
。按需调用每个分组并提供各自的结果给服务。
/etc/pam.d/文件:控制值 。控制值决定了如何测试每个分组返回总的结果 。required 必须通过测试。如果失败了仍然继续后续测试 。requisite 雷同于required,除了在失败后立即停止测试 。sufficient 如果通过测试,立即返回成功状态(比如满足第一个条件通过,直接返回成功);而如果失败,忽略测试结果继续监测 。optional 测试是否通过都无关紧要(基本用户session环节) 。include 从所包含而调用到配置文件中放回测试控制总结果 //可能这个配置文件中包含了其他配置文件。需要两个方面验证。
不建议编写系统级别验证规则,就是system-auth,尽量单独编写对应应用程序的文件。
#man pam.conf
实例:/etc/pam.d/login文件
PAM排错
。检查系统日志 。/var/log/messages 。/var/log/secure 。PAM错误会导致root被锁 。在做测试时保持一个root的shell可用 。单用户模式绕过PAM 。使用救援碟引导系统
#tar cvf ~/pam.tar /etc/pam.d/ //将/etc/pam.d下面文件打包到家目录下,并命名为pam.tar
linux操作系统与安全相关的日志记录在/var/log/secure中
可以#tail -f secure 动态刷新secure日志查看登陆输入错误密码的提示。
#man -k pam_ | less //查看当前系统下安装的pam模块
system_auth文件
。system-auth被广为使用
。通过include而被调用,它不是一个模块(比如pam_stack.so)
。包含标准认证测试
。在系统中被使用应用程序共享使用
。简单的,一致的标准系统的验证方式
pam_unix.so
。基于NSS的验证
。auth 获取从NSS获得Hash后的密码
比与Hash后输入的密码相比较
。account 检查密码的失效期
。password 处理密码的改变修改本地文件或NIS
。session 记录登陆或退出日志
网络验证 。集中密码管理 。pam_krb5.so(Kerberos V票据) 。pam_ldap.so(LDAP binds) 。pam_smb.auth.so(老的SMB认证) 。pam_winbind.so(通过winbindd的SMB) 。一些服务使用NSS/pam_unix.so 。NIS,Hesiod,一些LDAP配置
auth模块
。pam_securetty.so 如果root登陆了在/etc/securetty没有列举的终端结果失败
。pam_nologin.so 如果非root用户存在在/etc/nologin中结果失败
。pam_listfile.so 按照一个列表文件检查认证特性
。列出哪些账户被允许/拒绝
密码安全
。pam_unix.so 使用MD5 hash密码
。确保密码Hash格式不容易破解
。pam_unix.so shadow密码
。让hash的密码只对root可见
。老化密码
。也有一些其他模块支持密码老化机制
Password策略
。密码历史记录
。pam_unix.so 接remember=N参数
。密码长度
。pam_cracklib.so
。pam_passwdqc.so
。监控失败的登陆
。pam_tally.so
Session模块
。pam_limits.so 对资源的强制限制
。使用/etc/security/limits.conf
。pam_console.so 为控制台设置本地设备权限
。同样可以用在auth模块中
。pam_selinux.so 用来设置SELinux上下文属性
。pam_mkhomedir.so 如果主目录不存在将创建一个
以上是关于即插即用安全验证模块-使用pam模块的主要内容,如果未能解决你的问题,请参考以下文章
Linux To Go:制作随身携带、即插即用的Linux系统
改进YOLOv5系列:10.最新HorNet结合YOLO应用首发! | ECCV2022出品,多种搭配,即插即用 | Backbone主干递归门控卷积的高效高阶空间交互
改进YOLOv7系列:最新结合即插即用CA(Coordinate attention) 注意力机制(适用于YOLOv5),CVPR 2021 顶会助力分类检测涨点!