分享
 
 
 

浅析Linux的模块验证(1)

王朝system·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

如今,更多的企业需要支持桌面Linux用户,尤其是名为高级用户(power user)的那类员工。Linux曾经是离经叛道的一种平台。尽管与一系列众多的网络与服务验证和访问机制兼容,并且能与微软Windows、Unix和Apple Macintosh等平台共享文件,但这种互操作性不是非常重要的一个因素。

形势在变化。对企业环境的那些Linux用户而言,能够安全地与其他Linux用户和Windows用户共享文件仍意味着要为Linux记住一组口令,还要为其它平台记住一组口令。但现在有种比较好的办法:你可以将系统配置成Linux用户能够获得依托Windows NT Domain的安全验证。这样一来,用户就不需要Linux帐号和另一个NT Domain帐号。这将简化网络管理员的日常工作,使高级用户更满意。

验证与帐号管理

验证就是系统确认用户身份的过程。访问控制确定通过验证后允许什么。验证常与帐号联系在一起。所谓帐号一般就是与独特标识符相关的一系列信息。这种信息通常包括允许人们使用系统资源所需的数据。譬如,它提供了用户个人文件的位置或者是用户的实名。它可能包括环境变量和资源极限。我们主要着重于验证服务和协议。

大多数新版本Linux使用了插入式验证模块(PAM),这是灵活验证的关键所在。PAM是一种ASP,目的在于使验证用户从而访问服务的过程模块化。它由Sun公司开发而成,应用于最新版本的Sun Solaris、IBM AIX、HP HP-UX和Apple Mac OS X,不过与各种免费操作系统结合使用最为广泛,包括Linux(尤其是Red Hat、Debian和SuSE)、FreeBSD和NetBSD。

用于Red Hat的PAM

我们将利用PAM系统介绍如何利用许多验证资源进行验证。但首先,不妨概述一下安装在Red Hat Linux 7.2系统上的PAM(同样技术应该适用于能够识别PAM的各种系统)。

任何服务都可以使用PAM进行验证。服务只是代表用户进行验证应用的另一个名称而已,譬如login、FTP和POP。注意:若要使用PAM,必须专门编写服务。在Red Hat 7.2上,进行验证的所有应用都使用PAM。通过检查是否使用PAM库(libpam),就可以查明特定的可执行程序(如远程登录服务用来核查用户身份的login)是否可以使用PAM,方法就是输入“PAM库检查”图中所示的命令。注意:第二行就是指libpam。

PAM库检查

不过使问题稍稍复杂的是:即使某一应用可以通过PAM验证,不是说非这样不可,应用可以把这项功能作为配置选项。Samba和Apache都提供这功能,但并不一定要求使用PAM。

对每种服务而言,/etc/pam.d/目录下有一个文件。该文件包含了这项服务如何获得验证和帐号信息的规则即指令,每行一条规则。"PAM服务配置样本"图显示了文件内容。

PAM服务配置样本

第三列的模块就是能够识别PAM的库,它可以实现某种验证机制。可选的第四列提供了验证模块变元。变化具有模块特定性,即随模块的不同而不同。模块就是执行用来确定规则允许还是拒绝访问的一种程序。

PAM有四种模块:auth(验证)、account(帐号)、password(口令)和session(会话)。auth表明如果服务试图对用户进行验证,就要用到这行。如果服务需要帐号信息如userid,就要用到account。如果服务要改变用户的口令,就要用到password。就在用户登录之前、用户退出之后的瞬间,服务要用到session。这便于生成审查日志,但也可以用来建立各种环境参数或者装上网络磁盘驱动器。允许每一种模块多次出现,但要按顺序,除非其中一行有requisite的控制标志。

控制标志有四种:requisite(必需)、required(要求)、sufficient(足够)和optional(可选)。requisite表明如果这条规则失败,就立即拒绝访问。required表明如果这规则失败,就拒绝访问,但继续为这类模块试用其余规则。sufficient表明如果这规则成功,允许访问;但如果失败,退回到另一个规则。optional则表明忽视该规则的结果,除非这类模块没有其它规则。optional通常用于同验证用户无关的额外配置(这种情形下,我们并不关心配置是否失败)。

这些控制标志可能混淆不清。至于验证,它要求使用pam_unix PAM模块。该模块的变元允许空口令,指示系统使用MD5密码散列而不是简单的Unix crypt()散列,并使用影子口令(shadow password)系统。由于对验证而言这是唯一的一种模块,所以关于是否允许用户登录,它有最终决定权。

至于帐号信息,pam_unix模块再次用到。它被标为sufficient,所以如果模块能够确定用户帐号,就停止处理。如果失败,PAM系统继续进行,并试用下一条帐号规则。这个被标为required,并使用pam_deny模块。该模块总是拒绝访问,所以倘若第一条规则无法确定用户的帐号信息,用户就被拒绝访问。更改口令的例子类似于帐号信息例子。

至于确定会话要求,最后一个例子有两个属于required的规则。两个模块都要正确执行,才能允许用户会话。

PAM模块位于Red Hat Linux 7.2上的/lib/security/目录内。有些模块具有多功能,原因在于它们可以为不止一种类型的模块提供机制。另一些只为单一类型提供机制。为了获得更大的灵活性,pam_stack模块为系统管理员配置多种服务以便统一验证提供了一种方法。该模块广泛应用于Red Hat Linux 7.2(见"默认登录配置")。

默认登陆配置

注意:针对每个类型的每条规则需要pam_stack模块,并为其提供了service=system-auth变元。这实际上是说“跳到system-auth PAM配置”,该配置可在/etc/pam.d/system-auth找到。所以如果登录程序试图验证用户,首先它会运行pam_security模块,进行检查,确保用户通过可信控制台登录(登录程序通常使用明文口令)。如果这样的话,它就跳到放在/etc/pam.d/system-auth的配置,如“默认系统验证配置”所示。

默认系统验证配置

使用这种系统验证配置进行验证的服务首先都将运行pam_env模块,以建立各种环境变量或检查某些先决要求。因为pam_env被标为required,系统必须报告成功(通常是这样,除非出现灾难性问题,譬如用户主目录丢失)。然后服务会运行pam_unix模块,提供类似Unix /etc/passwd的传统验证。因为pam_unix被标为sufficient,如果配置返回成功的结果,PAM就认可用户通过验证。不然,系统会进入到始终拒绝访问的pam_deny模块。

使用这种系统验证配置获得帐号信息的服务也都将运行pam_unix,不过这回是确定用户名、用户身份号、组成员关系及类似Unix/etc/passwd的其它传统信息。该模块被标为required,不过因为是唯一的帐号行,它在默认状态下属于required。

使用这种系统验证配置更改口令的服务首先将预期口令交由pam_cracklib模块控制,后者检查口令的强度。由于被标为required,如果模块拒绝口令,服务就被禁止更换口令。此后,预期口令传给pam_unix,它会更新传统的Unix /etc/passwd文件。如果此举失败,就拒绝更改口令。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有