Linux中国 Linux中国门户站!
设为主页 设为主页
收藏本站 收藏本站
 
当前位置 :首页 ->Linux技术 ->Linux安全 ->正文

深入Linux PAM 体系结构

来源:IBM DW中国 作者:韩波  时间:2007-04-22 点击: [收藏] [投稿]

ftp     auth        required     pam_skey_auth.so    debug

改为


ftp     auth        required     pam_unix_auth.so    debug

这样,当用户使用ftp时,将用传统的UNIX口令鉴别方式来验证其身份。由此可见,在PAM体制下为应用程序改变鉴别机制是一件轻松的事情。另外,PAM体制的堆叠功能还使得应用程序能够支持多种鉴别机制,如下例中的login程序在配置文件中先后出现了三项与鉴别有关的登记项:

图3.示例配置文件

当login 程序执行时先用pam_unix.so模块即传统的UNIX口令方式鉴别用户,然后再调用pam_kerb.so模块即Kerberos对用户进行鉴别,最后用pam_rsa.so模块即RSA方式鉴别用户。在按上述顺序鉴别用户的过程中,如果pam_unix.so模块鉴别失败,它将继续调用下面的模块进行鉴别而非立刻向login程序返回错误消息;pam_kerb.so模块也按同样方式处理,直到顺序处理完最后一个pam_rsa.so模块后, PAM才将前面出现的错误信息返回给login程序。对于该配置,即使pam_rsa.so模块顺利通过,只要pam_unix.so模块和 pam_kerb.so模块中有一个出现错误,用户就不能通过鉴别;相反,即使pam_rsa.so模块失败,只要pam_unix.so模块和 pam_kerb.so模块都通过了,用户也能通过鉴别。

六、口令映射

在同一个机器上使用多个鉴别机制,尤其是一个应用程序集成多种鉴别机制可能导致用户需要记忆多个口令,这会让用户觉得很不舒服。虽然可以让所有机制使用相同的口令来获取易用性,但是这将削弱系统的安全性--如果其中任何一个机制的口令泄露了,则所有机制都会受到牵累。此外,不同的鉴别机制在口令长度、容许的字符、更新间隔、有效期等方面可能具有他们特有的要求,这些要求也是为多鉴别机制使用同一个口令必须考虑的一个问题。

PAM为我们提供了这样一种解决方案,它不排除为所有鉴别机制共用一个口令,同时允许通过口令映射技术让每个机制使用不同的口令。该方案用用户的"主口令"加密其他的"副口令",并且将这些经过加密的副口令存放在一个用户能访问的地方。主口令一旦经过验证,鉴别模块就能用它解密那些加密的副口令从而获得相应口令,然后将所需口令传递给鉴别模块。这称为"口令映射"。如果口令映射出现错误,或如果映射不存在,那么各鉴别模块应该提示用户输入口令。为支持口令映射,主口令应保存在PAM第二层并且在需要时由其提供给堆叠的各个鉴别模块。同时,口令要在 pam_authenticate函数返回之前清除。为了保障口令映射的安全,主口令必须足够强壮,可以考虑使其的长度更长、组成口令字符的类型多样化并使用混合类型的字符组成口令等有效措施。

口令怎么样加密及其存储完全取决于具体的实现:它能够将加密的副口令(也称作"映射口令")存储在可靠或不可靠的地方,诸如智能卡、本地文件或目录服务。当然,如果加密的口令保存在一个不可靠的允许公共访问的地方,会留下受到字典攻击的隐患。

为实现口令映射,所有鉴别模块应支持以下四个映射选项∶

  1. use_first_pass∶它表示当该模块执行时不提示用户输入口令,而将该模块之前的提示用户输入的主口令作为它们的公共口令进行验证。如果用户没能通过主口令的鉴别,则该模块不提示用户输入口令。此选项一般说来在系统管理员想强制用同一个口令通过多模块时使用。
  2. try_first_pass∶除了如果主口令不正确,将提示用户输入口令之外,它的用法与use_first_pass相同。
  3. use_mapped_pass∶它表示使用口令映射技术得到此模块的有效口令。也就是说,该模块执行时不提示用户输入口令,而是用映射口令即用主口令解密得到的该模块的副口令作为本模块的口令输入进行验证。如果在此之前用户没能通过主口令的鉴别,则该模块也不会提示输入口令。
  4. try_mapped_pass∶除了如果主口令不正确,它将提示用户输入口令之外,该项与use_mapped_pass用法相同。

