良许Linux教程网 干货合集 Linux系统pam详解(一)

Linux系统pam详解(一)

PAM主要是由一组共享库文件(也就是后缀名为.so文件)和一些配置文件组成的用于系统服务授权的一套东西,下面良许教程网为大家详细讲解一下Linux系统pam,有需要的小伙伴可以参考一下。

Linux系统pam详解(一)

一、pam的简介

  • PAM(Pluggable Authentication Modules)即可插拔式认证模块,它是一种高效而且灵活便利的用户级别的认证方式,它也是当前Linux服务器普遍使用的认证方式。
  • 当然,在不同版本的Linux统中部署PAM认证是有所不同的。
  • 它提供了对所有服务进行认证的中央机制,适用于login,远程登录(telnet,rlogin,fsh,ftp,点对点协议(PPP)),su等应用程序中。
  • 系统管理员通过PAM配置文件来制定不同应用程序的不同认证策略;应用程序开发者通过在服务程序中使用PAM API(pam_xxxx( ))来实现对认证方法的调用;而PAM服务模块的开发者则利用PAM SPI来编写模块(主要是引出一些函数pam_sm_xxxx( )供PAM接口库调用),将不同的认证机制加入到系统中;PAM接口库(libpam)则读取配置文件,将应用程序和相应的PAM服务模块联系起来。
  • PAM框架结构如图所示。

wKioL1O8rXvxQA8NAAF-Fq6C464335.jpg

二、pam认证原理

PAM认证一般遵循这样的顺序:Service(服务)→PAM(配置文件)→pam_*.so。PAM认证首先要确定那一项服务,然后加载相应的PAM的配置文件(位于/etc/pam.d下),最后调用认证文件(位于/lib/security下)进行安全认证。认证原理图如下图所示:

wKioL1O8rY-C0rOsAADFEPrJxgE391.jpg

用户访问服务器的时候,服务器的某一个服务程序把用户的谁请求发送到PAM模块进行认证。对于不同的服务器应用程序所对应的PAM模块也是不同的。如果想查看某个程序是否支持PAM认证,可以用ldd命令进行查看,例如查看查看sshd是不是支持PAM模块认证,如下图所示:

wKioL1O8rafjqe11AAOW--_vknY241.jpg

三、PAM认证的构成

客观地说PAM认证还是比较复杂的,这里只简单地介绍它包括四种常见认证类型(module type):

1、认证管理(authentication management)

接受用户名和密码,进而对该用户的密码进行认证,并负责设置用户的一些秘密信息。

2、帐户管理(account management)

检查帐户是否被允许登录系统,帐号是否已经过期,帐号的登录是否有时间段的限制等等。

3、密码管理(password management)

主要是用来修改用户的密码。

4、会话管理(session management)

主要是提供对会话的管理和记账(accounting)。

四、pam验证控制类型(Control Values)

验证控制类型也可以称做Control Flags,用于PAM验证类型的返回结果,具体有以下四种:

1、required验证失败时仍然继续,但返回Fail(用户不会知道哪里失败)。

2、requisite验证失败则立即结束整个验证过程,返回Fail。

3、sufficient验证成功则立即返回,不再继续,否则忽略结果并继续。

4、optional无论验证结果如何,均不会影响(通常用于session类型)。

PAM验证类型返回结果如下所示:

wKioL1O8rb2zaxXqAAEUlXRlfMk934.jpg

为了方便大家理解举两个例子,如下图所示:

wKioL1O8rczBg2EFAADgmbEnOKA947.jpg

wKioL1O8rd3idhFdAADjDU7b4ao203.jpg

从上面两个图可以看出当required失败后续还要继续,但最后仍是失败。requisite验证失败则立即结束。而sufficient则是验证成功则立即结束。

以上就是良许教程网为各位朋友分享的Linux系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你!

137e00002230ad9f26e78-265x300

本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部