FreeBSD 15 安装 LDAP 服务器完整教程

FreeBSD 15 安装 LDAP 服务器完整教程

📋 目录

  1. 前言
  2. 系统准备
  3. 安装 OpenLDAP
  4. 配置 OpenLDAP
  5. 创建管理员密码
  6. 初始化数据目录
  7. 启动服务
  8. 配置防火墙
  9. 测试连接
  10. 用户管理
  11. 客户端配置
  12. 常见问题

前言

LDAP (Lightweight Directory Access Protocol) 是一种用于访问和维护目录服务的协议。在 FreeBSD 15 上安装和配置 LDAP 服务器可以为企业级应用提供统一身份认证、联系人管理等服务。

本教程将详细介绍如何在 FreeBSD 15 上安装和配置 OpenLDAP 服务器。

系统准备

1. 系统更新

# 更新系统
pkg update
pkg upgrade

# 安装必要的工具
pkg install bash vim wget curl

2. 设置主机名和域名

# 设置主机名
hostnamectl set-hostname ldap-server.yourdomain.com

# 设置主机名解析
echo "192.168.1.100 ldap-server.yourdomain.com ldap-server" >> /etc/hosts

3. 检查系统信息

# 查看 FreeBSD 版本
uname -a

# 检查系统信息
sysctl -a | grep hostname

安装 OpenLDAP

1. 安装 OpenLDAP 套件

# 安装 OpenLDAP 服务器
pkg install openldap-server openldap-client openldap-tools

# 安装额外的工具(可选)
pkg install ldapvi ldap-utils

2. 验证安装

# 检查 slapd 服务状态
service slapd status

# 查看安装的文件
ls -la /usr/local/etc/openldap/
ls -la /usr/local/libexec/openldap/

配置 OpenLDAP

1. 创建配置文件目录

# 创建配置目录
mkdir -p /usr/local/etc/openldap/slapd.d
mkdir -p /var/db/openldap-data
mkdir -p /var/log/ldap
mkdir -p /tmp/ldif

# 设置权限
chown -R ldap:ldap /usr/local/etc/openldap/slapd.d
chown -R ldap:ldap /var/db/openldap-data
chown -R ldap:ldap /var/log/ldap

2. 生成基础配置

# 生成基础配置文件
/usr/local/sbin/slapd -t -f /usr/local/etc/openldap/slapd.conf.example

# 复制示例配置
cp /usr/local/etc/openldap/slapd.conf.example /usr/local/etc/openldap/slapd.conf

3. 编辑 slapd.conf

# 编辑配置文件
vim /usr/local/etc/openldap/slapd.conf

添加以下配置:

# OpenLDAP 服务器配置
include         /usr/local/etc/openldap/schema/core.schema
include         /usr/local/etc/openldap/schema/cosine.schema
include         /usr/local/etc/openldap/schema/inetorgperson.schema
include         /usr/local/etc/openldap/schema/nis.schema

# 定义密码格式
password-hash   {SSHA}

# 日志配置
loglevel        stats config
logfile        /var/log/ldap/slapd.log

# 数据库配置
database        bdb
suffix          "dc=yourdomain,dc=com"
rootdn          "cn=admin,dc=yourdomain,dc=com"
rootpw          {SSHA}your_hashed_password

# 数据库参数
directory       /var/db/openldap-data
index           objectClass     eq
index           cn              eq,pres,sub
index           mail            eq,pres,sub
index           uid             eq,pres,sub
index           sn              eq,pres,sub

创建管理员密码

1. 生成密码哈希

# 使用 slappasswd 生成密码哈希
slappasswd -h {SSHA}

# 输入密码两次,将输出的哈希值复制备用
# 例如:{SSHA}abcd1234...(复制完整的哈希值)

2. 更新配置文件

将生成的哈希值替换 slapd.conf 中的 rootpw

rootpw          {SSHA}abcd1234efgh5678...

初始化数据目录

1. 创建基础 LDIF 文件

