OpenLDAP目录中的信息是以树状的层次结构来存储数据,最顶层即根部称作“基准DN”,形如“dc=domain,dc=com”或者“o=domain.com”,前一种方式更为灵活也是Windows AD中使用的方式。在根目录的下面有很多的文件和目录,为了把这些大量的数据从逻辑上分开,OpenLDAP像其它的目录服务协议一样使用OU(Organization Unit,组织单元),可以用来表示公司内部机构,如部门等。同时OU还可以有子OU,用来表示更为细致的分类。
OpenLDAP中每条记录都有唯一(主键)的名字DN(Distinguished Name),其处在“叶子”位置的部分称作RDN(用户条目的相对标识名)。如dn:cn=user1,ou=dept1,dc=domain,dc=com中cn即为RDN,而RDN在一个OU中必须是唯一的。
OpenLDAP中每条记录都有唯一(主键)的名字DN(Distinguished Name),其处在“叶子”位置的部分称作RDN(用户条目的相对标识名)。如dn:cn=user1,ou=dept1,dc=domain,dc=com中cn即为RDN,而RDN在一个OU中必须是唯一的。
环境信息
slapd -VV
@(#) $OpenLDAP: slapd 2.4.44 (Aug 4 2017 14:23:27) $
mockbuild@c1bm.rdu2.centos.org:/builddir/build/BUILD/openldap-2.4.44/openldap-2.4.44/servers/slapd
cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
@(#) $OpenLDAP: slapd 2.4.44 (Aug 4 2017 14:23:27) $
mockbuild@c1bm.rdu2.centos.org:/builddir/build/BUILD/openldap-2.4.44/openldap-2.4.44/servers/slapd
cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
详细配置OpenLDAP
注意:从OpenLDAP2.4.23版本开始所有配置数据都保存在/etc/openldap/slapd.d/中,建议不再使用slapd.conf作为配置文件。
配置管理员密码
slappasswd -s 123456
配置管理员密码
slappasswd -s 123456
[复制到剪贴板] |
{SSHA}JZnUfxgOf+LPK0xgdyRRQIF/JjlZoC8Q
[txt]修改 /etc/openldap/slapd.d/cn=config/olcDatabase={2}hdb.ldif文件
cd /etc/openldap/slapd.d/cn=config/
vi olcDatabase=\{2\}hdb.ldif
[复制到剪贴板] |
olcSuffix: dc=ftpse,dc=com
olcRootDN: cn=Manager,dc=ftpse,dc=com
olcRootPW: {SSHA}JZnUfxgOf+LPK0xgdyRRQIF/JjlZoC8Q
注意:默认可能不存在olcRootPW,再文件尾添加即可。
修改olcDatabase={1}monitor.ldif文件
vi olcDatabase=\{1\}monitor.ldif
[复制到剪贴板] |
olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=extern
7 al,cn=auth" read by dn.base="cn=Manager,dc=ftpse,dc=com" read by * none
主要是修改olcAccess中管理员的信息,将domain和上一个文件改成一致的。
验证OpenLDAP的基本配置,使用如下命令:
slaptest -u
[复制到剪贴板] |
5a600913 ldif_read_file: checksum error on "/etc/openldap/slapd.d/cn=config/olcDatabase={1}monitor.ldif"
5a600913 ldif_read_file: checksum error on "/etc/openldap/slapd.d/cn=config/olcDatabase={2}hdb.ldif"
config file testing succeeded
会有两个checksum error,这个不用管,我们手动修改了文件肯定checksum不对了。
只要注意最后一行的 testing结果就行。
这里的结果是 succeeeded ,没有问题。
启动OpenLDAP服务
systemctl restart slapd
查看启动情况和端口
netstat -antup | grep slapd
[复制到剪贴板] |
tcp 0 0 0.0.0.0:389 0.0.0.0:* LISTEN 9419/slapd
tcp6 0 0 :::389 :::* LISTEN 9419/slapd
如果提示没有netstat命令,yum安装即可
yum -y install net-tools
配置OpenLDAP数据库
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
chown ldap. /var/lib/ldap/DB_CONFIG
chmod 600 /var/lib/ldap/DB_CONFIG
导入基本Schema(可有选择导入)
cd /etc/openldap/schema/
ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f cosine.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f nis.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f collective.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f corba.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f core.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f duaconf.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f dyngroup.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f inetorgperson.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f java.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f misc.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f openldap.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f pmi.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f ppolicy.ldif
如导入(cosine.ldif,nis.ldif,inetorgperson.ldif)
导入组织结构[b][/txt]
[复制到剪贴板] |
dn: dc=ftpse,dc=com
objectClass: top
objectClass: dcObject
objectclass: organization
o: ftpse com
dc: ftpse
dn: cn=Manager,dc=ftpse,dc=com
objectClass: organizationalRole
cn: Manager
description: Directory Manager
dn: ou=People,dc=ftpse,dc=com
objectClass: organizationalUnit
ou: People
dn: ou=Group,dc=ftpse,dc=com
objectClass: organizationalUnit
ou: Group
[b]使用LDAPAdmin工具连接查看信息。