一,LDAP备份迁移
1,原服务器上导出备份文件
mkdir /opt/ldap
/usr/sbin/slapcat > /opt/ldap/ldapdbak.ldif
2,目标服务器搭建ldap环境
yum install openldap openldap-clients openldap-servers
service slapd start
systemctl enable slapd
slappasswd -h {SSHA} -s xxxxx #生成管理员密码,下面生成的密码会有用到,保存下
#配置管理员信息于dc
cat > 01initDB.ldif << EOF
dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=10heroes,dc=cn
dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=admin,dc=10heroes,dc=cn
dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootPW
olcRootPW: {SSHA}2prRR5XT1p0Im0J23df+xoOlQOUlB+Ti #注意,这里的密码替换成你上面生成的密码
EOF #注意,属性于属性值之间使用tab键空出来的
#执行修改
ldapmodify -Y EXTERNAL -H ldapi:/// -f 01initDB.ldif
#添加 schema
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
#安装phpadmin
yum install epel-release httpd phpldapadmin -y
#修改phpldapadmin的配置文件,访问控制权限
vim /etc/httpd/conf.d/phpldapadmin.conf,允许谁访问
添加:
Require all granted
Allow from all
#修改配置文件:vim /etc/phpldapadmin/config.php
//$servers->setValue('login','attr','dn'); 这一行的注释去掉
//$servers->setValue('login','attr','uid'); 这一行注释掉
#重启httpd服务
service httpd restart
systemctl enable httpd
3,目标服务器执行导入
systemctl stop slapd && systemctl status slapd
rm -rf /var/lib/ldap/*
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
chown -R ldap:ldap /var/lib/ldap/*
#把之前原服务器导出的备份文件来到目标服务器上来执行
slapadd -l /root/ldapdbak.ldif
chown -R ldap:ldap /var/lib/ldap/*
systemctl start slapd
4,验证
访问 http://目标服务器ip/phpldapadmin
二,LDAP主从配置,阿里云服务器上的一套做主,内网上的一套做从
1,配置master
#在naster节点上执行创建一个对所有ldap对象具有读写权限的用户,用作slave访问master
cat > rpuser.ldif <<EOF
dn: uid=rpuser,dc=10heroes,dc=cn
objectClass: simpleSecurityObject
objectclass: account
uid: rpuser
description: Replication User
userPassword: root1234
EOF
ldapadd -x -w ldap管理员密码 -D "cn=admin,dc=10heroes,dc=cn" -f rpuser.ldif
#开启syncprov module
cat >syncprov_mod.ldif <<EOF
dn: cn=module,cn=config
objectClass: olcModuleList
cn: module
olcModulePath: /usr/lib64/openldap
olcModuleLoad: syncprov.la
EOF
ldapadd -Y EXTERNAL -H ldapi:/// -f syncprov_mod.ldif
#为每个目录开启syncprov
cat >syncprov.ldif <<EOF
dn: olcOverlay=syncprov,olcDatabase={2}hdb,cn=config
objectClass: olcOverlayConfig
objectClass: olcSyncProvConfig
olcOverlay: syncprov
olcSpSessionLog: 100
EOF
ldapadd -Y EXTERNAL -H ldapi:/// -f syncprov.ldif
2,配置负载均衡
首先配置云解析dns添加ldap域名解析记录 ldap.xxx.cn A 负载均衡公网ip
负载均衡开通389监听
3,配置slave
cat >syncrepl.ldif <<EOF
dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcSyncRepl
olcSyncRepl: rid=001
provider=ldap://ldap域名:389/
bindmethod=simple
binddn="uid=rpuser,dc=10heroes,dc=cn"
credentials=root1234
searchbase="dc=10heroes,dc=cn"
scope=sub
schemachecking=on
type=refreshAndPersist
retry="60 +"
interval=00:00:01:00
#每分钟同步一次
EOF
ldapmodify -Y EXTERNAL -H ldapi:/// -f syncrepl.ldif
三,服务接入ldap认证
1,zabbix接入ldap
配置参数详解
那么之后在给zabbix创建用户的时候,先到ldap服务器上创建用户,然后再对zabbix上创建同名用户,zabbix上创建用户的时候不需要填入密码,再登入zabbix的时候直接密码输入的话直接用ldap上的用户密码好了
2,gitlab接入ldap
因为我这里gitlab使用直接yum安装的,所以直接修改配置文件/etc/gitlab/gitlab.rb ,具体可以看下gitlab接入ldap官方文档:Integrate LDAP with GitLab | GitLab
编辑gitlab配置文件
gitlab-ctl reconfigure #重载配置文件
gitlab-rake gitlab:ldap:check 检查是否能正常获取用户信息
关闭gitlab用户注册
3,jumpserver接入ldap
选择用户导入,将ldap用户导入到jumpserver里