背景
LDAP是一款轻量级目录访问协议(Lightweight Directory Access Protocol,简称LDAP),属于开源集中账号管理架构的实现,且支持众多系统版本,被广大互联网公司所采用。目录服务是一种特殊的数据库系统,对于数据的读取、浏览、搜索有很好的效果。同时做为用户中心,数据库的高可用显得尤为重要。在客户生产环境中使用的是客户的负载均衡设备,基于思杰的硬件负载均衡设备,后端配置的是OpenLDAP_MirrorMode,相当于Mysql的双主模式,后面某一台服务器出现问题,负载均衡会将后端的服务器剔除,另一台仍能提供服务,如下图所示
实验环境:
操作系统: centos 7.2
服务器A:10.10.1.134
服务器B:10.10.1.132
环境准备
下载软件:
1
2
3
4mkdir /home/admin/openldap && cd /home/admin/openldap
wget ftp://ftp.openldap.org/pub/OpenLDAP/openldap- release/openldap-2.4.23.tgz
wget http://download.oracle.com/berkeley-db/db-4.6.21.tar.gz关闭selinux
1
sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config && sestatus
防火墙关闭
1
/bin/systemctl disable firewalld.service && /bin/systemctl stop firewalld.service
配置yum源为阿里云yum源
1
2
3
4
5
6
7
8从阿里云镜像网站下载yum源配置文件到yum目录中
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
修改版本号为redhat7
sed -i 's/$releasever/7/g' /etc/yum.repos.d/CentOS-Base.repo
清空yum缓存
yum clean all
生成列表
yum list安装openldap环境所需要的依赖包。
1
yum -y install libtool-ltdl libtool-ltdl-devel gcc openssl openssl-devel cyrus-sasl-lib.x86_64 cyrus-sasl-devel.x86_64 cyrus-sasl-plain.x86_64 cyrus-sasl-md5.x86_64 cyrus-sasl-ldap.x86_64
安装openldap和Berkeley DB
1. 写在安装之前:
编译安装openldap需要数据库的支持,openldap的数据库支持
Berkeley DB,Oracle,Mysql,MariaDB,GDBM等数据库。默认openldap采用Berkeley DB,并且openldap对数据库有一定的要求,openldap 2.4的软件为例,需要Berkeley DB 4.4版本以上,所以在编译安装openldap源码包时需要先下载安装Berkeley DB
2. 编译安装Berkeley DB
1 | tar -xf db-4.6.21.tar.gz -C /usr/local/src |
3. 编译安装openldap
1 | tar -xf openldap-2.4.23.tgz -C /usr/local/src/ |
配置openldap
1. 配置openldap的方法有两种:
- 通过修改配置文件实现配置
- 通过配置数据库的形式完成配置(slapd.d下的数据库配置文件),属于动态配置不需要重启slapd进程,
此配置文件在cn=config目录下的LDIF的配置文件 。此文件不建议手动修改,用ldap命令生成。
2. 配置rootdn密码(optional)
1 | /usr/local/openldap/bin/slappasswd #此密码记住,后面配置openldap会用到。 |
3. 创建用户ldap
1 | useradd ldap |
4. 创建数据目录以及日志文件
1 | mkdir /data/openldap/{data,log,var} -p |
5. 修改权限:
1 | cp /usr/local/openldap/etc/openldap/DB_CONFIG.example /data/openldap/data/DB_CONFIG |
6. 修改openldap配置文件
1 | #编辑配置文件vim slapd.conf |
7.开启日志功能
- 通过修改配置文件开启日志功能
1 | /etc/rsyslog.d/slapd.conf |
- 通过修改数据库配置文件开启
1 | /root/loglevel.ldif << EOF |
配置phpldpadmin工具
1. 安装和配置LDAP管理工具PHPldapadmin
1 | yum -y install httpd php php-ldap php-gd php-mbstring php-pear php-bcmath php-xml |
2. 修改配置文件
1 | vim /etc/phpldapadmin/config.php +398 |
3. 设置开机自启并启动Apache
1 | systemctl enable httpd |
在10.10.1.132上创建了一个OU名为testou,会发现10.10.1.132会自动同步到本地,如图:
两服务器日志如下:
以上结果得知,在镜像模式下,当其中一台服务器增加操作OU时,另一台也会同步增加,两台服务器均可进行读写操作,任何一台信息发生变化,都会以推的方式进行通知。