1.安装openLDAP
- centos中执行如下命令
yum -y install openldap compat-openldap openldap-clients openldap-servers openldap-servers-sql openldap-devel migrationtools
2. 生成管理员密码
# 执行如下命令后,生成的是对密码进行加密后的字符串
slappasswd -s admin123
3. 修改olcDatabase={2}hdb.ldif文件
# 从OpenLDAP2.4.23版本开始所有配置数据都保存在/etc/openldap/slapd.d/中,已无slapd.conf作为配置文件使用了
vim /etc/openldap/slapd.d/cn=config/olcDatabase={2}hdb.ldif
#修改
olcSuffix: dc=demo,dc=com
olcRootDN: cn=admin,dc=demo,dc=com
#添加
olcRootPW: {SSHA}X6iQ+/u82kxjVA1z87tQYnhI8XUDnU3N
保存并退出
4. 修改olcDatabase={1}monitor.ldif文件
vim /etc/openldap/slapd.d/cn=config/olcDatabase={1}monitor.ldif
#修改管理员信息
olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=extern
al,cn=auth" read by dn.base="cn=admin,dc=demo,dc=com" read by * none
保存并退出
5. 验证配置
slaptest -u
出现如下所示则显示验证完成
6. 启动OpenLDAP
# 启动OpenLDAP
systemctl start slapd
# 查看OpenLDAP的状态
systemctl status slapd
2. 配置 OpenLDAP
- 配置OpenLDAP数据库
# OpenLDAP默认使用的数据库是BerkeleyDB,现在来开始配置OpenLDAP数据库,使用如下命令:
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
chown ldap:ldap -R /var/lib/ldap
chmod 700 -R /var/lib/ldap
ll /var/lib/ldap/ # /var/lib/ldap/就是BerkeleyDB数据库默认存储的路径。
2. 导入基本Schema
# 分别执行如下命令
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif
3. 修改migrate_common.ph文件
# migrate_common.ph文件主要是用于生成ldif文件使用。
vim /usr/share/migrationtools/migrate_common.ph
修改信息如下:
$DEFAULT_MAIL_DOMAIN = "demo.com";
$DEFAULT_BASE = "dc=demo,dc=com";
$EXTENDED_SCHEMA = 1;
4. 重启服务
systemctl restart slapd
到这步便完成了OpenLDAP的配置相关工作了
3. 添加用户和组
在我们安装配置好对应OpenLDAP相关服务后,该服务下是默认没有普通用户,只有一个管理员用户,如我们上述配置的cn=admin,dc=demo,dc=com
下面我们介绍一下如何创建用户和组
- 创建用户和组
# 新增两个用户和两个组,分别执行如下命令,并按提示设置相关信息
groupadd ldapgroup1
groupadd ldapgroup2
useradd -g ldapgroup1 ldapuser1
useradd -g ldapgroup2 ldapuser2
passwd ldapuser1
passwd ldapuser2
2. 写入到文件
# 添加的用户和用户组属性信息提取出来
grep "ldapuser" /etc/passwd > /root/users
grep "ldapgroup" /etc/group > /root/groups
- 生成ldif文件
这里使用migrate_passwd.pl文件生成要添加用户和用户组的ldif
命令如下:
/usr/share/migrationtools/migrate_passwd.pl /root/users > /root/users.ldif
/usr/share/migrationtools/migrate_group.pl /root/groups > /root/groups.ldif
验证是否设置成功
cat users.ldif
cat groups.ldif
4. 新建基础数据库ldif文件
vim /root/base.ldif
# 注意:ldif 文件以空行作为用户分割,格式要保持一致。
dn: dc=demo,dc=com
o: demo com
dc: demo
objectClass: top
objectClass: dcObject
objectclass: organization
dn: cn=admin,dc=demo,dc=com
cn: admin
objectClass: organizationalRole
description: Directory Manager
dn: ou=People,dc=demo,dc=com
ou: People
objectClass: top
objectClass: organizationalUnit
dn: ou=Group,dc=demo,dc=com
ou: Group
objectClass: top
objectClass: organizationalUnit
5. 导入账号信息到OpenLDAP数据库
- 导入基础数据库
ldapadd -x -w admin123 -D cn=admin,dc=demo,dc=com -f /root/base.ldif
- 导入用户信息
ldapadd -x -w admin123 -D cn=admin,dc=demo,dc=com -f /root/users.ldif
- 导入用户组信息
ldapadd -x -w admin123 -D cn=admin,dc=demo,dc=com -f /root/groups.ldif
- 用户加入到用户组
OpenLDAP用户和用户组之间是没有任何关联的,需要新建添加用户到用户组的ldif文件,下面把ldapuser1用户加入到ldapgroup1用户组。 - 新建文件
cat > add_user_to_groups.ldif << EOF
dn: cn=ldapgroup1,ou=Group,dc=demo,dc=com
changetype: modify
add: memberuid
memberuid: ldapuser1
EOF
- 添加
ldapadd -x -w admin123 -D cn=admin,dc=demo,dc=com -f /root/add_user_to_groups.ldif
- 查看
ldapsearch -LLL -x -w admin123 -D 'cn=admin,dc=demo,dc=com' -b 'dc=demo,dc=com' cn='ldapgroup1'
到这里,基本功能已经配置完成,可以通过phpLDAPadmin进程访问连接。如何使用PHPLDAPadmin可以查看另一篇文章安装PHPLDAPadmin图形化管理工具