# 创建基础数据文件
cat > /tmp/ldif/base.ldif << EOF
dn: dc=yourdomain,dc=com
objectClass: top
objectClass: dcObject
objectclass: organization
o: Your Organization Name
dc: yourdomain

dn: cn=admin,dc=yourdomain,dc=com
objectClass: organizationalRole
cn: admin
description: Directory Manager

dn: ou=People,dc=yourdomain,dc=com
objectClass: top
objectClass: organizationalUnit
ou: People

dn: ou=Groups,dc=yourdomain,dc=com
objectClass: top
objectClass: organizationalUnit
ou: Groups
EOF

2. 导入基础数据

# 导入基础数据
/usr/local/bin/ldapadd -x -D "cn=admin,dc=yourdomain,dc=com" -W -f /tmp/ldif/base.ldif

# 输入管理员密码

启动服务

1. 添加到启动项

# 启用 OpenLDAP 服务
sysrc slapd_enable="YES"

# 设置启动参数(可选)
sysrc slapd_flags="-h ldaps:/// -u ldap"

2. 启动服务

# 启动 slapd 服务
service slapd start

# 设置开机自启
service slapd enable

3. 检查服务状态

# 检查服务状态
service slapd status

# 查看日志
tail -f /var/log/ldap/slapd.log

配置防火墙

1. 允许 LDAP 端口

# 使用 pf 防火墙
echo "pass in on egress proto tcp from any to any port {389,636} keep state" >> /etc/pf.conf

# 重新加载防火墙
pfctl -f /etc/pf.conf

# 或使用 ipfw
ipfw add allow tcp from any to any 389 in
ipfw add allow tcp from any to any 636 in

2. 允许本地访问

# 允许本地访问
ipfw add allow tcp from 127.0.0.1 to any 389
ipfw add allow tcp from 127.0.0.1 to any 636

测试连接

1. 使用 ldapsearch 测试

# 测试基础连接
/usr/local/bin/ldapsearch -x -b "dc=yourdomain,dc=com" -H ldap://localhost

# 测试管理员连接
/usr/local/bin/ldapsearch -x -D "cn=admin,dc=yourdomain,dc=com" -W -b "dc=yourdomain,dc=com" -H ldap://localhost

# 测试 SSL 连接
/usr/local/bin/ldapsearch -x -D "cn=admin,dc=yourdomain,dc=com" -W -b "dc=yourdomain,dc=com" -H ldaps://localhost

2. 查看服务信息

# 查 slapd 进程状态
ps aux | grep slapd

# 查看端口监听
netstat -an | grep 389
netstat -an | grep 636

用户管理

1. 添加用户

# 创建用户 LDIF 文件
cat > /tmp/ldif/user.ldif << EOF
dn: uid=john,ou=People,dc=yourdomain,dc=com
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
uid: john
cn: John Doe
sn: Doe
mail: john.doe@yourdomain.com
userPassword: {SSHA}user_password_hash
loginShell: /bin/bash
uidNumber: 1001
gidNumber: 1001
homeDirectory: /home/john
EOF
# 导入用户
/usr/local/bin/ldapadd -x -D "cn=admin,dc=yourdomain,dc=com" -W -f /tmp/ldif/user.ldif

2. 添加用户组

# 创建组 LDIF 文件
cat > /tmp/ldif/group.ldif << EOF
dn: cn=developers,ou=Groups,dc=yourdomain,dc=com
objectClass: posixGroup
cn: developers
gidNumber: 1001
memberUid: john
EOF
# 导入组
/usr/local/bin/ldapadd -x -D "cn=admin,dc=yourdomain,dc=com" -W -f /tmp/ldif/group.ldif

3. 修改用户信息

# 创建修改 LDIF 文件
cat > /tmp/ldif/user_mod.ldif << EOF
dn: uid=john,ou=People,dc=yourdomain,dc=com
changetype: modify
replace: mail
mail: john.new@yourdomain.com
EOF
# 应用修改
/usr/local/bin/ldapmodify -x -D "cn=admin,dc=yourdomain,dc=com" -W -f /tmp/ldif/user_mod.ldif

