论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
应用中心
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com技术社区
»
论坛
›
安全
›
终端安全
›
打造更安全的Linux体系:玩转PAM设置文件
打造更安全的Linux体系:玩转PAM设置文件
杀鸡焉用牛刀
论坛元老
|
2025-4-14 09:49:57
|
显示全部楼层
|
阅读模式
楼主
主题
1961
|
帖子
1961
|
积分
5883
在Linux体系中,用户认证是确保体系安全的关键步调。PAM(可插拔认证模块)为我们提供了一个非常灵活的框架,帮助我们管理各种服务的认证过程。其中,/etc/pam.d目录是PAM设置的核心部门,这里存放了每个服务所需的认证规则文件。在这篇文章里,我们将一起探索 /etc/pam.d的重要性,并学习如何通过调整这些文件来进一步增强体系的安全性。
什么是PAM?
PAM是一种模块化的认证机制,允许管理员自定义体系和服务的认证流程。PAM的计划特点包罗:
灵活性:
各种认证功能通过模块实现,可以按需启用或禁用。
模块化:
差别服务可以共享通用模块,减少重复设置。
安全性:
支持多种安全策略,例如暗码复杂性、多因素认证等。
/etc/pam.d的作用
/etc/pam.d目录存放了PAM 的设置文件,每个文件对应一个服务或程序,例如 sshd、sudo、login 等。这些文件定义了服务的认证规则,包罗暗码验证、账户查抄、会话管理等内容。
常见文件和用途
文件名功能形貌login控制通过终端登录的认证方式sshd控制SSH服务的认证方式sudo控制使用 sudo提升权限时的认证方式common-auth通用的身份验证模块,很多服务会引用它common-password通用的暗码规则模块,定义暗码策略common-account通用的账户管理模块,定义账户权限相关规则common-session通用的会话管理模块,定义会话生命周期规则 如下图是Ubuntu 20.04的/etc/pam.d目录下的文件:
PAM设置文件结构
每个 /etc/pam.d 设置文件由多行规则组成,格式如下:
模块类型 控制标志 模块路径 模块参数
复制代码
字段表明
模块类型
auth:认证规则,如暗码验证。
account:账户管理规则,如账户锁定查抄。
password:暗码管理规则,如暗码复杂性要求。
session:会话管理规则,如资源限制或登录记录。
控制标志
required:必须成功,失败不会立即停止,但终极结果会失败。
requisite:必须成功,失败会立即停止认证。
sufficient:成功则认证通过,后续模块不再执行。
optional:成功或失败对整体认证无影响。
模块路径
通常为 /lib/security/ 或 /usr/lib/security/ 下的PAM模块文件。
模块参数
用于定义模块的具体行为。
示例设置:/etc/pam.d/sshd
以下是一个典型的 sshd 设置文件:
auth required pam_env.so
auth required pam_unix.so
auth required pam_tally2.so deny=5 unlock_time=300
account required pam_unix.so
password required pam_unix.so
session required pam_limits.so
session optional pam_motd.so
session required pam_unix.so
复制代码
设置解读
pam_env.so:加载用户情况变量。
pam_unix.so:使用传统的UNIX暗码验证。
pam_tally2.so:限制登录失败次数(如连续 5 次失败锁定账户5分钟)。
pam_limits.so:加载体系资源限制。
pam_motd.so:显示登录时的消息。
如何增强体系安全性?
通过合理设置 /etc/pam.d 文件,可以明显提升体系安全性。以下是一些推荐的实践:
1. 限制登录失败次数
使用 pam_tally2 模块限制登录失败次数,防止暴力破解。
auth required pam_tally2.so deny=5 unlock_time=300
复制代码
deny=5:连续失败5次后锁定账户。
unlock_time=300:5分钟后自动解锁。
2. 逼迫暗码复杂性
使用 pam_pwquality 模块逼迫暗码复杂性要求。
password requisite pam_pwquality.so retry=3 minlen=12 difok=4
复制代码
retry=3:用户有3次时机输入合格暗码。
minlen=12:暗码至少12个字符。
difok=4:新暗码与旧暗码至少有4个字符差别。
还有一些其他比力少用的参数:
dcredit=N:定义用户暗码中必须包罗多少个数字;
ucredit=N:定义用户暗码中必须包罗多少个大写字母;
lcredit=N:定义用户暗码中必须包罗多少个小些字母;
ocredit=N:定义用户暗码中必须包罗多少个特别字符(除数字、字母之外)
3. 限制资源使用
通过 pam_limits.so 限制用户的体系资源使用,防止资源滥用。
session required pam_limits.so
复制代码
结合 /etc/security/limits.conf 文件,可以设置用户的最大文件数、进程数等。
4. 显示告诫信息
通过 pam_motd.so 显示登录告诫或公告信息。
session optional pam_motd.so
复制代码
将告诫信息写入/etc/motd,如:
Unauthorized access is prohibited.
复制代码
排查 PAM 设置题目
错误的PAM设置大概导致用户无法登录或服务非常。以下是一些排查建议:
查抄日志文件
PAM的错误信息会记录在 /var/log/auth.log 或 /var/log/secure中。
tail -f /var/log/auth.log
复制代码
使用调试模式
某些服务支持调试模式,可以输出具体的 PAM 调用信息。例如:
sshd -ddd
复制代码
备份设置文件
在修改 /etc/pam.d 文件之前,务必先备份原始文件。
cp /etc/pam.d/sshd /etc/pam.d/sshd.bak
复制代码
总结
/etc/pam.d 是Linux体系认证的核心,通过合理设置这些文件,可以有用提升体系的安全性和可控性。从限制登录失败次数到逼迫暗码复杂性,PAM提供了丰富的功能来掩护体系。希望本文能帮助你把握 /etc/pam.d 的设置技巧,为你的Linux体系打造更加坚固的安全防线!
推荐阅读
Ansible实战:如何正确选择command和shell模块?
运维效率倍增!Ansible Copy 模块必知必会操作
如何在Ansible中轻松实现复杂SSH跳转?这个参数搞定
Ansible Setup模块实战,如何使用Setup模块收集主机信息
从入门到精通:Ansible Shell 模块的应用与最佳实践
深入了解Ansible设置与主机清单:轻松管理自动化使命
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
继续阅读请点击广告
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
正序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
发新帖
回复
杀鸡焉用牛刀
论坛元老
这个人很懒什么都没写!
楼主热帖
ElasticSearch-高级查询
手把手带你通过API创建一个loT边缘应用 ...
一、kotlin基础语法学习
第4章 复合类型
背八股文的都是什么水平
揭秘 ChunJun:如何实现 e2e&session ...
Apache Hudi 在袋鼠云数据湖平台的设计 ...
开源轻量级工作流WorkflowCore介绍 ...
生产事故-记一次特殊的OOM排查 ...
源码解析 Handler 面试宝典
标签云
国产数据库
集成商
AI
运维
CIO
存储
服务器
浏览过的版块
.Net
DevOps与敏捷开发
快速回复
返回顶部
返回列表