su命令的安全隐患
默认情况下,任何用户都允许使用su命令,有机会反复尝试其他用户(如root)的登录密码,带来安全风险
为了加强su命令的使用控制,可借助于PAM认证模块,只允许极个别用户使用su命令进行切换
PAM(Pluggable Authentication Modules)可插拔式认证模块
是一种高效而且灵活便利的用户级别的认证方式
也是当前Linux服务器普遍使用的认证方式
PAM认证原理
一般遵循的顺序
Service(服务)→PAM(配置文件)→pam_*.so
首先要确定哪一项服务,然后加载相应的PAM的配置文件(位于/etc/pam.d下),最后调用认证文件(位于/lib/security下)进行安全认证
用户访问服务器时,服务器的某一个服务程序把用户的请求发送到PAM模块进行认证
不同的应用程序所对应的PAM模块是不同的
PAM安全认证流程
控制类型也称做Control Flags,用于PAM验证类型的返回结果
required验证失败时仍然继续,但返回Fail
requisite验证失败则立即结束整个验证过程,返回Fail
sufficient验证成功则立即返回,不再继续,否则忽略结果并继续
optional不用于验证,只显示信息
(通常用于session类型)