PAM语法

PAM配置实战指南:从语法解析到SSH加固与故障排查 在Linux系统安全与身份认证领域,可插拔认证模块(PAM)是实现灵活、集中式认证管理的核心技术。其工作原理是通过模块化设计,将认证过程解构为身份验证(auth)、账户管理(account)、密码更新(password)和会话管理(session)四个独立阶段,允许系统管理员通过配置文件动态组合不同模块。这项技术的核心价值在于为系统登录、服务访问(如SSH、sudo)提供了统一且可定制的安全策略层,极大地增强了访问控制能力。典型的应用场景包括防止暴力破解的登录失败锁定、基于资源的会话限制(如ulimit)、 阅读详情
 Pluggable Authentication Modules for Linux 可插拨认证模块
当用户访问服务器,服务程序将请求发送到PAM模块,PAM模块根据服务名称在/etc/pam.d目录下选择一个对应的服务文件,最后根据服务文件的内容选择具体的PAM模块进行处理。

通过ldd查看服务程序在编译时是否使用了libpam.so,决定服务程序是否支持PAM认证。
具体的pam文件放在/lib/security目录下,服务文件放在/etc/pam.d目录下

PAM服务文件格式
eg:
auth required pam_security.so
auth required pam_stack.so service=system-auth
service表示调用子服务文件

Module-type:
auth 检查用户和密码,分配权限
account 检查账号是否过期,是否有权登录
session 从用户登录成功到退出的会话控制
password 控制用户改密码的过程
control-flag:
required 要求矣须通过,否则结束退出
requisite 如果不通过还可继续向下认证,后面有一通过即可。
sufficient 通过则不需要向下认证
optional 可选项

常用PAM服务文件
login -------/etc/pam.d/login
ipop3d -------/etc/pam.d/pop
vsftpd -------/etc/pam.d/ftp(编译安装)或/etc/pam.d/vsftpd(rpm安装)
sshd -------/etc/pam.d/sshd
su -------/etc/pam.d/su
imap -------/etc/pam.d/imap

/lib/security目录下,各个pam模块的作用,可参考/usr/share/doc/pam-0.99.3.0下的帮助文件。
相同类型Module-type组成一个堆栈。

常用PAM模块
pam_access.so 控制访问者地址与账号名称
pam_listfile.so 控制访问者的账号名称或登录位置
pam_limits.so 控制为用户分配的资源
pam_rootok.so 对管理员(uid=0)无条件允许通过
pam_userdb.so 设定独立用户账号数据库认证

pam_access.so模块的使用―――控制访问sshd服务的主机和用户
1.修改需使用这个模块的服务文件,如sshd: /etc/pam.d/sshd添加
account required pam_access.so
2.修改模块的配置文件
/etc/security/access.conf
- : redhat : ALL EXCEPT 192.168.0. (格式)
3.测试
ssh redhat@192.168.0.22
ssh redhat@127.0.0.1
pam_access.so根据主机、IP、用户、拒绝或允许访问。

pam_listfile.so的应用 (比pam_access.so更加详细控制)
1.首先查看它的帮助文件,看它的具体格式,参数如何
#less /usr/share/doc/pam-0.99.3.0/txts/README.pam_listfile
item user,tty,group 说明列表文件中的内容
sense allow,deny 拒绝或允许文件中的用户
file 指定一个文件,内容根据item项来添加
onerr succeed,fail 当模块本身产生错误时,返回的值,如无法打开file指定的文件,一般设为succeed
2.将模块应用到sshd服务
将上面添加的pam_access.so清掉,然后在/etc/pam.d/sshd中添加(第一行)
auth required pam_listfile.so item=user sense=deny file=/etc/denyuser onerr=succeed
注意添加的位置顺序,否则看不到效果
3.创建编缉列表文件
#echo “redhat” >/etc/denyuser
4.测试
#ssh -l redhat 192.168.0.22 失败
#ssh -l chinaitlab 192.168.0.22 成功

#w 显示已登录的用户及最近的一次操作

