Centos7 Openldap主从配置
转载 https://blog.csdn.net/htvxjl02/article/details/80336788
Centos7 Openldap主从配置
2018年05月16日 15:09:57
阅读数:79
参考了网上多篇文档,大都是centos6.x系统上通过slapd.conf配置部署的,centos7上默认是动态部署的,
通过yum安装发现无slapd.conf文件,研究了近半个多月,才初步实现如下所示的同步。
环境:虚拟机centos7系统
|
192.168.56.147 |
主openldap |
|
192.168.56.148 |
从openldap |
安装ldap服务
vi installOpenldap.sh
|
#!/bin/bash echo "install ldap rpm" # compat-openldap这个包与主从有很大的关系 yum install -y openldap openldap-* compat-openldap migrationtools systemctl start slapd systemctl enable slapd |
chmod +x installOpenldap.sh
./installOpenldap.sh
查看安装的ldpa服务
rpm -qa|grep ldap
查看OpnLDAP版本
slapd -VV
查看ldap启动状态
systemctl status slapd
查看openldap默认监听的389端口(centos7最小化安装默认没有netstat命令,需安装)
yum install net-tools -y
netstat -antup| grep 389
开放389端口
firewall-cmd --zone=public --add-port=389/tcp --permanent
firewall-cmd --reload
(这里我使用的是开启防火墙开放端口,也可以直接关闭防火墙,网上大都用的这种,如下
初始化环境:
ntpdate -u ntp.api.bz && sed -i ‘/SELINUX/s/enforcing/disabled/’ /etc/selinux/config && setenforce 0&& systemctl disable firewalld.service && systemctl stop firewalld.service && shutdown -r now
最小化安装的centos7系统需安装ntpdate)
配置OpenLDAP数据库
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
chownldap:ldap -R /var/lib/ldap/
chmod 700 -R /var/lib/ldap
ll /var/lib/ldap/
配置ldap服务
设置OpenLDAP的管理员密码
slappasswd
New password:
Re-enter newpassword:
|
如设置密码:AHdms520 {SSHA}NnsvnZeCbR+pBqhaGCdXFnTLMc+dBaQI 或者 (这样是方便观察设置的密码是什么) {SSHA}fUcmcIuxU/FSyrMu75aIBbOSae2sXT4q |
vi chrootpw.ldif
|
# specify the password generated above for "olcRootPW" section dn: olcDatabase={0}config,cn=config changetype: modify add: olcRootPW olcRootPW: {SSHA}NnsvnZeCbR+pBqhaGCdXFnTLMc+dBaQI |
ldapadd -Y EXTERNAL -H ldapi:/// -f chrootpw.ldif
导入基本模式
vi ldapaddBaseSchema.sh (注:脚本名可自定义或者直接复制下列命令运行)
|
#!/bin/bash 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 |
在ldap服务的DB中设置域名
vi chdomain.ldif
|
# replace to your own domain name for "dc=***,dc=***" section # specify the password generated above for "olcRootPW" section dn: olcDatabase={1}monitor,cn=config changetype: modify replace: olcAccess olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" read by dn.base="cn=Manager,c=cn" read by * none dn: olcDatabase={2}hdb,cn=config changetype: modify replace: olcSuffix olcSuffix: c=cn dn: olcDatabase={2}hdb,cn=config changetype: modify replace: olcRootDN olcRootDN: cn=Manager,c=cn dn: olcDatabase={2}hdb,cn=config changetype: modify add: olcRootPW olcRootPW: {SSHA}NnsvnZeCbR+pBqhaGCdXFnTLMc+dBaQI dn: olcDatabase={2}hdb,cn=config changetype: modify add: olcAccess olcAccess: {0}to attrs=userPassword,shadowLastChange by dn="cn=Manager,c=cn" write by anonymous auth by self write by * none olcAccess: {1}to dn.base="" by * read olcAccess: {2}to * by dn="cn=Manager,c=cn" write by * read |
ldapmodify -Y EXTERNAL -H ldapi:/// -f chdomain.ldif
导入管理员基础数据
vi rootdn.ldif
|
dn: c=cn objectclass: country c: cn dn: cn=Manager,c=cn objectclass: organizationalRole cn: Manager |
ldapadd -x -D cn=Manager,c=cn -W -f rootdn.ldif
开启日志配置
(注:日志级别可按需要进行设置)
vi logLevel.ldif
|
[root@localhost ~]# cat logLevel.ldif dn: cn=config changetype: modify replace: olcLogLevel olcLogLevel: stats |
ldapmodify -Y EXTERNAL -H ldapi:/// -f logLevel.ldif
touch /var/log/slapd.log
vi /etc/rsyslog.conf +73
(注:+73是指定位到文件73行)
添加:
local4.* /var/log/slapd.log
重启系统日志服务与ldap服务
systemctl restart rsyslog
systemctl restart slapd
tail -f /var/log/slapd.log
另外可通过cn=config配置OpenLDAP日志
|
[root@localhost ~]# cat /etc/openldap/slapd.d/cn\=config.ldif | grep olcLogLevel [root@localhost ~]# cat << EOF | ldapmodify -Y EXTERNAL -H ldapi:/// > dn: cn=config > changetype: modify > add: olcLogLevel > olcLogLevel: 32 > EOF SASL/EXTERNAL authentication started SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth SASL SSF: 0 modifying entry "cn=config" |
master配置
在master上启用添加syncprov模块来实现主从复制功能点,通过ldif文件来增加syncprov模块,无需重启ldap server。
vi mod_syncprov.ldif
|
dn: cn=module,cn=config objectClass: olcModuleList cn: module olcModulePath: /usr/lib64/openldap olcModuleLoad: syncprov.la |
Ldap由于scheam的控制,文件里的属性有严格的控制,错误的或者不存在的属性将无法执行ldif文件,所以ldif文件的字体颜色会帮助我们配置ldif文件(属性:绿色,属性值:红色)。
ldapadd -Y EXTERNAL -H ldapi:/// -f mod_syncprov.ldif
vi syncprov.ldif
|
dn: olcOverlay=syncprov,olcDatabase={2}hdb,cn=config objectClass: olcOverlayConfig objectClass: olcSyncProvConfig olcOverlay: syncprov olcSpCheckpoint: 100 10 olcSpSessionLog: 100 |
ldapadd -Y EXTERNAL -H ldapi:/// -f syncprov.ldif
slave配置
同样,在slave上也需要配置syncrepl,因为syncrepl实现的主从复制是单向的,即master的所有操作都会同步到slave上,slave无法同步到master上,为了避免master与slave上的数据不一致,slave上禁止对ldap信息的增删改操作,只允许查询操作。因为是单向的,故slave需要一些master的认证信息,以便从master同步数据
vi syncrepl.ldif
|
dn: olcDatabase={2}hdb,cn=config changetype: modify add: olcSyncRepl olcSyncRepl: rid=001 provider=ldap://192.168.56.149:389/ bindmethod=simple binddn="cn=Manager,c=cn" credentials=AHdms520 searchbase="c=cn" scope=sub schemachecking=on type=refreshAndPersist retry="5 5 300 +" attrs="*,+" interval=00:00:00:10 |
(这里方便测试设置10秒同步)
注意:一定要注意字体的颜色和上面一致,provider,bindmethod …… interval都是olcSyncRepl的属性值,不是与olcSyncRepl同级别,故其为红色。
ldapadd -Y EXTERNAL -H ldapi:/// -f syncrepl.ldif
测试
1. 查看master/slave的监听端口
yum installnet-tools -y (注:centos7 最小化安装无netstat命令,需安装)
netstat -tnlp | grep 389 (#master)
netstat -tnlp| grep 389 (#slave)
2.
slave 中查看当前ldap用户列表
ldapsearch -x -b 'cn=Manager,c=cn',就可以看到自动从master同步过来是数据
3.
在master新增/删除用户,确认是否同步。首先,在master上,准备增加用户的ldif脚本。
vi test.ldif
|
# create new # replace to your own domain namefor dn: uid=asiainfo,ou=Manager,c=cn objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount cn: ASIAINFO sn: TEST userPassword: {SSHA}NnsvnZeCbR+pBqhaGCdXFnTLMc+dBaQI #ssha加密后的值: AHdms520 loginShell: /bin/bash uidNumber: 1612 gidNumber: 1612 homeDirectory: /test |
ldapadd -x -Dcn=Manager,c=cn -W -f test.ldif
在slave中查看是否同步完成
ldapsearch -x-b ' cn=Manager,c=cn '|grep asiainfo
执行完命令提示的内容里包含了uid=asiainfo:
也可以用客户端软件测试(这里我使用的是ApacheDirectoryStudio)
到此表示主从同步完成。
参考:
https://blog.csdn.net/wenwenxiong/article/details/76855047
https://blog.csdn.net/xiaowen_1990/article/details/79651099
https://www.ilanni.com/?p=13775
http://www.zytrax.com/books/ldap/ch6/slapd-config.html#contents
http://www.zytrax.com/books/ldap/ch7/#ol-syncrepl
http://www.openldap.org/doc/admin24/slapdconf2.html
Centos7 Openldap主从配置的更多相关文章
- CentOS7 PostgreSQL 主从配置( 二)
同步流复制配置PostgreSql的流复制是异步的,缺点是Standby上的数据落后于主库上的数据,如果使用Hot Standby做读写分离,就会存在数据一致性的问题.PostgreSql9.1版本后 ...
- CentOS7 PostgreSQL 主从配置( 一)
主库配置 pg_hba.conf host replication all 10.2.0.0/0 trust postgresql.conf listen_addresses = '*' max_wa ...
- CentOS7 PostgreSQL 主从配置( 三)
postgres 主备切换 主备查看 方法 ps -ef | grep wal (主库 sender)postgres 27873 27864 0 5月06 ? 00:00:10 postgres: ...
- CentOS7系统DNS主从配置
CentOS7系统DNS主从配置:一.DNS服务器正向解析:1.1 基础环境:主机IP 主机名 操作系统 用途192.168.0.110 master ...
- CentOS7+mysql5.6配置主从
一.安装环境 操作系统:CentOS-7-x86_64-DVD-1611.iso数据库版本:mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz数据库地址: 192.1 ...
- Centos7下mysql5.7.22主从配置
一:服务器配置 1.1修改root密码: ALTER USER 'root'@'localhost' IDENTIFIED BY 'xxxx'; 1.2添加远程登陆用户: GRANT ALL PRIV ...
- Centos7下mysql的主从配置
最近,有朋友业务并发量比较大,让我帮他配置个主从,来缓解数据库的压力.下面就是我配置的,有需要的朋友可以借鉴下. 首先,我得到2台服务器: 172.18.2.142(主) 172.18.2.141(从 ...
- CentOS7 yum安装配置 +redis主从配置
一.安装必要包 yum install gcc 二.linux下安装 #下载 wget http://download.redis.io/releases/redis-3.0.0.tar.gz tar ...
- 在阿里云Centos7.6上面配置Mysql主从数据库(master/slave),实现读写分离
原文转载自「刘悦的技术博客」https://v3u.cn/a_id_85 在之前的一篇文章中,阐述了如何在高并发高负载的场景下使用nginx做后台服务的负载均衡:在阿里云Centos上配置nginx+ ...
随机推荐
- opencv函数制作的时钟模型
http://www.cnblogs.com/sytu/p/4192652.html 在秒针模型的基础上添加了分针和时针,并且添加了暂停控件和设置时间的功能. #include"cv.h&q ...
- Mac环境下SVN的配置和使用
简单记录一下在Mac环境下,SVN的配置步骤和使用相关.(Mac自带了svn的服务器和客户端功能,简单配置一下即可使用) 一.SVN的配置方法 1. 创建一个仓库目录,比如在/Users/你的用户名 ...
- Java BLOB 数据的插入与读取 操作
package com.lw.database; import java.io.FileInputStream; import java.io.FileOutputStream; import jav ...
- CSS常用标签-手打抄录-感谢原未知博主-拜谢了
CSS常用标签 CSS常用标签 一 CSS文字属性 color : #999999; /*文字颜色*/ font-family : 宋体,sans-serif; /*文字字体*/ font-siz ...
- ZOJ 3964 NIM变形
LINK 题意:n堆石子,Alice 和 Bob 轮流取石子,谁不能再取或被对方取完为败.但是对于alice拥有限制:b=0此堆正常无限制:b=1此堆Alice只能取奇数个石子:b=2只能取偶数个石子 ...
- System中关于Property的方法
System类在java.lang包中,所有方法都是静态的,里边有很多对系统的属性和控制方法 System类有三个成员变量:out-标准输出流(默认是控制台),in-标准输入流(默认是键盘),err- ...
- Palindromic Squares 回文平方数
1.2.4 Palindromic Squares 回文平方数 Time Limit: 1 Sec Memory Limit: 64 MBSubmit: 139 Solved: 66[Submit ...
- 【洛谷 P2865】 [USACO06NOV]路障Roadblocks(最短路)
题目链接 次短路模板题. 对每个点记录最短路和严格次短路,然后就是维护次值的方法了. 和这题一样. #include <cstdio> #include <queue> #in ...
- 【leetcode 简单】第一题 两数之和
给定一个整数数组和一个目标值,找出数组中和为目标值的两个数. 你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用. 示例: 给定 nums = [2, 7, 11, 15], target ...
- win10环境变量
jdk8 JAVA_HOME D:\devsoft\jdk\jdk1.8 CLASSPATH .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar pa ...