OpenBSD 上的 LDAP 身份验证

OpenBSD 上的 LDAP 身份验证

我正在尝试让 OpenBSD 服务器使用我的家庭网络的其余部分使用的同一 LDAP 服务器来对用户进行身份验证。虽然“获取密码”按预期列出了 LDAP 服务器中的用户,但我无法以其中任何一个用户身份登录。

我的 /etc/login.conf 有以下内容:

#
# ldap
#
ldap:\
        :auth=-ldap:\
        :x-ldap-server=kaitain.cory.albrecht.name,389,plain:\
        :x-ldap-basedn=ou=People,dc=cory,dc=albrecht,dc=name:\
        :x-ldap-filter=(&(objectclass=posixAccount)(uid=%u)):\
        :tc=default:

但是当我尝试测试用户时,我得到以下信息:

root@opensecrets:/etc# /usr/libexec/auth/login_-ldap -d -s login cory ldap
Password: 
load_ssl_certs says:
        cacert none
        cacertdir none
        usercert none
        userkey none
parse_server_line buf = host
parse_server_line port == NULL, will use default
parse_server_line mode == NULL, will use default
host host, port 389, version 3
setting cert info
clearing ssl set
ldap_open(host, 389) failed
host failed, trying alternates
ldap_open failed
reject

再加上日志中的这些行

Dec 17 15:30:19 <auth.warn> opensecrets.cory.albrecht.name opensecrets login_ldap: ldap_open(host, 389) failed
Dec 17 15:30:19 <auth.warn> opensecrets.cory.albrecht.name opensecrets login_ldap: ldap_open failed

让我想到 /etc/login.conf 的 ldap 部分是如何没有被读取的。在 login.conf 中将端口 389 更改为 38389 不会更改伪造/测试登录的输出。

我完全不知道如何确定导致 login.conf 无法完全解析的原因,我有点希望这是一件容易的事情,但我会因为忘记它而感到非常尴尬。

答案1

事实证明,几乎所有引导您安装 login_ldap、ypldap 和 ypind 的网页都遗漏了一件事。因为 /etc/login.conf 是 termcap 格式的文件,所以您需要对 login_ldap 例程执行“cap_mkdb login.conf”才能在生成的 /etc/login.conf.db 文件中实际查看您的配置。这与其他使用 termcap 格式但不需要将其编译成数据库文件的程序不同,例如 rtadvd。

包含此步骤的唯一网页是这个来自塔尔马斯卡(链接现已失效),而几乎所有其他演练似乎都源自Helion Prime 的这个(链接现已失效)其中没有提到您需要使用 cap_mkdb。

相关内容