PAM安全认证
一.Linux中的PAM安全认证
Linux-PAM,
是linux可插拔认证模块,是一套可定制、可动态加载的共享库,使本地系统管理员可以随意选择程序的认证方式。PAM使用/etc/pam.d/下的配置文件,来管理对程序的认证方式。
应用程序调用相应的PAM配置文件,从而调用本地的认证模块,模块放置在/1ib64/security下,以加载动态库的形式进行认证。比如使用su命令时,系统会提示输入root用户的密码,这就是su命令通过调用PAM模块实现的。
1.su命令的安全隐患
- 默认情况下,任何用户都允许使用su命令,有机会反复尝试其他用户(如root) 的登录密码,带来安全风险
- 为了加强su命令的使用控制,可借助于PAM认证模块,只允许极个别用户使用su命令进行切换
2.PAM(Pluggable Authentication Modules)可插拔式认证模块
- 是一种高效而且灵活便利的用户级别的认证方式
- 也是当前Linux服务器普遍使用的认证方式
二.PAM认证原理
- 一般遵循的顺序
-----------Service (服务) - →PAM (配置文件)-→pam_*.so - 首先要确定哪一项服务,然后加载相应的PAM的配置文件(位于/etc/pam.d下),最后调用认证文件(位于/lib64/security下)进行安全认证
- 用户访问服务器时,服务器的某一个服务程序把用户的请求发送到PAM模块进行认证
- 不同的应用程序所对应的PAM模块是不同的
- PAM的配置文件中的每行都是一个独立的认证过程,它们按从上往下的顺序依次由PAM模块调用


三. PAM认证得构成
1.查看某个程序是否支持PAM认证,可以用Is命令
查看su是否支持PAM模块认证:
Is /etc/pam.d | grep su
2. 查看su的PAM配置文件: cat /etc/pam.d/su
- 每一行都是一个独立的认证过程
- 每一行可以区分为三个字段
-
- -------------认证类型.
- ---------------控制类型
- ----------------PAM模块及其参数

第一列代表PAM认证模块类型.
| auth | 对用户身份进行识别,如提示输入密码,判断是否为root。 |
|---|---|
| account: | 对账号各项属性进行检查,如是否允许登录系统,帐号是否已经过期,是否达到最大用户数等。 |
| password: | 使用用户信息来更新数据,如修改用户密码。 |
| session: | 定义登录前以及退出后所要进行的会话操作管理,如登录连接信息,用户数据的打开和关闭,挂载文件系统。 |
第二列代表PAM控制标记:
| required: | 表示需要返回一-个成功值,如果返回失败,不会立刻将失败结果返回,而是继续进行同类型的下–验证,所有此类型的模块都执行完成后,再返回失败。 |
|---|---|
| requisite: | 与required类似,但如果此模块返回失败,则立刻返回失败并表示此类型失败。 |
| sufficient: | 如果此模块返回成功,则直接向程序返回成功,表示此类 |

本文深入讲解了Linux系统中PAM认证模块的工作原理、配置方法及其安全性应用,包括su命令的安全隐患、PAM认证流程和配置文件解读、使用sudo机制提升权限、开关机安全控制以及终端登录安全控制等内容。

1040

被折叠的 条评论
为什么被折叠?



