在香港 VPS 服务器上的 **CentOS 7** 系统中搭建 OpenLDAP,可以通过以下步骤完成。
## **一、安装前的准备工作**
1. **更新系统**
- 确保系统已更新到最新状态:
```bash
sudo yum update -y
```
2. **设置主机名**
- 确保服务器有一个合适的主机名(建议使用 FQDN 格式,例如 `ldap.example.com`):
```bash
sudo hostnamectl set-hostname ldap.example.com
```
3. **安装必要的软件包**
- 安装一些必要的工具:
```bash
sudo yum install -y epel-release net-tools wget vim
```
---
## **二、安装 OpenLDAP 和依赖组件**
1. **安装 OpenLDAP 服务**
- 使用 `yum` 安装 OpenLDAP 服务和相关工具:
```bash
sudo yum install -y openldap openldap-servers openldap-clients
```
2. **启动并启用 OpenLDAP 服务**
- 启动 OpenLDAP 服务:
```bash
sudo systemctl start slapd
```
- 设置开机自启动:
```bash
sudo systemctl enable slapd
```
3. **验证 OpenLDAP 服务是否正常运行**
- 使用以下命令检查 OpenLDAP 服务状态:
```bash
sudo systemctl status slapd
```
4. **安装 OpenLDAP 配置工具**
- 安装 `ldap-utils` 和其他配置工具:
```bash
sudo yum install -y openldap-servers-sql openldap-devel
```
---
## **三、初始化 OpenLDAP**
1. **生成 OpenLDAP 配置文件**
- 初始化 OpenLDAP 配置文件:
```bash
sudo cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
sudo chown ldap:ldap /var/lib/ldap/DB_CONFIG
```
2. **设置管理员密码**
- 使用 `slappasswd` 工具生成管理员密码的哈希值:
```bash
slappasswd
```
- 输入密码并记下生成的哈希值,例如:
```
{SSHA}5d2e8c2a4b4f5c6a2d5e8c2a4b4f5c6a2d5e8c2a
```
3. **配置管理员密码**
- 编辑 OpenLDAP 的初始化配置文件 `/etc/openldap/slapd.d/cn=config/olcDatabase={2}hdb.ldif`:
```bash
sudo vim /etc/openldap/slapd.d/cn=config/olcDatabase={2}hdb.ldif
```
- 找到类似以下内容:
```
olcRootPW: <old_password_hash>
```
- 替换为生成的密码哈希值:
```
olcRootPW: {SSHA}5d2e8c2a4b4f5c6a2d5e8c2a4b4f5c6a2d5e8c2a
```
4. **重启 OpenLDAP 服务**
- 使更改生效:
```bash
sudo systemctl restart slapd
```
---
## **四、添加基础 LDAP 数据**
1. **创建基本的 LDAP 数据结构**
- 创建一个基础的 LDAP 数据文件,例如 `/root/base.ldif`:
```bash
vim /root/base.ldif
```
- 内容如下(替换 `example.com` 和 `dc=example,dc=com` 为你的实际域名):
```
dn: dc=example,dc=com
objectClass: top
objectClass: dcObject
objectClass: organization
o: Example Organization
dc: example
dn: cn=admin,dc=example,dc=com
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator
userPassword: {SSHA}5d2e8c2a4b4f5c6a2d5e8c2a4b4f5c6a2d5e8c2a
```
2. **导入 LDAP 数据**
- 使用 `ldapadd` 将基础数据导入 LDAP:
```bash
ldapadd -x -D "cn=admin,dc=example,dc=com" -W -f /root/base.ldif
```
- 系统会提示输入管理员密码(即前面设置的密码)。
3. **验证数据导入是否成功**
- 使用以下命令查询:
```bash
ldapsearch -x -b "dc=example,dc=com" -D "cn=admin,dc=example,dc=com" -W
```
---
## **五、配置防火墙**
1. **允许 LDAP 服务端口**
- 默认情况下,LDAP 使用以下端口:
- **389**:普通 LDAP
- **636**:LDAPS(加密的 LDAP)
- 配置防火墙允许这些端口:
```bash
sudo firewall-cmd --add-port=389/tcp --permanent
sudo firewall-cmd --add-port=636/tcp --permanent
sudo firewall-cmd --reload
```
2. **验证端口是否开启**
- 使用 `netstat` 或 `ss` 查看端口是否监听:
```bash
netstat -tuln | grep 389
```
---
## **六、(可选)配置 LDAPS 加密**
如果需要加密通信,可以为 OpenLDAP 配置 SSL/TLS。
1. **生成证书**
- 使用 `openssl` 生成自签名证书,或者从证书机构获取正式证书:
```bash
openssl req -new -x509 -days 365 -nodes -out /etc/openldap/certs/ldap.pem -keyout /etc/openldap/certs/ldap.key
chmod 600 /etc/openldap/certs/ldap.key
```
2. **配置 OpenLDAP 使用证书**
- 编辑 `/etc/openldap/slapd.d/cn=config.ldif`,添加以下内容:
```
olcTLSCertificateFile: /etc/openldap/certs/ldap.pem
olcTLSCertificateKeyFile: /etc/openldap/certs/ldap.key
```
3. **重启 OpenLDAP 服务**
- 使更改生效:
```bash
sudo systemctl restart slapd
```
4. **验证 LDAPS 是否生效**
- 使用以下命令测试 LDAPS:
```bash
ldapsearch -H ldaps://localhost -x -b "dc=example,dc=com"
```
---
## **七、管理 OpenLDAP**
1. **使用命令行管理**
- 常用命令:
- 添加条目:
```bash
ldapadd -x -D "cn=admin,dc=example,dc=com" -W -f file.ldif
```
- 查询条目:
```bash
ldapsearch -x -b "dc=example,dc=com"
```
- 删除条目:
```bash
ldapdelete -x -D "cn=admin,dc=example,dc=com" -W "dn=cn=user,dc=example,dc=com"
```
2. **使用图形化工具**
- 安装 **phpLDAPadmin** 或其他 LDAP 管理工具(如 Apache Directory Studio)来管理 LDAP 数据。
---
## **八、总结**
通过以上步骤,你已经在香港VPS服务器的 CentOS 7 上成功搭建了 OpenLDAP 服务,并完成了基础配置。如果需要更高级的功能(如用户认证、分布式 LDAP 等),可以进一步扩展配置。
- Tags:
- 香港VPS服务器,香港VPS,VPS服务器