pam_limits.so的应用
1.查看帮助文件,确认它的配置文件位置,参数模式
#less /usr/share/doc/pam-0.99.3.0/txt/README.pam_limits
<domain> <type> <item> <value>
<domain> 用户名或组名
<type> soft软限制
hard硬限制(不能达到的)
<item> 限制的内容,fsize文件大小,nproc最大进程数,maxlogins用户登录次数
2.将模块应用到sshd服务,修改服务文件
#vi /etc/pam.d/sshd 添加:
session required pam_limits.so
session 控制用户进程的登录次数,文件大小,通过控制用户的会话进程来限制用户使用的资源
3.编缉pam_limits.so的配置文件/etc/security/limits.conf
redhat hard maxlogins 2
限制redhat登录到sshd服务的次数,不能达到2。
4.测试
#ssh -l redhat 192.168.0.22 第1个
#ssh -l redhat 192.168.0.22 第2个
表示同时最多可以有1个redhat用户登录
PAM:2 配置文件 PAM验证成功的必要条件,也就是说所有被标记为required的模块,都需要被依次调用,并且全都返回成功的情况下,本次PAM验证才能返回成功。PAM配置文件通常保存在/etc/pam.d/目录下,当应用程序进行认证时,会选择对应的PAM配置文件,而PAM配置文件又对PAM服务具体使用哪些模块(动态链接库)进行了描述,从而动态的加载PAM模块完成认证。每一个PAM服务会占一行,完成PAM调用时,会依次调用对应PAM服务的每个服务模块,依据每个PAM服务模块的返回值,以及控制标记来决定本次PAM调用的结果。 阅读详情

相关推荐

如何制作Mike21溢油模型围油栏文件

这段时间群友在做海洋环评的做了一个MIKE21的溢油模型,溢油模型其实也是ECOLAB模块的应用,而在海上发生溢油事件的时候,为防止溢油对海洋生态的破坏,经常使用的一种手段就是使用围油栏技术将溢油控制在一定范围并进行处理。今天小编就给大家说说在MIKE21里怎么实现围油栏文件的制作

zhuzhujiayoua的博客 1329

Linux常用的可插拔认证模块(PAM)pam_limits.so、pam_rootok.so和pam_userdb.so的详解

pam_limits.so模块:pam_limits.so模块的主要功能是限制用户会话过程中对各种系统资源的使用情况。缺省情况下该模块的配置文件是/etc/security/limits.conf。而该配置文件的基本格式实际上是由4个字段组成的表,其中具体限制的内容包括:Domaintypeitem...

weixin_33845477的博客 4792

别再搞混了!MATLAB通信仿真中EbN0转SNR的保姆级公式推导与避坑指南

本文深入解析MATLAB通信仿真中EbN0与SNR转换的核心公式,揭示数字仿真与理论系统的关键差异。通过真实案例展示错误参数设置导致的隐蔽问题,并提供完整的参数自查清单和正确实现代码,帮助工程师和学生避免常见错误,确保仿真结果准确可靠。

weixin_28746223的博客 348

PAM配置文件解析(转载)

Pluggable Authentication Modules for Linux 可插拨认证模块 当用户访问服务器,服务程序将请求发送到PAM模块,PAM模块根据服务名称在/etc/pam.d目录下选择一个对应的服务文件,最后根据服务文件的内容选择具体的PAM模块进行处理。 通过ldd查看服务程序在编译时是否使用了libpam.so,决定服务程序是否支持PAM认...

weixin_34281477的博客 1535

大模型技术驱动智慧矿山数字化转型

多模态大模型作为AI领域的前沿技术,通过融合视觉、传感器等多源数据,构建了强大的环境理解与决策能力。其核心价值在于打破数据孤岛,实现实时分析与智能响应,特别适用于工业场景中的复杂系统优化。在智慧矿山建设中,该技术通过数字孪生、设备自诊断和智能调度等模块,显著提升了安全生产效率和资源利用率。典型应用包括基于强化学习的采掘路径规划、多层级灾害预警体系构建,以及可自我更新的矿山知识图谱系统,这些创新正在推动传统矿业向数字化、智能化方向转型。

weixin_29061531的博客 222

手把手教你用Simulink搭建交流异步电机矢量控制模型(附完整仿真文件)

本文提供了一份详细的Simulink仿真指南,手把手教你从零开始搭建交流异步电机矢量控制模型。内容涵盖主电路搭建、坐标变换实现、双闭环PI调节器设计、转子磁链观测器调试等核心步骤,并附有完整的仿真文件,帮助读者跨越理论到实践的鸿沟,掌握高性能电机控制系统的建模与仿真技能。

