科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网服务器频道用PAM认证加强Linux服务器安全

用PAM认证加强Linux服务器安全

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

PAM(Pluggable Authentication Modules)即可插拔式认证模块,它是一种高效而且灵活便利的用户级别的认证方式,它也是当前Linux服务器普遍使用的认证方式。

来源:IT专家网 2009年9月15日

关键字: 服务器 Linux PAM

  • 评论
  • 分享微博
  • 分享邮件

在本页阅读全文(共3页)

  4.PAM认证的流程

  为了便于大家深入了解PAM认证的流程,我们以验证用户登录的PAM-login为例进行说明。PAM认证流程是从行首验证到行尾,逐条认证。比如用户登录服务器,共有十条auth类型认证,假设第一条认证失败,一般情况后九条也必须要认证。为什么就一般情况呢?其实还有非一般情况。那么这个用户动作成功与否是要看auth认证后面的区域2是怎么处理的。在图2中看到处理字段有required和optional,其中required代表认证必须通过,也就是说,无论成功多少条语句,只要失败一条,那么认证就失败。在图2中看到的区域3就是认证的模块了,第二行中的“pam_securetty.so”就是这个文件。在RHEL中,认证多是用相对路径。

  5.PAM认证测试

  pam_securetty.so是一个认证模块文件,该认证模块只对root用户有效,当root登录系统时,会查看有没有安全终端,安全终端就是/etc/securetty文件里的东西,比如你运行“W”命令看到TTY下面的东西就是安全终端。如果有安全终端就通过认证,否则失败。有些管理员为了安全,不让root用户直接登录,他会把/etc/securetty文件清代空,这就保证了在有root密码时,也不能够在本地登录。

  为了以下的实验方便,能看出效果来,我们把“auth required pam_securetty.so”这条认证加入SSH服务的PAM模块谁文件里(/etc/pam.d/sshd)的第一行,目的就是让SSH服务应用这条认证。大家可在控制台窗口中执行“vi etc/pam.d/sshd”然后添加这条认证语句。同样的道理,如果把这条语句加到login文件(默认这条认证是被注销掉的,我们取消前面的#就可以了),控制的是从本地控制台登录,同样的话如果把这条语句加入到sshd文件内,那么它将控制的是从远程登录服务器22端口的过程。(图3)

  下面我们试着SSH登录系统看看效果,在控制台中执行命令“ssh -l root localhost”,可以看到无论我们的root用户的密码正确与否都无法通过SSH远程登录到系统,可见上面的认证已经生效。在一般情况下,为了服务器的安全,大家通过PAM认证拒绝root远程登录系统。 (图4)

  

用PAM认证加强Linux服务器安全

  6.PAM认证的处理方式

  了解了认证类型的工作方式,我们还应该深入的理解认证的处理方式,在图2中看到,它的认证处理方式是required,表示这一模块的认证是必须成功的,但如果失败,认证过程不会即刻终止,PAM将继续下一个同类型认证。上面“pam_securetty.so”认证失败了,但认证并没有结束,认证的“指针”还在向下走。如图4中所示,在root用户SSH登录认证失败的前提下还提示用户输入密码,虽然认证不可能成功。

  处理过程中除了required,还有requisite、sufficient和optional,我们再来看看requisite的效果。还用SSH服务为例,把/etc/pam.d/sshd文件第一行中的“auth required pam_securetty.so”改成“auth requisite pam_securetty.so”。再次尝试登录,发现和图4没有什么差别,也是输入3次密码后被拒绝了。但是细心的读者如果一边看文章一边尝试着实验的话,你会发现当你在输入密码时,用required反应的速度要慢一些,并且在系统日志中是没有记录的,认证同样是失败的。这说明required和requisite类似的地方是认证必须通过,而不同的是如果失败,认证过程将立即终止,不会去认证下面的条目。(图5)

  

用PAM认证加强Linux服务器安全
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章