在企业或学校环境中,如果有多台Linux服务器,每台服务器都要单独管理用户账号和密码,不仅繁琐还容易出错。这时,Linux网络目录服务就派上用场了!通过部署目录服务(如LDAP),我们可以实现集中式用户认证与管理,让所有服务器共用一套账号体系。
本教程将带你从零开始,在一台CentOS 7/8或Ubuntu系统上安装并配置OpenLDAP——这是最常用的开源LDAP实现。即使你是Linux小白,只要按步骤操作,也能成功搭建属于自己的网络目录服务。
什么是LDAP?
LDAP(Lightweight Directory Access Protocol,轻量级目录访问协议)是一种用于访问和维护分布式目录信息服务的协议。它常被用来存储用户信息、组织结构、设备配置等“只读”或“低频修改”的数据。
准备工作
你需要:
- 一台运行CentOS 7/8 或 Ubuntu 20.04+ 的服务器(本教程以CentOS 7为例)
- root权限或sudo权限
- 基本的Linux命令行操作知识
第一步:安装OpenLDAP
在CentOS 7中,使用yum安装:
sudo yum install -y openldap openldap-servers openldap-clients 在Ubuntu中,则使用apt:
sudo apt updatesudo apt install -y slapd ldap-utils 第二步:设置管理员密码
OpenLDAP需要一个管理员账户(通常称为 rootdn)。我们先生成一个加密密码:
slappasswd 执行后会提示你输入密码,例如输入 mypassword,系统会输出类似:
{SSHA}AbcDefGhiJklMnoPqrStuVwxYz1234567890== 请复制这串加密字符串,后面会用到。
第三步:配置LDAP数据库
创建一个配置文件 db.ldif,内容如下(请根据你的域名修改 dc=example,dc=com):
# db.ldifdn: olcDatabase={2}hdb,cn=configchangetype: modifyreplace: olcSuffixolcSuffix: dc=example,dc=com-replace: olcRootDNolcRootDN: cn=admin,dc=example,dc=com-replace: olcRootPWolcRootPW: {SSHA}AbcDefGhiJklMnoPqrStuVwxYz1234567890== 注意:将上面的 {SSHA}... 替换为你自己生成的密码字符串。
然后应用配置:
sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f db.ldif 第四步:导入基础目录结构
创建一个基础LDIF文件 base.ldif:
# base.ldifdn: dc=example,dc=comobjectClass: topobjectClass: dcObjectobjectClass: organizationo: Example Organizationdc: exampledn: ou=People,dc=example,dc=comobjectClass: organizationalUnitou: Peopledn: ou=Groups,dc=example,dc=comobjectClass: organizationalUnitou: Groups 导入该结构:
sudo ldapadd -x -D "cn=admin,dc=example,dc=com" -W -f base.ldif 系统会提示你输入管理员密码(即之前设置的明文密码,如 mypassword)。
第五步:测试LDAP服务
使用 ldapsearch 命令测试是否能查询到数据:
ldapsearch -x -b "dc=example,dc=com" -D "cn=admin,dc=example,dc=com" -W 如果看到返回的目录条目,说明你的Linux网络目录服务已成功运行!
后续建议
现在你已经掌握了基本的OpenLDAP安装和配置。下一步可以:
- 添加真实用户(创建新的LDIF文件并ldapadd)
- 配置TLS加密通信(防止密码明文传输)
- 在其他Linux服务器上配置NSS/PAM,使其通过LDAP认证用户(实现Linux用户集中管理)
通过这套系统,你可以轻松管理成百上千台服务器的用户账号,大幅提升运维效率。希望这篇LDAP配置教程对你有所帮助!
关键词:Linux网络目录服务、LDAP配置教程、OpenLDAP安装、Linux用户集中管理