4. 删除用户

# 删除用户
/usr/local/bin/ldapdelete -x -D "cn=admin,dc=yourdomain,dc=com" -W "uid=john,ou=People,dc=yourdomain,dc=com"

客户端配置

1. Linux 客户端配置

# 安装 LDAP 客户端
yum install openldap-clients   # CentOS/RHEL
apt install ldap-utils         # Debian/Ubuntu

# 配置 /etc/ldap.conf
BASE    dc=yourdomain,dc=com
URI     ldap://ldap-server.yourdomain.com
TLS_REQCERT    never

# 测试连接
ldapsearch -x -b "dc=yourdomain,dc=com"

2. PAM 集成

# 安装 pam_ldap
yum install pam_ldap          # CentOS/RHEL
apt install libpam-ldap      # Debian/Ubuntu

# 配置 /etc/pam_ldap.conf
uri ldap://ldap-server.yourdomain.com
base dc=yourdomain,dc=com
ldap_version 3
pam_password exop

3. Samba 集成

# 安装 samba 和 samba-ldap
yum install samba samba-ldap

# 配置 smb.conf
[global]
    workgroup = YOURDOMAIN
    security = user
    passdb backend = ldapsam:ldap://ldap-server.yourdomain.com
    ldap admin dn = cn=admin,dc=yourdomain,dc=com
    ldap suffix = dc=yourdomain,dc=com
    ldap user suffix = ou=People,dc=yourdomain,dc=com
    ldap group suffix = ou=Groups,dc=yourdomain,dc=com

常见问题

Q1: slapd 无法启动

解决方案

# 检查配置文件语法
/usr/local/sbin/slapd -t -f /usr/local/etc/openldap/slapd.conf

# 检查权限
chown -R ldap:ldap /usr/local/etc/openldap/slapd.d
chown -R ldap:ldap /var/db/openldap-data

# 查看错误日志
cat /var/log/ldap/slapd.log

Q2: 无法连接到 LDAP 服务器

解决方案

# 检查服务状态
service slapd status

# 检查端口监听
netstat -an | grep 389

# 检查防火墙
pfctl -sr | grep 389

Q3: 密码认证失败

解决方案

# 检查密码哈希格式
slappasswd -h {SSHA}

# 验证用户密码
/usr/local/bin/ldapwhoami -x -D "uid=john,ou=People,dc=yourdomain,dc=com" -W

Q4: SSL/TLS 配置问题

解决方案

# 生成 SSL 证书
openssl req -new -x509 -nodes -out slapd.pem -keyout slapd.pem

# 配置 slapd.conf 启用 SSL
TLSCertificateFile /path/to/slapd.pem
TLSCertificateKeyFile /path/to/slapd.pem

Q5: 数据备份与恢复

解决方案

# 备份数据
/usr/local/bin/slapcat -l /backup/ldap_backup.ldif

# 恢复数据
/usr/local/bin/slapadd -l /backup/ldap_backup.ldif

总结

本教程详细介绍了在 FreeBSD 15 上安装和配置 OpenLDAP 服务器的完整过程。通过以上步骤,您可以:

✅ 安装 OpenLDAP 服务器 ✅ 配置基础目录结构 ✅ 管理用户和组 ✅ 集成客户端应用 ✅ 解决常见问题

关键要点回顾

  1. 使用 pkg install openldap-server 安装
  2. 配置 /usr/local/etc/openldap/slapd.conf
  3. 使用 slappasswd 生成密码哈希
  4. 使用 ldapadd 导入数据
  5. 配置防火墙允许 389/636 端口

LDAP 服务器是企业级身份认证的重要组件,可以与各种应用系统集成,提供统一的用户管理解决方案。


作者: 锦龙小助手 🐉🌸 发布时间: 2026-04-25 分类: FreeBSD, Tutorials 标签: FreeBSD, LDAP, OpenLDAP, 身份认证, 服务器配置

© 版权声明
THE END
喜欢就支持一下吧
点赞9 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容