![使用 pam_listfile.so 进行 Radius 身份验证](https://linux22.com/image/4700/%E4%BD%BF%E7%94%A8%20pam_listfile.so%20%E8%BF%9B%E8%A1%8C%20Radius%20%E8%BA%AB%E4%BB%BD%E9%AA%8C%E8%AF%81.png)
我已经在我的机器上设置了 Radius 身份验证(作为客户端 - 尚未测试)。
pam radius conf 文件具有共享秘密等。radius 身份验证可以潜在地对组织中的每个用户进行身份验证(我不控制身份验证服务器) - 10000 个用户左右。
我还使用允许项目作为组的含义另外设置了 pam_listfile.so 。
我想要完成的任务如下:
- 拥有一名本地管理员用户(在 admin 组和 /etc/passwd 中)。
- 拥有不在 /etc/passwd 中但通过 radius 进行身份验证的其他用户(我为他们设置了 pam_mkhomedir.so ,以便他们在首次登录时可以获得合理的主目录)。这是我想要允许访问机器的白名单。
- 这些附加用户是一些本地定义的组的成员(参见下文 - group1、group2 等)。
- 应拒绝所有不属于这些组成员的用户进行身份验证。
我在 /etc/passwd 中有一个本地用户(参见上面的 1)。该用户位于名为 admin 的组中,该组是 sshd.allow 文件中的组之一。其中包含:
组1
组2
组3
行政
所有这些组都在 /etc/group 中定义并具有某些成员。
当我尝试与另一个用户(不在 /etc/passwd 中,但是是 group1 的成员)进行身份验证时,我发现身份验证失败。我已经尾随了 auth.log,它似乎表明我的机器确实甚至不尝试针对 Radius 服务器验证此用户的身份。
我从普通的 Debian 设置开始,只添加了与 pam_radius、pam_listfile 和 pam_mkhomedir 对应的行。我没有碰过任何其他东西。
因此,pam 配置中的某些默认设置可能会搞乱(可能是一个错误的 auth required 指令,该指令假定基于本地 /etc/passwd 的身份验证?)。或者至少这是我的猜测。 auth.log 将提供的用户名(甚至在我通过 ssh 输入密码之前)引用为无效用户。
我的问题是 - 做我想做的事情是否可行(见上文)?如果是这样,我将发布配置详细信息以获取您调试此问题的帮助。