




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAM模块简介PAM是由一个与程序相同文件名的配置文件来进行一连串的认证分析需求。我们同样以passwd这个指令的呼叫PAM来说明好了。当你执行passwd后,这支程序呼叫PAM的流程是:1.用户开始执行/usr/bin/passwd这支程序,并输入密码;2.passwd呼叫PAM模块进行验证;3.PAM模块会到/etc/pam.d/找寻与程序(passwd)同名的配置文件;4.依据/etc/pam.d/passwd内的设定,引用相关的PAM模块逐步进行验证分析;5.将验证结果(成功、失败以及其他讯息)回传给passwd这支程序;6.passwd这支程序会根据PAM回传的结果决定下一个动作(重新输入新密码或者通过验证!)从上头的说明,我们会知道重点其实是/etc/pam.d/里面的配置文件,以及配置文件所呼叫的PAM模块进行的验证工作!既然一直谈到passwd这个密码修改指令,那我们就来看看/etc/pam.d/passwd这个配置文件的内容是怎样吧!rootstudy#cat/etc/pam.d/passwd#%PAM-1.0=PAM版本的说明而已!authincludesystem-auth= 1000 quiet_successauthrequiredpam_deny.soaccountrequiredpam_unix.soaccountsufficientpam_localuser.soaccountsufficientpam_succeed_if.so uid 1000 quietaccountrequiredpam_permit.sopassword requisite pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type=passwordsufficientpam_unix.sosha512shadownulloktry_first_passuse_authtokpasswordrequiredpam_deny.sosessionoptionalpam_keyinit.sorevokesessionrequiredpam_limits.so-sessionoptionalpam_systemd.sosessionsuccess=1default=ignorepam_succeed_if.soserviceincrondquietuse_uidsessionrequiredpam_unix.so上面这个表格当中使用到非常多的PAM模块,每个模块的功能都不太相同,详细的模块情报可以在你的系统中找到:/etc/pam.d/*:每个程序个别的PAM配置文件;/lib64/security/*:PAM模块文件的实际放置目录;/etc/security/*:其他PAM环境的配置文件;/usr/share/doc/pam-*/:详细的PAM说明文件。例如鸟哥使用未update过的CentOS7.1,pam_nologin说明文件档在:/usr/share/doc/pam-1.1.8/txts/README.pam_nologin。你可以自行查阅一下该模块的功能。鸟哥这里仅简单介绍几个较常使用的模块,详细的信息还得要您努力查阅参考书呢!pam_securetty.so:限制系统管理员(root)只能够从安全的(secure)终端机登入;那什么是终端机?例如tty1,tty2等就是传统的终端机装置名称。那么安全的终端机设定呢?就写在/etc/securetty这个文件中。你可以查阅一下该文件,就知道为什么root可以从tty1tty7登入,但却无法透过telnet登入Linux主机了!pam_nologin.so:这个模块可以限制一般用户是否能够登入主机之用。当/etc/nologin这个文件存在时,则所有一般使用者均无法再登入系统了!若/etc/nologin存在,则一般使用者在登入时,在他们的终端机上会将该文件的内容显示出来!所以,正常的情况下,这个文件应该是不能存在系统中的。但这个模块对root以及已经登入系统中的一般账号并没有影响。(注意喔!这与/etc/nologin.txt并不相同!)pam_selinux.so:SELinux是个针对程序来进行细部管理权限的功能,SELinux这玩意儿我们会在第十六章的时候再来详细谈论。由于SELinux会影响到用户执行程序的权限,因此我们利用PAM模块,将SELinux暂时关闭,等到验证通过后,再予以启动!pam_console.so:当系统出现某些问题,或者是某些时刻你需要使用特殊的终端接口(例如RS232之类的终端联机设备)登入主机时,这个模块可以帮助处理一些文件权限的问题,让使用者可以透过特殊终端接口(console)顺利的登入系统。pam_loginuid.so:我们知道系统账号与一般账号的UID是不同的!一般账号UID均大于1000才合理。因此,为了验证使用者的UID真的是我们所需要的数值,可以使用这个模块来进行规范!pam_env.so:用来设定环境变量的一个模块,如果你有需要额外的环境变量设定,可以参考/etc/security/pam_env.conf这个文件的详细说明。pam_unix.so:这是个很复杂且重要的模块,这个模块可以用在验证阶段的认证功能,可以用在授权阶段的账号许可证管理,可以用在会议阶段的登录文件记录等,甚至也可以用在密码更新阶段的检验!非常丰富的功能!这个模块在早期使用得相当频繁喔!pam_pwquality.so:可以用来检验密码的强度!包括密码是否在字典中,密码输入几次都失败就断掉此次联机等功能,都是这模块提供的!最早之前其实使用的是pam_cracklib.so这个模块,后来改成pam_pwquality.so这个模块,但此模块完全兼容于pam_cracklib.so,同时提供了/etc/security/pwquality.conf这个文件可以额外指定默认值!比较容易处理修改!pam_limits.so:还记得我们在第十章谈到的ulimit吗?其实那就是这个模块提供的能力!还有更多细部的设定可以参考:/etc/security/limits.conf内的说明。了解了这些模块的大致功能后,言归正传,讨论一下login的PAM验证机制流程是这样的:1.验证阶段(auth):首先,(a)会先经过pam_securetty.so判断,如果使用者是root时,则会参考/etc/securetty的设定;接下来(b)经过pam_env.so设定额外的环境变量;再(c)透过pam_unix.so检验密码,若通过则回报login程序;若不通过则(d)继续往下以pam_succeed_if.so判断UID是否大于1000,若小于1000则回报失败,否则再往下(e)以pam_deny.so拒绝联机。2.授权阶段(account):(a)先以pam_nologin.so判断/etc/nologin是否存在,若存在则不许一般使用者登入;(b)接下来以pam_unix.so及pam_localuser.so进行账号管理,再以(c)pam_succeed_if.so判断UID是否小于1000,若小于1000则不记录登录信息。(d)最后以pam_permit.so允许该账号登入。3.密码阶段(password):(a)先以pam_pwquality.so设定密码仅能尝试错误3次;(b)接下来以pam_unix.so透过sha512,shadow等功能进行密码检验,若通过则回报login程序,若不通过则(c)以pam_deny.so拒绝登入。4.会议阶段(session):(a)先以pam_selinux.so暂时关闭SELinux;(b)使用pam_limits.so设定好用户能够操作的系统资源;(c)登入成功后开始记录相关信息在登录文件中;(d)以pam_loginuid.so规范不同的UID权限;(e)开启pam_selinux.so的功能。总之,就是依据验证类别(type)来看,然后先由login的设定值去查阅,如果出现“include system-auth”就转到system-auth文件中的相同类别,去取得额外的验证流程就是了。然后再到下一个验证类别,最终将所有的验证跑完!就结束这次的PAM验证啦!经过这样的验证流程,现在你知道为啥/etc/nologin存在会有问题,也会知道为何你使用一些远程联机机制时,老是无法使用root登入的问题了吧?没错!这都是PAM模块提供的功能啦!例题:为什么root无法以telnet直接登入系统,但是却能够使用ssh直接登入?答:一般来说,telnet会引用login的PAM模块,而login的验证阶段会有/etc/securetty的限制!由于远程联机属于pts/n(n为数字)的动态终端机接口装置名称,并没有写入到/etc/securetty,因此root无法以telnet登入远程主机。至于ssh使用的是/etc/pam.d/sshd这个模块,你可以查阅一下该模块,由于该模块的验证阶段并没有加入pam_securetty,因此就没有/etc/securetty的限制!故可以从远程直接联机到服务器端。另外,关于telnet与ssh的细部说明,请参考鸟哥的Linux私房菜服务器篇其他相关文件除了前一小节谈到的/etc/securetty会影响到root可登入的安全终端机,/etc/nologin会影响到一般使用者是否能够登入的功能之外,我们也知道PAM相关的配置文件在/etc/pam.d,说明文件在/usr/share/doc/pam-(版本),模块实际在/lib64/security/。那么还有没有相关的PAM文件呢?是有的,主要都在/etc/security这个目录内!我们底下介绍几个可能会用到的配置文件喔!limits.conf我们在第十章谈到的ulimit功能中,除了修改使用者的/.bashrc配置文件之外,其实系统管理员可以统一由PAM来管理的!那就是/etc/security/limits.conf这个文件的设定了。这个文件的设定很简单,你可以自行参考一下该文件内容。我们这里仅作个简单的介绍:范例一:vbird1这个用户只能建立100MB的文件,且大于90MB会警告rootstudy#vim/etc/security/limits.confvbird1softfsize90000vbird1hardfsize100000#账号限制依据限制项目限制值#第一字段为账号,或者是群组!若为群组则前面需要加上,例如projecta#第二字段为限制的依据,是严格(hard),还是仅为警告(soft);#第三字段为相关限制,此例中限制文件容量,#第四字段为限制的值,在此例中单位为KB。#若以vbird1登入后,进行如下的操作则会有相关的限制出现!vbird1study$ ulimit -a.(前面省略).file size(blocks,-f) 90000.(后面省略).vbird1study$ dd if=/dev/zero of=test bs=1 Mcount=110File size limit exceededvbird1study$ ll -block-size=K test-rw-rw-r-. 1vbird1 vbird190000KJul2201:33test#果然有限制到了范例二:限制pro1这个群组,每次仅能有一个用户登入系统(maxlogins)rootstudy# vim /etc/security/limits.confpro1hardmaxlogins1#如果要使用群组功能的话,这个功能似乎对初始群组才有效喔!而如果你尝试多个pro1的登入时,#第二个以后就无法登入了。而且在/var/log/secure文件中还会出现如下的信息:#pam_limits(login:session):Too many logins (max 1) for pro1这个文件挺有趣的,而且是设定完成就生效了,你不用重新启动任何服务的!但是PAM有个特殊的地方,由于他是在程序呼叫时才予以设定的,因此你修改完成的数据,对于已登入系统中的用
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 202212月1日世界艾滋病日
- 招标专业人员招聘面试实战模拟题库
- 知识题库-水泥工艺学自测知识考试题及答案
- 小学影子数学课程解析
- 中学面试题目精 编:高中版
- 高品质求职必 备:供销会计面试题精 编职业岗位分析
- 初中语文招聘导航:探寻高质量的面试题库等你挑战
- 新建高职院校汇报
- 新员工汇报演讲
- 伟人细胞教案
- 2025医院医疗器械不良事件监测与报告制度
- 企业廉洁管理办法
- 2025年列车长(官方)-高级工历年参考试题库答案解析(5卷套题【单项选择题100题】)
- DBJ50-T-306-2024 建设工程档案编制验收标准
- 2025四川雅安荥经县国润排水有限责任公司招聘5人笔试历年参考题库附带答案详解
- 2025中国银行新疆区分行社会招聘笔试备考试题及答案解析
- 动脉置管并发症
- 药品医疗器械试题及答案
- 2025年甘肃社会化工会工作者招聘考试(公共基础知识)模拟试题及答案
- 2025年甘肃省高考历史试卷真题(含答案解析)
- 涂装(电泳)废水操作说明书
评论
0/150
提交评论