aix 安装perl模块_AIX可插拔认证模块

在当前环境中,管理用户和控制其访问权限是一项艰巨的任务。 AIX提供了可加载的认证模块(LAM),用于处理用户标识和认证(I&A)。 用户可以使用AIX可加载认证模块框架(LAMF)接口编写自己的LAM模块。 同样,AIX提供了用于身份验证的PAM。 用户可以将PAM服务集成到其本机应用程序。 本文概述了AIX中的PAM,PAM库API的用法,AIX中随附的PAM服务模块以及LAM和PAM之间的区别。

PAM框架提供了将多种身份验证机制集成到现有身份验证机制的支持。 在AIX V5.3发行版之前,PAM模块作为LAM模块提供,用于处理本机应用程序。

下面的图1概述了AIX中的PAM。

图1.图1. PAM概述图
PAM概述说明

PAM概述

PAM框架由3部分组成:

  • PAM库 :PAM接口库/usr/lib/libpam.a包含PAM API。 这些API充当所有PAM应用程序的通用接口。
  • PAM配置文件 :/etc/pam.conf文件包含每种模块类型的服务条目。 在此之下,将使用PAM服务模块注册应用程序。 PAM库使用此文件与PAM服务模块进行交互。
  • PAM模块 :PAM服务模块位于/ usr / lib / security目录下。 这些模块允许在系统上一起或独立使用多种身份验证机制。

AIX中的PAM

从AIX V5.1 Ml01开始,PAM库/usr/lib/libpam.a包含在AIX发行版中。 此外,PAM库下还包含一组标准的PAM API。 但是,现有的身份验证应用程序无法使用PAM。

在AIX V5.2中,完全支持PAM。 PAM模块在/ usr / lib / security / PAM中作为LAM模块提供。 与该pam_aix服务模块一起,还提供了/etc/pam.conf文件。 应用程序可以使用PAM LAM模块进行身份验证。 需要在/usr/lib/security/methods.cfg文件中定义PAM模块以及用于身份验证和标识的LAM模块。

从AIX V5.3及更高版本开始,PAM已完全集成到所有AIX本机应用程序和命令中。 不再需要PAM LAM模块。 缺省的/etc/pam.conf文件与其他PAM服务模块一起提供。 通过将/etc/security/login.cfg文件中的auth_type属性更改为PAM_AUTH,也可以为整个系统启用PAM。

表1. PAM和LAM之间的区别
我是 PAM
执行身份验证和识别。 仅执行身份验证。
整个系统使用单一身份验证服务。 系统上的应用程序可以配置有多个身份验证服务。
LAM模块需要在/usr/lib/security/methods.cfg文件中定义。 PAM使用/etc/pam.conf文件定义应用程序服务。
LAM API在AIX安全性库中定义。 PAM API在/usr/lib/libpam.a库中定义。

PAM库

PAM库提供了一组应用程序接口(API)。 这些API使应用程序可以调用PAM模块并将信息传递给PAM模块。

下表提供了一些必需的API的说明:

API 描述
pam_start 建立用于用户身份验证的新PAM会话。 必须通过此调用设置初始PAM信息。
pam_authenticate 通过/etc/pam.conf文件中定义的PAM模块对用户信息进行身份验证。
pam_acct_mgmt 执行各种检查以验证用户帐户。 此例程检查用户帐户和密码的到期详细信息。 应根据pam_authenticate的返回类型使用此例程。
pam_setcred 更改或删除用户的身份验证凭据。 例如,如果用户想要从一个帐户切换到另一个帐户(例如su或swrole命令),则此例程主要用于更改当前PAM会话凭据。
pam_open_session 为经过身份验证的PAM用户创建一个新会话。
pam_end_session 关闭当前打开的PAM用户会话。
pam_end 结束现有的PAM身份验证会话。

/usr/lib/libpam.a库提供了一些其他API。 请参阅参考资料部分,以获取有关PAM库API的更多信息。

有关使用上述API的示例程序,请参见下载部分。

/etc/pam.conf文件的元素

/etc/pam.conf文件使用每种PAM模块类型的应用程序服务条目进行配置。 应用服务必须在带有特定控制标志的有效模块类型下定义。

/etc/pam.conf文件的格式为:

<service_name> <module_type><control_flag><module_path>[module_options] 
 
 
	#Authentication Management     
    
	login   auth    required        pam_aix   
	telnet  auth    required        pam_aix  
	
	#Account Management 
    
	login   account required        pam_aix 
	telnet  account required        pam_aix 
	
	#Password Management 
    
	login   password  required      pam_aix 
	telnet  password  required      pam_aix 
	
	#Session Management 
	login   session required        pam_aix 
	telnet  session required        pam_aix

service_name代表需要PAM服务的应用程序名称。 如果未在/etc/pam.conf文件中指定应用程序名称,则使用OTHER关键字跟随PAM模块。

Module_type指定用于服务的模块类型。 有效的模块类型为

  • 身份验证管理-身份验证
  • 帐户管理-帐户
  • 密码管理-密码
  • 会话管理-会话
类型 描述
认证 验证用户身份并设置,刷新或销毁凭据。
帐户 从身份验证模块识别后,确定用户帐户和后续访问的有效性。
密码 执行密码修改和相关属性管理。
会议 启动和终止用户会话。

Control_flag指定模块的堆叠行为。 有效标志是必需的,必需的,足够的和可选的。

