For the complete documentation index, see llms.txt. This page is also available as Markdown.

LDAP

概述

LDAP(Lightweight Directory Access Protocol) 是一种灵活的、可通过网络访问的目录服务,广泛用于集中管理身份、认证与配置信息。它支持细粒度访问控制、加密传输与可扩展的 schema。

需要明确的是,LDAP 不同于 YP(NIS)

  • YP 是较老的、基于 SunRPC 的协议,包含在 OpenBSD 基本系统中。

  • LDAP 是可扩展的工业标准协议(RFC 4511),设计为通过 TCP 运行,可选 TLS。

  • OpenBSD 基本系统中包含 LDAP 服务器。可通过软件包获得 OpenLDAP 支持。

LDAP 常用于需要安全集中管理用户、组、主机及其他实体的环境。本章介绍如何在 OpenBSD 上搭建并运行 OpenLDAP 服务器、配置客户端工具,以及可选地与系统认证集成。

安装

安装 OpenLDAP 服务器与客户端工具:

# pkg_add openldap-server openldap-client

此命令会提供 slapd(8) 守护进程以及 ldapaddldapmodifyldapsearchslappasswd 等工具。

配置与数据库目录位于:

  • /etc/openldap/:配置文件(若使用旧版 slapd.conf

  • /var/openldap-data/:后端数据库

  • /etc/openldap/slapd.d/:动态配置树(现代默认方式)

配置

OpenLDAP 有两种配置方式:

  1. 静态配置,通过 /etc/openldap/slapd.conf(更简单,但已弃用)

  2. 动态配置,通过 cn=config 后端

本章为清晰起见使用静态方式。生产环境如有需要,应迁移到动态配置。

创建配置文件

/etc/openldap/slapd.conf 示例:

使用 slappasswd 生成安全的哈希密码:

将结果填入 rootpw

创建数据库目录:

运行服务器

手动启动服务器进行测试:

要在启动时启用,将以下内容添加到 /etc/rc.local

或者使用自定义 rc.d 脚本以集成 rcctl

添加初始条目

为基础域创建 LDIF 文件:

添加条目:

按提示输入管理员密码。

搜索与查询

搜索目录:

在特定子树中查找用户:

如有需要,用 -D-W 以绑定用户身份认证。

TLS 加密

LDAP 可在加密或非加密模式下运行。要保护连接:

  1. /etc/ssl/openldap/ 下创建证书与私钥

  2. slapd.conf 中添加以下内容:

  1. 重启 slapd 并使用 ldaps:// 或 StartTLS 连接:

确保防火墙放行 636 端口(LDAPS)或 389 端口(StartTLS)。

与 PAM 和 NSS 集成

LDAP 认证可通过 nsswitch.conflogin.conf 集成,但 OpenBSD 默认不支持 PAM。

可考虑通过 nsswitch 使用 nss_ldap 等外部工具,或运行 nslcd 等本地辅助程序。

此集成在 OpenBSD 上并不简单,应谨慎处理。

OpenBSD 标准的 login(1) 不支持直接 LDAP 认证。对更高级的集成,在非 OpenBSD 系统上可能需要代理认证服务(如 Linux 上的 sssdpam_ldap)。

防火墙注意事项

仅在内网接口上允许访问所需 LDAP 端口的 TCP 流量:

在未配备加密、严格 ACL 与认证机制的情况下,切勿将 LDAP 服务暴露到公共互联网。

YP 与 LDAP 对比

特性
YP (NIS)
LDAP

协议

SunRPC

TCP(RFC 4511)

基本系统支持

包含在 OpenBSD 中

需要软件包

传输

不加密

支持 TLS 与 StartTLS

访问控制

无(基本映射过滤)

ACL、认证、TLS

schema 支持

扁平的类 Unix 映射

可扩展的对象 schema

推荐用途

小型受信任局域网

安全的身份基础设施

最后更新于