pz890123的博客 665

cenos7升级ssh至9.3后,可能碰到的问题及处理方式

1.确保sshd_config如下配置已开启2.开启UsePAM yes3.保存后退出,重启服务。

qq_43618249的博客 1670

linux pam limits.so,Linux 无法本地登录解决方法 报错/lib/security/pam_limits.so

前一段时间,因工作需要在物理机上装了一个Centos6.5,但是,用了一段时间,发现再登录时,无论如何也登不进去了,并且也不提示用户名或者密码错误。我一度以为是在profile以及.bashrc或者.bash_profile里设置了logout命令,于是乎进入单用户模式,各种查看,也没有发现logout的命令。于是,盯着屏幕瞅了一会儿,发现输入正确的用户名和密码以后,会闪一下,但是,特别快,不多瞅...

weixin_31360095的博客 1881

微信中调起支付宝支付

微信中调用支付宝支付,首先我们知道微信是不能直接调用支付宝的,所以我们需要使用一个中间页提示用户在浏览器中打开,然后进行网页支付或打开app支付。以下为详细唤起支付宝的步骤、业务代码以及相关页面图。 如有问题欢迎评论留言,看到定回复哦^_^\(^o^)/~ 一、微信中唤起支付宝,有几个步骤: 1、中间页引导用户在浏览器中打开去唤起支付宝。 2、浏览器中打开支付宝或app中打开支付宝。 3...

han_calligrapher的博客 2万+

微信小程序 - 详细实现打开跳转第三方 H5 网页链接,在微信小程序内直接跳转打开第三方网站链接详细教程(支持跳转公众号文章等,直接复制代码即可)

