针对 Kerberos 的身份验证和针对 LDAP 目录的授权对我有用。现在我正在使用sssd在 Debian Buster 上寻找客户端设置。
我开始使用nss-pam-ldapd 进行 LDAP 身份验证,在 OpenLDAP 服务器上使用SASL 代理授权,并使用ccreds缓存 OpenLDAP 凭据。但是因为我一直使用systemd及其环境,传统的设置不太适合它,我遇到了一些问题OpenLDAP 服务器。
正因为如此,我查看了sssd,发现它可以一体完成,而且它基于systemd并且还使用dbus进程间通信。所以我决定改用它。但在 Debian 上,推荐的软件包sssd会安装所有可能的服务,例如用于活动目录和其他我不需要的东西。我想让我的客户在没有未使用的软件的情况下尽可能精简,所以我的问题是:
我必须安装哪些 Debian 软件包才能使用sssd对具有 Kerberos SASL/GSSAPI 的 OpenLDAP 服务器进行单点登录,以及如何配置它?
抽象的
经过一些尝试和错误后,我发现我需要一个用于 gssapi 的包和四个用于 sssd 的包。我想集中通用配置,因此我使用本地私有 dns 服务器进行名称、服务器名称和服务名称解析。所以首先我在客户端上检查这个。如果您在 DNS 服务器上没有它,您可以在每个客户端上将其全部定义为本地。我已经评论过了。为了避免安装不需要的附加软件包,我总是为 Debian **apt** 使用选项 `--no-install-recommends`。准备 Kerberos 客户端
首先确保你有一个有效的 `/etc/krb5.keytab` 和 `sudo klist -ke`。如果不可用,则创建一个:在安装了 GNOME 或 Xfce 等图形用户界面后,我遇到了名称解析问题。sssd无法
example.com
使用我的扩展 DNS 名称解析来解析 DNS 域,因此它找不到 Kerberos 和 LDAP 服务器,并且登录失败并显示错误消息Authentication failure
。这有时可能会起作用,因为缓存的登录数据但无效的 kerberos 票证数据1970-01-01
显示为klist
. 根据Debian 主机名解析,您应该有这样的条目/etc/hosts
:如果您为名称服务运行nscd缓存,请卸载它。我们不能使用它,因为sssd也会这样做。
安装针对 Kerberos 和测试进行身份验证所需的 SASL/GSSAPI 模块和帮助程序:
安装sssd
我们只需要四个包就可以为 ldap、krb5、name service 和 pam 提供所有需要的服务:
唯一剩下的就是配置
/etc/sssd/sssd.conf
. 我用这个:不要忘记保护 sssd.conf,否则 sssd 将无法启动:
检查操作系统是否从 ldap 目录中获取帐户信息。确保查询到的用户帐号只在 ldap 目录中,不在本地文件中。查询的来源由用户 ID 后面的字符指示。
确保你得到
:*:
.为登录设置 pam 身份验证:
并使用新用户检查登录:
要测试 sssd.conf 中的设置,您必须知道 sssd 正在缓存许多数据,因此更改不会立即生效。这非常令人困惑。所以我在
/var/lib/sss/db/
修改 sssd.conf 后删除了带有缓存信息的文件。我用这个单线作为根: