我正在使用 TACACS+ 通过 pam_tacplus.so PAM 模块对 Linux 用户进行身份验证,并且一切运行正常。
我已经修改了 pam_tacplus 模块以满足我的一些自定义要求。
我知道默认情况下,TACACS+ 没有任何方法可以支持 Linux 组或通过 Linux bash 命令进行访问级别控制,但是,我想知道是否有任何方法可以从 TACACS+ 服务器端传递一些信息,以让 pam_tacplus.so 模块可用于允许/拒绝或动态修改用户组[从 pam 模块本身]。
示例:如果我可以将 priv-lvl 编号从服务器传递到客户端,并且可以使用该编号在 PAM 模块进行一些决策。
PS:我更喜欢一种不需要在服务器端[代码]进行修改的方法,所有修改都应该在 Linux 端完成,即 pam_tacplus 模块。
谢谢你的帮助。
答案1
最终我让它工作了。
问题 1:
我面临的问题是,可用于为非 CISCO 设备配置 TACACS+ 服务器的文档非常少。
问题 2:
我正在使用的 tac_plus 版本
tac_plus -v
tac_plus version F4.0.4.28
似乎不支持
service = shell protocol = ssh
tac_plus.conf 文件中的选项。
所以最终我用
service = system {
default attribute = permit
priv-lvl = 15
}
在客户端(pam_tacplus.so),
我在授权阶段(pam_acct_mgmt)发送了 AVP service=system,这强制服务返回配置文件中定义的 priv-lvl,我将其用于用户的设备权限级别。
注意:有些文档提到 service=system 不再使用。因此此选项可能不适用于 CISCO 设备。
高血压