首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用tacacs+进行Linux认证/授权的pam_tacplus

使用tacacs+进行Linux认证/授权的pam_tacplus
EN

Stack Overflow用户
提问于 2015-02-20 16:17:56
回答 2查看 5.7K关注 0票数 1

我使用TACACS+来使用pam_tacplus.so PAM模块对pam_tacplus.so用户进行身份验证,它的工作原理没有问题。

我已经修改了pam_tacplus模块以满足我的一些自定义需求。

我知道默认情况下,TACACS+没有任何方法支持linux组或对linux命令的访问级别控制,但是,我想知道是否可以从TACACS+服务器端传递一些信息,让pam_tacplus.so模块允许/拒绝,或者从pam模块本身动态修改用户组。

示例:如果我可以将priv-lvl号从服务器传递到客户端,并且可以用于PAM模块的某些决策。

PS:我更喜欢一种不涉及服务器端代码修改的方法,所有修改都应该在Linux端(即pam_tacplus模块)进行。

谢谢你的帮助。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-02-24 14:58:04

最后我让它起作用了。

问题1:

我面临的问题是,很少有文档可用于为非CISCO设备配置TACACS+服务器。

问题2:

我正在使用的tac_plus版本

代码语言:javascript
复制
tac_plus -v
tac_plus version F4.0.4.28

似乎不支持

代码语言:javascript
复制
service = shell protocol = ssh 

选项在tac_plus.conf文件中。

所以最终我用了

代码语言:javascript
复制
service = system  {
                default attribute = permit
                priv-lvl = 15
        }

在客户端(pam_tacplus.so),

我在授权阶段发送了AVP service=system (Pam_acct_mgmt),这迫使服务返回在配置文件中定义的priv-lvl,用于设备用户的权限级别。

注意:在一些文档中,提到不再使用service=system。因此,此选项可能不适用于CISCO设备。

HTH

票数 2
EN

Stack Overflow用户

发布于 2015-02-24 08:36:23

根据您打算如何实现这一点,PAM可能不足以满足您的需求。来自TACACS+的特权级别不是‘身份验证’步骤的一部分,而是‘授权’步骤的一部分。如果您使用的是pam_tacplus,那么该授权将作为PAM中的“account”(也称为pam_acct_mgmt)步骤的一部分进行。然而,不幸的是,*nix系统无法在这里进行细粒度的控制--您可能能够基于无效的“服务”、“协议”,甚至是诸如“主机”或“tty”等细节拒绝访问,但可能不会超过这一点。(priv_lvl是请求的一部分,而不是响应,pam_tacplus总是发送‘0’)。

如果您想改变*nix系统上的特权,您可能希望在该环境功能中工作。我的建议是将分组作为一种产生一种基于角色的访问控制的手段。如果希望这些内容存在于TACACS+服务器上,则需要引入有意义的自定义AVP,然后将它们与用户关联起来。

您可能需要一个NSS (名称服务交换机)模块来完成这一任务--例如,当您到达PAM时,OpenSSH已经确定您的用户是“伪造”的,并向服务器发送一个类似的假密码。使用NSS模块,您可以根据来自TACACS+服务器的AVP为用户填充“passwd”记录。有关NSS的更多细节可以在glibc关于"名称服务交换机“的文档中找到。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28633496

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档