OpenLDAP详细配置

简介:

关于OepnLDAP的信息存储

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中必须是唯一的。

环境信息

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

注意:从OpenLDAP2.4.23版本开始所有配置数据都保存在/etc/openldap/slapd.d/中,建议不再使用slapd.conf作为配置文件。

配置管理员密码

slappasswd -s 123456

{SSHA}JZnUfxgOf+LPK0xgdyRRQIF/JjlZoC8Q

修改 /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)

导入组织结构

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  

使用LDAPAdmin工具连接查看信息。

目录
相关文章
|
6月前
openLdap相关配置、命令以及遇到的问题
openLdap相关配置、命令以及遇到的问题
113 0
|
SQL 安全 网络安全
安装OpenLDAP和客户端
安装OpenLDAP和客户端
385 1
|
分布式计算 Spark Apache
Kerberos使用OpenLDAP作为backend
本文介绍Kerberos对接OpenLDAP, 使用OpenLDAP作为principal数据库
2343 0
Kerberos使用OpenLDAP作为backend
|
监控 关系型数据库 Linux
基于OpenLDAP_MirrorMode的OpenLDAP高可用
背景: 某客户做用户中心项目。使用OpenLDAP做为存储用户信息。LDAP是一款轻量级目录访问协议(Lightweight Directory Access Protocol,简称LDAP),属于开源集中账号管理架构的实现,且支持众多系统版本,被广大互联网公司所采用。
3737 0
|
关系型数据库 MySQL Linux
|
数据库 数据安全/隐私保护 网络协议
|
网络协议 测试技术 Linux