免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1201 | 回复: 0
打印 上一主题 下一主题

pam配置格式 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-11-30 21:31 |只看该作者 |倒序浏览
service - 由于现代的PAM配置文件都是以服务程序的名字分开配置,所以基本上service这个项已经省去了。但在有些还使用一个pam.conf大文件配置所有的PAM服务的BSD上,还有这一项。module_type – 控制使用什么类型的管理机制。auth – 认证管理。做两件事:1.检验用户是否是真正声称的那个用户,比如,要求用户输入用户名和密码来声明自己。2.这个模块可以通过PAM自身的印证机制赋予用户一些特权,或是加入组。account – 用户管理。 是非认证式的对用户赋予/阻止使用一些系统资源。比如说,用户登录的时间限制,密码的期限等。password – 密码认证管理。是用来管理用户的密码认证标记(token)的。比如,用户密码的尝试次数等。session – 会话管理。比如在会话前中后所要执行的一些事情,如记录会话信息, 对如可展开会话的控制等。control_flag – 可以理解成对PAM认证的流程控制。比如说如果成功,下一步应该怎么办?如果不成功,又应该怎么办?还有就是按怎样的顺序来进行认证,等等。required – 表示这一模块的认证是必须成功的,但如果失败,认证过程不会即刻终止,PAM将继续下一个同类型的模块认证。requisite – 和required类似,只是如果失败,认证过程将立即终止。sufficient – 表示如果认证成功,那么对这一类的模块认证是充足的了,其他的模块将不会再检验。optional – 表示这一模块认证是可选的,也不会对认证成功或失败产生影响。我没怎么用过这个。include - 有点类似于DNS或xinetd的include。表示将包括其他的一些认证,这样就可以建立一个分离式的配置文件管理机制。module_path使用的认证模块的位置,最为保险的是使用绝对路径。不过PAM有自己的PATH环境,在RHEL4中,大部分是使用的相对路径。如果你是缺省安装,有没有挪动过那些.so文件的位置,使用相对路径是没问题的。(缺省路径一般是:/lib/security)args – 在认证时传给模块的一些变量。比如用什么文件,对于什么uid, 失败的处理等等。类似于赋给一个命令一些参数。好了,对于PAM的结构有了基本的了解,我们来看看PAM是如果控制login的。从上至下对于login的PAM配置文件的翻译可以为:1.用pam_stack.so这个认证模块检测system-auth服务的每一项,看这个请求用户是否能通过认证。这一项是必须检验成功的。 system-auth可以理解为一个 “systemwide“全局性的PAM配置文件,也就是说所有的PAM文件都将首先检测system-auth。这就是通过pam_stack.so service=system-auth这一语句来完成的。2.如果第一项失败了,则整个认证将失败,但无论认证是否成功失败,继续检测第二项,pam_nologin.so.看看系统是否有nologin文件存在。一般在/etc/nologin.如果这个文件存在,则只有root才能登录,其他任何用户都不能。3.继续检测第三项,用system-auth来检测对用户的管理。4.继续检测第四项,用system-auth来检测对密码的管理。5.继续检测第五项,用system-auth来检测会话的控制。6.继续检测第六项,用pam_console.so来检测用户的登录来源,如果从console,则配置一些console下的资源。这一项是可选的。按照这个认证过程,我们可以举个例子: userA 和userB。UserA是系统用户而userB是个虚拟用户,只给vsftp用的。那么当userA和userB登录的时候,PAM将利用 pam_unix.so来检测用户是否在/etc/passwd和/etc/shadow中。显然userA将成功,而userB将失败。成功的用乎将继 续检测其诸如password已经retry的次数,是否sync了passwd和shadow文件,是否是nis 用户,password的加密方式,登录后的系统资源利用情况(pam_limits.so)等等。最后是pam_console.so,如果用户是从 vt或本地的X 会话登录,PAM将如何配置文件权限...几个常用的PAM认证模块的介绍1.pam_access.so – 缺省配置文件是/etc/security/access.conf (当然,通过“accessfile=/path/to/file” argument, 还可以自行指定配置文件。 通过加入这个认证模块到你想要控制的服务器PAM配置文件,你可以实现对某些服务的userbase级控制。如vsftp, samba,等。编辑/etc/security/access.conf文件,加入你想要控制的用户,可以赋予/阻止他们从特定的来源登录服务器。2.pam_cracklib.so – 用字典方式检测password的安全性。有一些很有用的arguments, 比如准许retry的次数,多少个字符可以和上次的密码重复,最小的密码长度等等。3.pam_deny.so – 一个特殊的PAM模块,这个模块将永远返回否。类似大多数的安全机制配置准则,一个严谨的安全规则的最后一项永远是否。4.pam_limits.so – 类似Linux的ulimit命令,赋给用户登录某个会话的资源限度。如core文件的大小,memory的用量,process的用量,等等。5.pam_listfile.so – 高度自定义的一个认证模块。理论上你可以用这个模块来控制任何服务。Arguments有:代码:item=[tty|user|rhost|ruser|group|shell]sense=[allow|deny]file=/path/to/the/fileapply=[usre|@group]比如,我想在pop3服务的PAM配置文件中加入:代码:auth required pam_listfile.so item=user sense=deny file=/etc/security/dovecot.deny onerr=fail然后我建立/etc/security/dovecot.deny文件,在里面我加上userA的用户名。这样,userA就无法登录pop3服务器了。 原因是“sense=deny“。当然,你也可以配置成“sense=allow“,这样在这个文件里的用户就成了可以登录的用户了,不过你得加入所有你 想赋予登录权限的用户,因为不在这个文件中的用户将被DENY!6.pam_permit.so – 和pam_deny.so正好相反,这个模块将永远返回真。自己从没用过,也许你可以告诉我为什么我需要这个模块?!7.pam_rootok.so – root用户将通过认证。8.pam_securetty.so – 将用/etc/securetty文件来检测root用户的登录来源,不在securetty文件中的来源一律禁止!9.pam_tally.so – 主要用来记录,重置,和阻止失败的登录(次数)。10.pam_wheel.so – 如果有这个模块,那个只有在wheel组里的用户可以得到root权限。11.pam_xauth.so – 如果有这个模块,那么在su, sudo的时候,xauth的cookies将同时传到那个用户。(是不是想起来什么了?)
               
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/100881/showart_2107686.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP