我最近设置了一个服务器自由RADIUS对我的某些设备上的管理员登录进行身份验证和跟踪。
我正在考虑使用 pam_auth_radius 模块让我的 Linux 和 FreeBSD 机器通过 RADIUS 进行身份验证。我目前正在使用 Ubuntu 10.04 虚拟机进行测试。此外,我目前正在测试仅使用 RADIUS 验证远程 SSH 用户,我希望所有身份验证在某个时候都以这种方式完成。
根据网上的说明,我安装了验证半径并在 /etc/pam.d/sshd 中添加一行引用该模块,并将我的服务器地址和共享机密添加到 /etc/pam_radius_auth.conf。
完成此操作后,我可以通过 RADIUS 进行身份验证...但是,只有我已添加到测试机器(使用 adduser)的用户才能进行身份验证。例如,用户“cory”是有效的 RADIUS 用户,RADIUS 返回“接受”,但在我尝试通过 ssh 登录时,我不断收到“权限被拒绝”的提示,直到我“adduser cory”。
我是否需要将每个管理员用户添加到每个服务器?我知道我可以创建未设置密码的用户,因此这实际上不是一个安全问题,但如果我仍然需要在每个设备上进行帐户管理,那么这似乎就违背了拥有中央身份验证服务器的意义。
有没有办法动态创建临时用户/目录/等?或者可以将通过 RADIUS 进行身份验证的用户映射到现有帐户,从而无需创建每个用户?
答案1
实际情况是,如果没有其他所需的结构,Linux 系统就没有关于用户“cory”的任何信息。例如 UID/GID、shell、主目录等等。
您可以设置本地用户帐户,然后告诉 PAM 检查 RADIUS 的有效密码。
您真正想要做的是设置 LDAP。这将允许您在中央数据库中定义完整的 Unix 用户帐户。然后,您将配置 RADIUS 服务器,以便针对可以使用它的设备的 LDAP 数据库进行验证。