小程序跳转h5,小程序-Taro小程序中打开h5页面链接,...小程序跳转h5链接(web-view)_微信小程序,小程序如何跳转h5页面,小程序跳转到第三方H5网页,微信小程序跳转第三方H5的方法,小程序-实现怎么跳转打开H5网页链接(或跳转至公众号文章,打开第三方网站,放校验文件,怎么配置业务域名,校验文件验证域名,把校验文件放到对面网站,别人的服务器也打不开没权限怎么放呢,勾选不校验合法域名,txt,打不开别人的网页怎么办,真机调试打不开,无法跳转,有什么其他办法不放校验文件吗,后台配置,怎么

🏆 前端领域优质创作者 3万+

pam语法

Pluggable Authentication Modules for Linux 可插拨认证模块  当用户访问服务器,服务程序将请求发送到PAM模块,PAM模块根据服务名称在/etc/pam.d目录下选择一个对应的服务文件,最后根据服务文件的内容选择具体的PAM模块进行处理。  通过ldd查看服务程序在编译时是否使用了libpam.so,决定服务程序是否支持PAM认证。  具体的pa

道阻且长,行则将至 1195

第10集:AIOps 平台架构设计!画出面试官最想看的系统全景图

本文介绍了如何将AIOps平台的六大功能模块整合为四层架构设计,并生成专业系统全景图。文章首先指出面试中架构设计能力的重要性,强调一张清晰的架构图能直观展现全局观。随后指导读者检查项目结构,准备绘图环境。核心部分详细拆解了四层架构:数据采集层(Prometheus、ELK等)、AI分析层(巡检、告警、预测等)、决策执行层(工作流引擎、自愈Agent)和展示交互层(API、控制台)。通过Python代码自动生成模块依赖关系图,并提供了面试讲解技巧。全文旨在帮助开发者在面试中系统性地展示项目架构设计能力。

qq_2937655951的博客 92

linux pam配置文件,Linux-PAM 1.1.2 中文文档 - 4.1. 配置文件语法 | Docs4dev

/etc/pam.conf配置文件的语法如下。该文件由规则列表组成,每个规则通常放在一行中,但可以通过转义的行尾\ '进行扩展。Comments 以“#”标记开头,并扩展到下一行。每个规则的格式是用空格分隔的令牌集合,前三个不区分大小写:服务类型控制模块-路径模块参数/etc/pam.d/目录中包含的文件的语法相同,除了没有任何* service 字段。在这种情况下, service *是/etc...

weixin_32493245的博客 347

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

13.5.3 【Linux】PAM 模块设置语法

account account (帐号)则大部分是在进行 authorization (授权),这种类别则主要在检验使用者是否具有正确的使用权限,举例来说,当你使用一个过期的密码来登陆时,当然就无法正确的登陆了。

明确的爱,真诚的喜欢,直接的厌恶,站在太阳底下的坦荡,被坚定的选择。 2288

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Linux-PAM认证模块

当pam_unix验证模块与auth验证类型一起使用时,此模块可以使用的选项有debug、audit、use_first_pass、 try_first_pass、nullok和nodelay,主要功能是验证用户密码的有效性,在缺省情况下(即不带任何参数时),该模块的主要功能是 禁止密码为空的用户提供服务;在/etc/pam.d/下的文件中,与服务名称相对应的文件,为该服务的pam验证文件,例如服务为sshd,则在/etc/pam.d下存在 sshd这个文件,里面包含sshd验证规则。

qq_55914897的博客 962

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Linux高级安全认证Linux-PAM的配置

导读:PAM机制是一个非常成熟的安全认证机制,可以为Linux多种应用提供安全、可靠的认证服务。本文将对PAM机制的原理、配置进行详细介绍。 关键词:Linux-PAM配置 PAM机制原理 嵌入式认证模块 配置语法  Linux系统是一个多用户、多进程的操作系统,并且,它提供了众多的系统和网络服务给用户使用。因此,从应用角度来说,它不可避免地需要对大量的应用及其用户进行安全认证,只

1万+

PAM详解

最近接触PAM比较多,而中文版的文档过于老久,所以专门下载了英文版的指南,边学习边翻译。 由于水平有限,如有错误请及时指正。 1 简介 Linux-PAM(Pluggable Authentication Modules for Linux.基于Linux的插入式验证模块)是一组共享库,使用这些模块,系统管理者可以自由选择应用程序使用的验证机制。也就是说,勿需重新编译应用程序就可以切换应用程

drefong的专栏 6380

Ubuntu 12.04 PAM认证配置实战:从原理到安全加固

PAM(Pluggable Authentication Modules)是Linux系统实现身份认证的核心框架,其本质是一套模块化、可编程的认证控制机制。它通过type(auth/account/password/session)、control_flag(required/requisite/sufficient等)与动态模块(如pam_unix.so、pam_faildelay.so)协同工作,决定用户能否登录、何时被锁定、密码是否合规。在Ubuntu 12.04这一经典LTS版本中,PAM采用纯文本

weixin_29722783的博客 328

linux pam mysql,Linux-PAM & PAM-MySQL的总结

1、理论知识1.1、PAM模块1.1.1、PAM的介绍Pluggable Authentication Modules简称PAM,是一个微缩的可插入认证模块(PAM is an acronym for Pluggable Authentication Modules)1.1.2、PAM的结构DSC0000.png (71.59 KB, 下载次数: 5)2018-9-29 08:43 上传1)模块层...

weixin_35881620的博客 323

linux pam 解锁_浅谈linux pam体系结构

作者:Sky yakexi009@gmail.com1.PAM工作流程2.PAM配置文件语法module-type control-flag module_path optional在/etc/pam.d/下的文件中,与服务名称相对应的文件,为该服务的pam验证文件,例如服务为sshd,则在/etc/pam.d下存在sshd这个文件,里面包含sshd验证规则。其中有个一特殊的文件为oth...

weixin_35323111的博客 783

学习笔记-PAM

PAM 关于PAM PAM 基础知识见 认证 安装 PAM CentOS、Fedora、EulerOS 系统默认安装了 PAM 并默认启动。 apt-get install libpam-cracklib 判断程序是否使用了 PAM ldd /usr/bin/passwd | grep libpam PAM 身份验证配置文件 /etc/pam.d/ 目录包含应用程序的 PAM 配置文件。例如,...

ai agent 1504

CentOS-pam认证机制简介

前言 linux下PAM模块全称是Pluggable Authentication Module for linux(可插入式授权管理模块),该由Sun公司提供,在Linux中,PAM是可动态配置的,本地系统管理员可以自由选择应用程序如何对用户进行身份验证。PAM应用在许多程序与服务上,比如登录程序(login、su)的PAM身份验证(口令认证、限制登录),passwd强...

ai80233407的博客 794
上一篇: RHEL使用centos更新源
下一篇: PAM详解
drefong
博客等级 码龄17年 1粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值