当口令更换后,PAM会保存所有新旧口令,并且使有关模块能够访问到它们。其他模块能够使用此信息更新加密的口令而不必强制用户再次输入口令。

现以下面的配置文件为例讲解口令映射:

图4. 示例配置文件

在这里login程序集成了三种鉴别方式:传统UNIX口令鉴别、Kerberos和RSA鉴别,但通常情况下用户仅输入一次口令便能通过鉴别了。当程序调用pam_unix.so模块时,PAM提示用户输入他们的UNIX口令,然后由pam_kerb.so模块对用户输入的UNIX口令进行鉴别。继而调用 pam_kerb.so模块,由于该模块的选项为use_mapped_pass,它将利用口令映射机制进行认证,也就是说,如果UNIX口令鉴别通过的话,就将其作为pam_kerb.so模块的主口令来解密其对应的映射口令从而进行Kerberos鉴别。如果pam_unix.so模块所需口令没能通过验证,则无法进行口令映射,那么PAM将直接调用下一鉴别模块而不提示用户输入其Kerberos口令。最后一个模块的选项为 use_first_pass,所以pam_rsa.so模块将使用前边输入的主口令来鉴别用户,如果口令错误也不提示用户输入RSA口令。所以,只要第一次输入的口令是正确的,并且映射口令存在,则一个口令便足以通过鉴别。

七、结束语

Linux-PAM是一种使用灵活功能强大的用户鉴别机制,本文对它的组成结构以及各部分之间的关系进行了相应的分析,希望对读者理解PAM的机制有所帮助。

参考资料

1. 想了解更多的FLTK的知识和下载FLTK源代码等可以到 www.fltk.org 网站。 FLTK的编程手册你想了解FLTK构件的事件方法等都在里面。OpenGL

2. 还是参考一下 www.opengl.org

 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<

上一页 1 2 34 下一页


上一篇:Apache 门户项目组介绍   下一篇:FreeBsd5.4+pf+squid反向代理实战笔记

文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论
更多相关文章
·IP安全加密 IPSec安全技术全面接触
·黑客高级技巧 Linux后门技术及实践
·LINUX2.4.x网络安全框架
·分级防御对Linux服务器的攻击
·基于Linux开发的FireboxⅡFastVPN
·十项Linux安全管理技巧经验总结
·高级Linux安全管理技巧
·发现Linux压缩格式漏洞 达第二最危险级别
·Unix和Linux下的Acrobat Reader 5受攻击
·Linux操作系统下防垃圾邮件基本功
推荐文章
·优化Linux 系统服务来提高引导速度
·使用DVL Linux练习Linux安全攻防
·用Linux系统防火墙功能抵御网络攻击
·使用 Perl 自动化 UNIX 系统管理
·看看是谁在挑战Linux操作系统的安全
·关于自由软件与信息安全的关系探讨
·Linux产业发展方向:专家看好系统安
·解读Linux系统下文件权限的设置方法
精彩文章
·Linux平台下病毒的防范要采取多种手
·Linux系统安全知识--防范黑客攻击
·怎么样配置Linux操作系统的安全服务
·引黑客入瓮 给Linux系统蒙上Windows
·Linux环境下免费防火墙试用手记
·用Linux操作系统防火墙防止DOS攻击
·一本Linux 开发人员的必备书籍推荐
·资深网管教你对抗Linux系统病毒
·熟知Linux操作系统 紧急情况处理方
·操作系统安全防护之Linux系统篇
·Apache 门户项目组介绍
·Linux操作系统安全防护技巧详细介绍
·软盘版Linux防火墙的制作方法介绍
·超级实用的Linux操作系统安全性事项
·取消root命令历史记录以增加系统安
·Linux系统上不安全的程序及替代程序
·避其锋芒 Linux操作系统入侵实例
·对Linux服务器平台怎么样安全保护(
·加强redhat linux系统安全的方法
·各类Unix和Linux密码丢失解决方法
·Linux操作系统用户口令安全恢复方法
·使用SSH实现Linux下的安全数据传输
·怎么样建立安全的ProFTPD应用经验谈
·高级Linux操作系统的安全管理技巧
·使用LiveCD 恢复受危害的系统
· Linux网络安全之经验谈
Power by linux-cn.com 粤ICP备05006655号