[转帖]即插即用安全验证模块-使用pam模块

即插即用,安全,验证,模块,使用,pam · 浏览次数 : 0

小编点评

**可插入式验证模块(PAM)** **介绍** 可插入式验证模块(PAM)是一种安全机制,允许应用程序对系统进行授权检查。PAM基于应用程序的pam配置文件进行检测,并通过libc在NSS中检查。 **配置** 每个模块执行一个通过或失败的测试,在/etc/security/中的文件会影响测试结果。例如,`required`测试必须通过测试才能继续进行测试,而`sufficient`测试可以在失败后继续进行。 **测试** 每个模块根据测试结果返回一个状态,例如“success”或“fail”。服务文件根据所有测试结果决定如何使用模块。 **模块** 每个模块执行一个通过或失败的测试,并返回一个状态。模块支持以下测试: * 认证用户是否为此用户 * 用于给账户授权 * 控制密码的修改 * 打开,断开并记录会话 **示例** `pam.conf`文件控制了如何执行测试。例如,`auth`模块只执行`required`测试,而`session`模块只执行`sufficient`测试。 **使用** 1. 将`pam.tar`文件打包到用户目录下。 2. 添加`pam.tar`到应用程序的`/etc/pam.d/`目录中。 3. 修改`pam.conf`文件以符合应用程序需求。 4. 启动应用程序。 **注意** * PAM模块只能与应用程序共享使用。 * 每个应用程序只能安装一个PAM模块。 * 使用PAM模块需要在应用程序启动之前设置环境变量`PAM_CONFIG`。

正文

https://www.cnblogs.com/hongjinping/p/13174272.html

 

可插入式验证模块(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模块相似的内容:

[转帖]即插即用安全验证模块-使用pam模块

https://www.cnblogs.com/hongjinping/p/13174272.html 可插入式验证模块(PAM) 。可插入式验证木块 。应用程序调用libpam函数来验证和授权用户 。libpam基于应用程序的PAM配置文件做检测 。可以通过libc在NSS中检查 。共享的,动态可

[转帖]

Linux ubuntu20.04 网络配置(图文教程) 因为我是刚装好的最小系统,所以很多东西都没有,在开始配置之前需要做下准备 环境准备 系统:ubuntu20.04网卡:双网卡 网卡一:供连接互联网使用网卡二:供连接内网使用(看情况,如果一张网卡足够,没必要做第二张网卡) 工具: net-to

[转帖]

https://cloud.tencent.com/developer/article/2168105?areaSource=104001.13&traceId=zcVNsKTUApF9rNJSkcCbB 前言 Redis作为高性能的内存数据库,在大数据量的情况下也会遇到性能瓶颈,日常开发中只有时刻

[转帖]ISV 、OSV、 SIG 概念

ISV 、OSV、 SIG 概念 2022-10-14 12:29530原创大杂烩 本文链接:https://www.cndba.cn/dave/article/108699 1. ISV: Independent Software Vendors “独立软件开发商”,特指专门从事软件的开发、生产、

[转帖]Redis 7 参数 修改 说明

2022-06-16 14:491800原创Redis 本文链接:https://www.cndba.cn/dave/article/108066 在之前的博客我们介绍了Redis 7 的安装和配置,如下: Linux 7.8 平台 Redis 7 安装并配置开机自启动 操作手册https://ww

[转帖]HTTPS中间人攻击原理

https://www.zhihu.com/people/bei-ji-85/posts 背景 前一段时间,公司北京地区上线了一个HTTPS防火墙,用来监听HTTPS流量。防火墙上线之前,邮件通知给管理层,我从我老大那里听说这个事情的时候,说这个有风险,然后意外地发现,很多人原来都不知道HTTPS防

[转帖]关于字节序(大小端)的一点想法

https://www.zhihu.com/people/bei-ji-85/posts 今天在一个技术群里有人问起来了,当时有一些讨论(不完全都是我个人的观点),整理一下: 为什么网络字节序(多数情况下)是大端? 早年设备的缓存很小,先接收高字节能快速的判断报文信息:包长度(需要准备多大缓存)、地

[转帖]awk提取某一行某一列的数据

https://www.jianshu.com/p/dbcb7fe2da56 1、提取文件中第1列数据 awk '{print $1}' filename > out.txt 2、提取前2列的文件 awk `{print $1,$2}' filename > out.txt 3、打印完第一列,然后打

[转帖]awk 中 FS的用法

https://www.cnblogs.com/rohens-hbg/p/5510890.html 在openwrt文件 ar71xx.sh中 查询设备类型时,有这么一句, machine=$(awk 'BEGIN{FS="[ \t]+:[ \t]"} /machine/ {print $2}' /

[转帖]Windows Server 2022 简体中文版、英文版下载 (updated Oct 2022)

https://sysin.org/blog/windows-server-2022/ Windows Server 2022 正式版,2022 年 10 月更新,VLSC Posted by sysin on 2022-10-27 Estimated Reading Time 8 Minutes