Linux系统之安全认证
Copyright © 2013 cao hai yang. 曹海洋技术笔记
Linux 系统之安全认证
1.简介
在 liunx 系统中有关安全软件:openssl,pam 和 sasl。三者的功能各有不同,下面分别作一介绍。
pam 与 sasl 的区别:sasl着重验证的过程,pam 是验证的结果。sasl 可以使用 pam 来完成最终的验
证过程。
2.Linux-PAM
2.1.简介
嵌入式认证模块(PAM)机制采用模块化设计和插件功能,使得我们可以轻易地在应用程序中插入新
的鉴别模块或替换原先的组件,而不必对应用程序做任何修改,从而使软件的定制、维持和升级更加轻
松,因为鉴别机制与应用程序之间相对独立。应用程序可以通过 PAM API 方便的使用 PAM 提供的各种鉴别
功能,而不必了解太多的底层细节。
2.2 工作原理
Linux-PAM 处理四种独立的管理工作:
PAM 有四种模块:auth (验证)、account (帐号)、password (口令)和session (会话)。auth
表明如果服务试图对用户进 行验证,就要用到这行。如果服务需要帐号信息如 userid,就要用到
account。如果服务要改变用户的口令,就要用到password。就在用户登 录之前、用户退出之后的瞬间,
服务要用到 session。 允许每一种模块多次 出现,但要按顺序。
控制标志有四种:requisite (必需)、required (要求)、sufficient (足够)和optional (可
选)。requisite 表明如果这条规则失败,就立即拒绝访问。required 表明如果这规则失败,就拒绝访
问,但继续为这类模块试用其余规则。sufficient表明如果 这规则成功,允许访问;但如果失败,退回
到另一个规则。optional 则表明忽视该规则的结果,除非这类模块没有其它规则。optional 通常用于同
验证用户无关的额外配置(这种情形下,我们并不关心配置是否失败)。
auth(认证管理):表示鉴别类接口模块类型用于检查用户和密码,并分配权限;这种类型的模块为
用户验证提供两方面服务。让应用程序提示用户输入密码或者其他标记,确认用户合法性;通过他的凭
证许可权限,设定组成员关系或者其他优先权。
account(帐号管理):表示鉴别类接口模块类型用于检查账户合法性,确认帐号是否过期,是否有权
email :caohy@189.cn /p/caohy189cn?from=wenku 第 1 页
Copyright © 2013 cao hai yang. 曹海洋技术笔记
限登录系统等;这种模块执行的是基于非验证的帐号管理。他主要用于限制/允许用户对某个服务的访问
时间,当前有效的系统资源 (最多可以多少用户),限制用户位置(例如:root 只能通过控制台登录)。
多数情况下 auth 和 account 会一起用来对用户登录和使用服务的情况进行限制。这样的限制会更加
完整。比如下面是一个具体的例子:lo in是一个 应用程序。Lo in要完成两件工作——首先查询用户,
然后为用户提供所需的服务,例如提供一个 shell程序。通常 Lo in要求用户输入名称和密码进行验证。
当用户名输入的时候,系统自然会去比对该用户是否是一个合法用户,是否在存在于本地或者远程的用
户数据库中。如果该账号确实存在,那么是否过期。 这些个工作是由account 接口来负责。
如果用户能够登录成功,证明 auth 和 account 的工作已经完成。但整个验证过程并没有完全结束。
因为还有一些其他的问题没有得到确认。例如,用户能 够在服务器上同时开启多少个窗口登录,用户可
以在登录之后使用多少终端多长时间,用户能够访问哪些资源和不能访问哪些资源等等。也就是说登录
之后的后续验 证和环