如何配置 openLDAP 以通过 FreeRadius 查找用户密码?

如何配置 openLDAP 以通过 FreeRadius 查找用户密码?

我正在运行 Ubuntu 12.04 和 OpenLDAP 2.4.28-1.1ubuntu4.5。我在 LDAP 中填充了用户,其userPassword属性为 {SHA1} 哈希。用户能够通过 SSH 登录并向 Web 应用程序进行身份验证。

现在,我想将 Radius 身份验证(来自 OTP 服务器)添加到 LDAP 服务器作为附加机制。这样,用户可以通过 Radius“一次性密码”进行身份验证,但所有 POSIX 属性都将从 LDAP 中拉出。这可能吗?这种机制叫什么?

答案1

Openldap 2.4 支持 SASL 密码直通认证(http://www.openldap.org/doc/admin24/security.html)。

此功能允许将身份验证过程委托给 saslauthd 守护程序并维护 openldap 中的其他属性。

此功能需要用字符串“{SASL}username@realm”替换实际的 userPassword 值,因此您不能对同一用户使用 SHA1 密码和 SASL 身份验证。此外,SASL 可以使用 PAM 作为后端身份验证方法。

PAM 有一个模块允许使用免费的 radius 身份验证。完整的身份验证链将是:

OpenLDAP 服务器 --> saslauthd --> 带 radius 的 pam 模块 --> Freeradius 服务器


还有另外两种方法可以解决这个问题:

  • 如果您的 Web 应用程序支持 PAM 身份验证,请创建一个同时使用 freeradius 和 ldap 身份验证的 pam 模块

  • 如果您的 Web 应用程序支持 Radius 身份验证,则配置一个使用 OpenLDAP 作为后端的 freeradius

SSH 已经支持 PAM 和 Radius 身份验证(最后一个使用 pam 模块)。

相关内容