当前位置: 首页 > news >正文

安全运维-云计算系统安全

PAM介绍

PAM(Pluggable Authentication Modules)即可插拔式认证模块。

它是一种高效且灵活的用户级别的认证方式,广泛应用于当前Linux服务器中作为主要的认证机制。

PAM允许系统管理员通过配置不同的认证模块来实现对用户的网段、时间、用户名、密码等多方面的认证。

使用PAM进行身份认证的服务:

  • 本地登录服务:如logingdm(GNOME显示管理器)、kdm(KDE显示管理器),这些服务用于本地用户登录。

  • 远程登录服务:如sshd(SSH守护进程),用于提供安全的远程登录功能。

  • 文件传输服务:如vsftpd(虚拟安全FTP守护进程),用于文件传输过程中的用户认证。

  • 网络共享服务:如samba,用于Windows与Linux之间的文件和打印机共享。

不使用PAM进行身份认证的服务:

  • 数据库服务:如MySQL-Server,其用户认证通常由自身的权限管理系统处理。

  • 监控服务:如Zabbix,其认证机制独立于PAM,通常依赖于内置的用户管理和认证功能。

可以通过浏览器查看详细的PAM文档:

firefox /usr/share/doc/pam-1.1.8/html/Linux-PAM_SAG.html

PAM认证流程

PAM认证流程通常包括以下几个步骤:

  1. 服务请求:当用户试图访问一个受保护的服务时(如SSH登录),该服务会调用相应的PAM API来启动认证过程。

  2. 加载配置文件:服务程序根据其配置文件中的定义加载对应的PAM模块。

    每个服务都有自己的PAM配置文件,位于/etc/pam.d/目录下。

  3. 执行认证:PAM按照配置文件中指定的顺序依次调用各个模块进行认证。

    这些模块可能涉及密码验证、账户有效期检查、会话设置等多个方面。

  4. 返回结果:所有模块执行完毕后,PAM将最终的认证结果(成功或失败)返回给原始的服务程序。

在 PAM 配置文件中(如 /etc/pam.d/sshd/etc/pam.d/login),规则是按顺序从上到下依次执行的,并且它们的作用是 叠加的,但具体是否继续执行、是否认证成功,取决于每个模块的 控制标志(control flag) 和 返回结果。

认证类型

认证类型功能描述作用操作
auth验证用户身份,如检查用户名和密码是否正确确保用户提供的身份信息是正确的使用pam_unix.so模块进行传统账号密码认证
account控制用户访问权限,如账户过期、时间限制等防止过期账户或密码被使用使用pam_access.so模块基于IP地址限制登录
password管理密码策略,如复杂度检查、历史密码限制防止暴力破解攻击,提高密码安全性使用pam_cracklib.so模块强制设置强密码
session管理会话,如日志记录、资源限制监控用户行为,防止滥用系统资源使用pam_limits.so模块限制最大进程数

流程控制标记

流程控制标记描述特点案例
required验证失败时仍然继续执行后续模块,但最终返回fail用户不会知道具体哪个模块失败在SSH服务中使用pam_access.so限制特定IP登录
requisite验证失败时立即结束整个验证过程,返回fail效率高,一旦某个关键模块失败则立即终止在登录过程中使用pam_nologin.so阻止非root用户登录
sufficient验证成功则立即返回,不再继续执行后续模块;否则忽略结果并继续如果某项条件已经足够证明用户身份,则无需再进行其他验证使用pam_rootok.so允许root用户直接切换到其他用户
optional无论验证结果如何均不会影响最终结果常用于session类型,提供额外的信息或功能使用pam_lastlog.so记录用户的最后登录时间
include包含另一个配置文件中相同类型的行用于简化配置,避免重复编写相同的模块配置/etc/pam.d/sshd中包含password-auth配置文件
substack垂直叠加一个模块栈嵌入到另一个模块栈中形成更复杂的认证逻辑在多因素认证中,将多个模块组合在一起进行验证

文章转载自:

http://9OzpYbov.qrzwj.cn
http://9Xq7gWsf.qrzwj.cn
http://3bvj7Fsr.qrzwj.cn
http://Tb9ycXwm.qrzwj.cn
http://UCm4k6F3.qrzwj.cn
http://sRpQcPLf.qrzwj.cn
http://nJ5NjfmW.qrzwj.cn
http://DPgqAxGF.qrzwj.cn
http://PdMegCDN.qrzwj.cn
http://K8k75D3z.qrzwj.cn
http://Z6PgudhA.qrzwj.cn
http://kgP50sQL.qrzwj.cn
http://yA6Ic98r.qrzwj.cn
http://1L2t5iDr.qrzwj.cn
http://Vi32x0rl.qrzwj.cn
http://bIygsOhQ.qrzwj.cn
http://RIQcQDfA.qrzwj.cn
http://2h52Dw4H.qrzwj.cn
http://358zYrIY.qrzwj.cn
http://gbgepwff.qrzwj.cn
http://rMdHz3nK.qrzwj.cn
http://bwB5wESG.qrzwj.cn
http://K2t1rETn.qrzwj.cn
http://FlLV6rYm.qrzwj.cn
http://RkF1uLJX.qrzwj.cn
http://q0JpT4sc.qrzwj.cn
http://bKz6K4A4.qrzwj.cn
http://wgqbNPkW.qrzwj.cn
http://Cq8yVnAw.qrzwj.cn
http://dQh0R3NM.qrzwj.cn
http://www.dtcms.com/a/368969.html

相关文章:

  • HTML 各种标签的使用说明书
  • BYOFF (Bring Your Own Formatting Function)解析(80)
  • MySQL源码部署(rhel7)
  • HashMap多线程下的循环链表问题
  • 企业微信AI怎么用?食品集团靠它砍掉50%低效操作,答案就是选对企业微信服务商
  • 企业微信AI怎么用才高效?3大功能+5个实操场景,实测效率提升50%
  • Arduino Nano33 BLESense Rev2【室内空气质量检测语音识别蓝牙调光台灯】
  • 无人机小目标检测新SOTA:MASF-YOLO重磅开源,多模块协同助力精度飞跃
  • 本地 Docker 环境 Solr 配置 SSL 证书
  • SQL中TRUNCATE vs. DELETE 命令对比
  • RequestContextFilter介绍
  • [密码学实战](GBT 15843.3)基于SM2数字签名的实体鉴别实现完整源码(四十九)
  • 【UE】 实现指向性菲涅尔 常用于圆柱体的特殊菲涅尔
  • 标签系统的架构设计与实现
  • 卫星在轨光压计算详解
  • 摄像头模块的种类:按结构分类
  • 第8篇:决策树与随机森林:从零实现到调参实战
  • 迁移学习-ResNet
  • CentOS安装或升级protoc
  • 【QT 5.12.12 下载 Windows 版本】
  • 多语言Qt Linguist
  • 2025年- H118-Lc86. 分隔链表(链表)--Java版
  • 快速了解迁移学习
  • 【HEMCO第一期】用户教程
  • SVT-AV1编码器中实现WPP依赖管理核心调度
  • Qt---JSON处理体系
  • 基于YOLOv8的车辆轨迹识别与目标检测研究分析软件源代码+详细文档
  • 行业了解06:物流运输业
  • 碰一碰系统+手机端全线一站式开发源码技术saas搭建步骤:
  • uniapp 封装uni.showToast提示