描述
需要 堆栈中的所有必需模块都必须通过才能获得成功的结果。 如果一个或多个失败,则尝试所有必需的模块,但是将返回第一个失败的必需模块的错误。
必要的 与Required类似,不同之处在于如果必需模块发生故障,它将立即从必需或必需模块返回第一个故障代码。
足够 如果标记为足够的模块成功,并且之前没有必需的模块或足够的模块失败,则堆栈中所有剩余的模块将被忽略,并返回成功。
可选的 除非没有必需的模块并且没有成功的模块,否则结果将被忽略。

Module_path指定系统上的PAM服务模块路径。 该路径可以是绝对路径,也可以只是模块名称。 如果未指定绝对路径,则对于32位应用程序,假定为/ usr / lib / security,对于64位应用程序,则假定为/ usr / lib / security / 64。

Module_options指定PAM服务模块支持的选项列表。 一些常见的选项是:

选项 描述
调试 将调试信息记录到syslog中。
Nowarn 不显示错误消息。
try_first_pass 尝试输入以前输入的密码。 如果失败,则提示输入新的。
use_first_pass 使用以前输入的密码,不要提示输入新密码。

PAM模块

PAM服务模块是由PAM-SPI(PAM服务提供者接口)调用的一组可动态加载的对象,以提供特定类型的用户身份验证。 AIX当前提供一些PAM服务模块,这些模块提供上述模块类型中的至少一种。

所有提供的PAM服务模块的快速参考表是:

模块名称 描述
pam_aix 执行AIX样式认证。
pam_allow 为所有调用返回PAM_SUCCESS。
pam_allowroot 如果调用用户是root(uid = 0),则返回PAM_SUCCESS。
pam_ckfile 提供类似于/ etc / nologin的检查。
pam_permission 提供增强的/ etc / ftpusers类型检查。
pam_prohibit 返回所有调用的PAM失败代码。
pam_rhosts_auth 执行rhosts身份验证。

pam_aix模块支持身份验证,帐户,密码和会话管理模块类型。 可以在/etc/pam.conf文件中配置该模块,以验证所有数据库上用户的凭据。 pam_aix模块定义了一些SPI函数。 这些功能在内部与AIX安全功能进行映射,以处理不同目录下的用户管理任务。

如果指定的PAM句柄有效,则pam_allow模块仅针对所有调用返回PAM_SUCCESS。 对于pam_sm_authenticate,还必须提供用户。 系统管理员应谨慎使用此模块,因为它不提供真实的身份验证。 在大多数情况下,此模块应仅用于调试目的。

pam_allowroot模块需要调用应用程序的真实用户ID。 它应该是0(零)。 如果验证用户的UID为零,则只有pam_allowroot模块返回PAM_SUCCESS。 该模块通常应用作足够的模块,以允许root用户绕过身份验证或帐户管理检查。

pam_mkuserhome模块(如果尚不存在)在用户登录期间自动创建用户的主目录。 如果是会话模块,则应将此模块用作可选模块。 它不提供任何其他模块类型。 如果主目录已经存在,或者在系统上成功创建了主目录,它将返回PAM_SUCCESS。

pam_permission模块检查是否存在可选指定的文件,然后读取该文件以确定是否授予用户/组/拒绝其访问权限。 使用此模块,支持身份验证和帐户管理模块类型。 该模块支持以下选项:

  • 文件

    指定文件名的绝对路径以允许用户和组。 如果未指定文件,则读取/ etc / ftpusers。

    文件中的条目应遵循以下格式:

    [+|-][@]<name>

    哪里:

    • +授予访问权限。
    • -拒绝访问。
    • @表示名称是一个组
  • 发现

    缺省值为禁止,可选值为:

    参赛比赛行为
    允许通过 授予访问权限
    禁止,拒绝,失败 拒绝访问
  • 调试

    debug选项将调试信息记录到syslog文件中。

  • Nowarn

    此选项不显示警告信息。

pam_prohibit模块针对/etc/pam.conf文件中未指定的所有服务返回模块特定的故障。 系统管理员应谨慎使用此模块,因为它不提供真实的身份验证。 在大多数情况下,此模块应用于禁用模块类型或在OTHER服务中使用。 该功能与pam_allow模块相反。 这支持所有PAM模块类型。

pam_rhosts_module提供rhosts类型的身份验证工具,类似于rlogin,rsh和rexec之类的r-cmds。 该模块检查/etc/hosts.equiv中的用户名和主机名,然后检查$ HOME / .rhosts文件。 如果在文件中找不到匹配项,它将返回PAM_AUTH_ERR故障代码。 它支持认证PAM模块类型。

pam_ckfile模块基于文件的存在允许或拒绝身份验证。 该模块提供的功能类似于/ etc / nologin文件的历史行为。 如果指定的文件存在,则只有root用户可以进行身份​​验证。 该模块支持身份验证和帐户管理模块类型。 该模块可以识别文件,调试和nowarn选项。 选项的格式与上面相同。

结论

可以将AIX安全命令和应用程序配置为通过使用现有的可装入认证框架来调用PAM模块。 AIX支持AIX V5.1发行版中的PAM服务。 PAM已从AIX V5.3发行版完全集成到AIX中。 用户可以在其应用程序中使用PAM库API进行用户/组身份验证和帐户管理。 PAM还提供了将其现有身份验证机制与PAM服务模块集成的灵活性。


翻译自: https://www.ibm.com/developerworks/aix/library/au-aixpluggable/index.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值