OpenLDAP部署文档

1. OpenLDAP简介

OpenLDAP是轻型目录访问协议(Lightweight Directory Access Protocol,LDAP)的自由和开源的实现,在其OpenLDAP许可证下发行,并已经被包含在众多流行的Linux发行版中。

2. OpenLDAP部署(主从为例)

环境准备:

系统版本:centos6.6 4.1.5-1.el7.centos.x86_64
主服务器:192.168.76.hehe(读写)
从服务器:192.168.86.haha(只读)
域名:auth.chegva.com

 

配置信息:

web管理端:http://192.168.76.hehe/ldapadmin/
登陆DN:cn=admin,dc=chegva,dc=com
软件版本:
compat-openldap-2.3.43-2.el6.x86_64
openldap-2.4.40-16.el6.x86_64
openldap-devel-2.4.40-16.el6.x86_64
openldap-servers-2.4.40-16.el6.x86_64
openldap-clients-2.4.40-16.el6.x86_64
数据目录:/var/lib/ldap
配置文件:/etc/openldap/slapd.conf
启动方式:service slapd start && service httpd start

安装操作:Openldap一键安装脚本 | Openldap服务tls/ssl证书配置

安装依赖包:yum install -y *ltdl* wget make gcc unixODBC-devel groff mysql-connector-odbc
查看目录信息:ldapsearch -H ldap://192.168.76.hehe:389 -x -b "dc=chegva.com,dc=com" objectclass='*' -v
添加用户:ldapadd -x -D "cn=admin,dc=chegva,dc=com" -W -f user.ldif
删除用户:ldapdelete -x -D "cn=admin,dc=chegva,dc=com" -W -f deluser.ldif
增删改查都可以在web端操作,在服务器上操作需创建ldif文件执行命令操作
如deluser.ldif
dn: cn=anzhihe,ou=fbi,dc=chegva,dc=com
changetype: delete
如添加部门:base.ldif
dn: ou=fbi,dc=chegva,dc=com
ou: fbi
objectClass: top
objectClass: organizationalUnit

 

openldap安装完成后相关目录承载的功能如下:

目录 功能
bin 客户端工具如ldapadd、ldapsearch
etc 包含主配置文件slapd.conf、schema、DB_CONFIG等
include ldap的头文件
lib ldap的库文件
libexec 服务端启动工具slapd
sbin 服务端工具如slappasswd
share 共享文件存储路径
var bdb数据、log存放目录

使用slappasswd设置加密后的管理员密码

    slappasswd -s 管理员密码

3. OpenLDAP配置文件(供参考)

#cat slapd.conf
#引用模块
include /etc/openldap/schema/corba.schema
include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/duaconf.schema
include /etc/openldap/schema/dyngroup.schema
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/java.schema
include /etc/openldap/schema/misc.schema
include /etc/openldap/schema/nis.schema
include /etc/openldap/schema/openldap.schema
include /etc/openldap/schema/ppolicy.schema
include /etc/openldap/schema/collective.schema
allow bind_v2
pidfile /var/run/openldap/slapd.pid
argsfile /var/run/openldap/slapd.args
loglevel      296
modulepath /usr/lib/openldap
modulepath /usr/lib64/openldap
moduleload ppolicy.la
moduleload syncprov.la

#访问权限配置
access to *
by self write
by dn.base="cn=admin,dc=chegva,dc=com" read
by users read
by anonymous auth
database config
access to *
by dn.exact="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" manage
by * none
database monitor
access to *
by dn.exact="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" read
by dn.exact="cn=admin,dc=chegva,dc=com" read
by * none

#数据库及密码设置
database bdb
cachesize       1000
suffix "dc=chegva,dc=com"
checkpoint 1024 15
rootdn "cn=admin,dc=chegva,dc=com"
rootpw {SSHA}chegva.com
directory /var/lib/ldap
index objectClass                       eq,pres
index ou,cn,mail,surname,givenname      eq,pres,sub
index uidNumber,gidNumber,loginShell    eq,pres
index uid,memberUid                     eq,pres,sub
index nisMapName,nisMapEntry            eq,pres,sub

#主从配置
index entryCSN,entryUUID    eq
syncrepl        rid=001
provider=ldap://192.168.76.xx:389
type=refreshOnly
retry="5 5 300 +"
bindmethod=simple
interval=00:00:00:10
scope=sub
schemachecking=off
binddn="cn=admin,dc=chegva,dc=com"
credentials=xxx
searchbase="dc=chegva,dc=com"
attrs="*,+"
overlay ppolicy
ppolicy_hash_cleartext

openldap支持5种复制方式,分别是:

Syncrepl:slave服务器从master上拉取数据,缺点是拉取的最小粒度是单条记录

Delta-syncrepl:与上一条相似,但拉取的最小粒度是属性N-Way 

Multi-Master:多主,支持2个及以上的master

MirrorMode:双主镜像,不支持3个及以上的master,但可以有slave

Syncrepl Proxy:代理模式 

4. OpenLDAP备份迁移

备份:

1.可以在web端导出ldif文件然后部署后导入即可

2.调用api

迁移:

先使用脚本一键部署,然后将旧服务器上 /etc/openldap 和 /var/lib/ldap 目录copy到新服务器替换,chown -R ldap.ldap两个目录,然后启动服务导入备份数据


FAQ:

1. LDAP error codes

2. yum 安装的只支持主从模式,就别配主主模式了

3. openldap做高可用,前端若用nginx需编译安装第三方包才能支持ldap协议,lvs可以直接使用

4. 用脚本调openldap接口修改数据必须配置证书使用ldaps才可以 

参考:

anzhihe安志合个人博客,版权所有丨 如未注明,均为原创 丨转载请注明转自:https://chegva.com/2786.html | ☆★★每天进步一点点,加油!★★☆

您可能还感兴趣的文章!

发表评论

电子邮件地址不会被公开。 必填项已用*标注