我们所有的网络设备都使用 TACACS 进行身份验证。我有一台运行 18.04.2 LTS 的 Ubuntu 服务器,我想利用现有的 TACACS 服务器对该服务器进行身份验证。因此,登录请求将发送到 TACACS 服务器,而不是创建本地用户帐户。
我只想使用 TACACS 服务器进行身份验证。我计划使用本地授权来确定用户在经过身份验证后可以/不能做什么。实现此目的的最佳方法是什么?大多数在线指南都提供了有关如何使用 Ubuntu Server 作为 TACACS 服务器的步骤,但我想将其用作客户端。
答案1
Linux 上的密码验证使用 PAM 模块。TACACS+ 的模块被调用,pam_tacplus
并且似乎有两个独立的分支:
但是,PAM 仅确定哪个用户名已经通过身份验证,但无法检索该用户的 Unix 帐户信息(UID、GID、homedir、shell),而系统在无法执行交互式身份验证的情况下也经常需要这些信息。
因此,除非账户在服务器上的 /etc/passwd 中列出,否则你还需要一个切换器可以提供这些数据的模块,例如如果您有 LDAP 服务器,则为 libnss_ldap (nslcd) 或 libnss_sss (SSSD),如果您有 NIS/YP,则为 libnss_nis。