phpLDAPadmin 是一款LDAP GUI客户端管理软件,它提供一个简单并且支持多种语言的LDAP管理软件。
1.添加OU
创建 Posix Group组
创建用户
注:默认情况下openldap的用户组属性是Posixgroup,Posixgroup用户组属性和用户没有实际的对应关系。如果我们一定要把Posixgroup和user对应起来的话,就需要单独把用户设置到Posixgroup中,将Posixgroup和user 关联起来。
添加memberUID属性。将用户与组关联起来
找到Posixgroup 用户组,
将用户与group关联起来
注意:
以上设置基本可以满足大部分业务场景的需要,但是如果我们需要根据用户组来过滤用户的话,Posixgroup用户组属性,是无法满足需要的。比如,confluence 、jira与openldap集成时,以用户组过淲用户时,Posixgroup用户组属性是无法满足的。需要用GroupOfUniqueNames用户组属性。
创建GroupOfUniqueNames用户组属性
添加用户到GroupOfUniqueNames用户组
LDAP admin,是一款在windows 平台下用于对OpenLDAP目录树条目进行管理的编辑程序。通过LDAP Admin程序,可以对目录树条目灵活地修改。
1. LDAP Admin 获取与安装
下载地址 :http://www.ldapadmin.org/download/ldapadmin.html
目前最新版本为1.83
LDAP Admin安装非常简单 ,下载后直接解压,双运行即可。
2.LDAP Admin程序使用
3.新建OU
4.新建用户
设置用户密码
创建groupOfNames Group
Openldap 管理命令汇总
ldapadd命令 用于通过 LDIF格式添加目录树条目。ldapadd在功能上等同于ldapmodify -a命令。
a.创建ou案例
cat > ou.ldif << EOF
dn: ou=People,dc=daemon,dc=com
ou: People
objectClass: organizationalUnit
objectClass: top
EOF
创建一个名为People的OU条目
ldapadd -x -D "cn=admin,dc=daemon,dc=com" -w 'Admin@123#!' -f ou.ldif
ldapadd参数说明:
b.创建GroupOfUniqueNames用户组案例
cat > group.ldif << EOF
dn: cn=华南事业部,ou=shangjiankeji,dc=daemon,dc=com
cn: 华南事业部
objectClass: top
objectClass: groupOfUniqueNames
uniqueMember:
EOF
创建一个华南事业部的group
ldif中的参数详解
ldapadd -x -D "cn=admin,dc=daemon,dc=com" -w 'Admin@123#!' -f group.ldif
c.创建一个用户案例
cat > user.ldif << EOF
dn: uid=zhangsan,ou=People,dc=daemon,dc=com
cn: 张三
displayName: 张三
objectClass: top
objectClass: organizationalperson
objectClass: inetorgperson
bjectClass: posixaccount
loginShell: /sbin/nologin
givenName: 三
sn: 张
homeDirectory: /home/zhangsan
uid: zhangsan
mail: zhangsan@daemon.com
mobile: 0
uidNumber: 1016
gidNumber: 0
userPassword: {MD5}4QrcOUm6Wau+VuBX8g+IPg== EOF
创建一个名称张三的用户。
ldif文件中的参数详解:
ldapadd -x -D "cn=admin,dc=daemon,dc=com" -w 'Admin@123#!' -f user.ldif
d.将用户加入group案例
cat > add-group.ldif << EOF
dn: cn=华南事业部,ou=shangjiankeji,dc=daemon,dc=com
changetype: modify
add: uniqueMember
uniqueMember: uid=zhangsan,ou=People,dc=daemon,dc=com
EOF
将uid为zhangsan的用户加入华南事业部的组中。
ldif文件中的参数详解:
ldapadd -x -D "cn=admin,dc=daemon,dc=com" -w 'Admin@123#!' -f add-group.ldif
2.2 ldapsearch命令
ldapsearch 命令可根据用户定义的:查询条件,对OpenLDAP目录树进行查找以及检索目录树相关条目。在维护OpenLDAP服务器,会经常用到此命令。
ldapserach常用参数
a. 查询 People OU下的所有用户信息
ldapsearch -x -D "cn=admin,dc=daemon,dc=com" -H ldap://ldap.ops.prod.daemon.tech -b "ou=People,dc=daemon,dc=com" -w 'Admin@123#!'
b. 些参数以及过滤条件查看用户信息。例如:查看当前openLDAP目录树中uid 为zhangsan的用户信息。
ldapsearch -x -D "cn=admin,dc=daemon,dc=com" -H ldap://ldap.ops.prod.daemon.tech -b "ou=People,dc=daemon,dc=com" -w 'Admin@123#!' uid=zhangsan -LLL
参数详解:
ldapdelete 命令用于从目录树中删除指定条目,并根据DN条目删除一个或多个条目,但必须提供所要删除指定条目的权限所绑定的DN(整个目录树的唯一标识名称)。
ldapdelete常用参数详解:
a.删除 一个uid为zhangyi的用户
ldapdelete -x -w Admin@123#! -D 'cn=admin,dc=daemon,dc=com' 'uid=zhangyi,ou=People,dc=daemon,dc=com'
2.4 重置openldap管理员密码
ldapsearch -H ldapi:// -LLL -Q -Y EXTERNAL -b "cn=config" "(olcRootDN=*)" dn olcRootDN olcRootPW
#新密码的加密码
slappasswd -s qwe123
#{SSHA}jSFl8Pzu0p/BOzDyx0WPYVlaO18EkI1E
#重置密码为 qwe123
cat << EOF | ldapadd -Y EXTERNAL -H ldapi:///
dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootPW
olcRootPW: {SSHA}jSFl8Pzu0p/BOzDyx0WPYVlaO18EkI1E
EOF
方案一、通过 slapcat 进行本地备份
slapcat -n -2 -l /data/backup/openldap-backup.ldif
参数说明:
恢复步骤:
注意:我们恢复的openldap数据,一定是在原来openldap服务所在的服务器上。
systemctl stop slapd
rm -fr /var/lib/ldap/*
slapadd -l /data/backup/openldap-backup.ldif
注:/var/lib/ldap为ldap 数据存储目录
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG chown ldap:ldap -R /var/lib/ldap/
systemctl start slapd
systemctl status slapd
验证:登ldap 管理平台
方案二: 通过 ldapsearch 备份
ldapsearch -x -D cn=admin,dc=daemon,dc=com -w 'Admin@123#!' \ -b dc=daemon,dc=com -LLL -H ldap://127.0.0.1 > ldapbackup_daemon.ldif
恢复openldap
注意:我们恢复的openldap数据,一定是在原来openldap服务所在的服务器上。
操作步骤:
停止服务,删除原来的openldap数据
systemctl stop slapd
rm -fr /var/lib/ldap/*
需要通过ldapadd 命令进行恢复
systemctl start slapd
ldapadd -x -D cn=admin,dc=daemon,dc=com -w 'Admin@123#!' -f ldapbackup_daemon.ldif
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
chown ldap:ldap -R /var/lib/ldap
systemctl restart slapd
3.2 LDAP 迁移
环境准备:
迁移服务器已经安装ldap软件,实际上迁移服务器已经配置好了服务,缺少的是原ldap的数据。
1.安装 ldap (在迁移服务器上安装)
yum -y install openldap compat-openldap openldap-clients openldap-servers openldap-servers-sql openldap-devel migrationtools
2.备份源端的LDAP
tar -czf ldap.tar.gz /var/lib/ldap
tar -czf openldap.tar.gz /etc/openldap
3.在迁移服务器执行
还原数据
systemctl stop slapd
rm -rf /var/lib/ldap
rm -rf /etc/openldap
tar -zxf ldap.tar.gz -C /var/lib/ldap
tar -zxf openldap.tar.gz –C /etc/
chown -R ldap.ldap /var/lib/ldap
启动服务
systemctl start slapd
注意:
如果源端开启了openldap TLS加密,需要重新签新的证书至迁移服务器,并开启openldap TLS 加密 。
开启openldap TLS加密
vim /etc/sysconfig/slapd
重启
systemctl restart slapd
登录ldapadmin客户端进行认证。
主从监控主要是看contextCSN 的值是否对齐。
通过 查看每个节点的contextCSN 的值
ldapsearch -xLLL -H ldap://172.28.1.6 -D cn=admin,dc=daemon,dc=com -b dc=daemon,dc=com -w Admin@123#! -s base contextcsn
生成监控脚本。
at >jiankong.sh EOF <<
basedn='dc=valuesimplex,dc=com'
adminpwd="Sjkj1212#!"
#获取每个节点的contextCSN 值
masterCSN=$(ldapsearch -xLLL -H ldap://$MasterIP -D $dn -b $basedn -w $adminpwd -s base contextcsn |grep contextCSN |awk '{print $2}')
slaveCSN=$(ldapsearch -xLLL -H ldap://$SlaveIP -D $dn -b $basedn -w $adminpwd -s base contextcsn |grep contextCSN |awk '{print $2}')
#判断LDAP的状态
echo $masterCSN
echo $slaveCSN
if [ "$masterCSN" == "$slaveCSN" ];then
onlineSyncStat=1
echo "ldap 服务同步正常"
else
onlineSyncStat=0
echo "ldap 服务同步异常"
fi
EOF
执行jiankong脚本。
sh jiankong.sh
1.用管理员登录confluence
右上角选择 “设置 ” --“用户管理” ----“用户目录”
服务器配置
高级设置:
用户模式设置
组模式设置
成员模式设置:
2.使用ldap SSL连接
回到目录服务的服务器设置 ,勾选SSL即可。默认端口为636
点击测试时报如下错误:
此问题是由于自签名证书(CA 未对其进行签名)或 Java 信任库中不存在的证书链引起的。 Java 不信任该证书并且无法连接到应用程序
注:
将ca 公钥证书上传至confluence 服务器,执行以下命令即可。
先进行备份
cp $JAVA_HOME/jre/lib/security/cacerts $JAVA_HOME/jre/lib/security/cacerts_bak
执行导入
keytool -importcert -keystore $JAVA_HOME/jre/lib/security/cacerts -file ca-bundle.crt
参数说明:
需要输入密码 changeit
如果报以下错误 ,说明已经存在同名的CA ,可以通过keytool -delete 进行删除 。重新导入证书
keytool -delete -alias mykey \
-keystore $JAVA_HOME/jre/lib/security/cacerts
显示密钥库中的证书详细信息
keytool -list -v -keystore $JAVA_HOME/jre/lib/security/cacerts
接入方法与confluene类似。
用jira管理员登录jira,选择右上角的设置---用户管理----用户目录
服务器设置
用户模式设置
组模式设置
成员模式设置:
使用ldap SSL进行连接
将ca 公钥证书上传至confluence 服务器,执行以下命令即可。
先进行备份
cp $JAVA_HOME/jre/lib/security/cacerts $JAVA_HOME/jre/lib/security/cacerts_bak
执行导入
keytool -importcert -keystore $JAVA_HOME/jre/lib/security/cacerts -file ca-bundle.crt
修改服务器配置: 将SSL勾选即可,默认端口为636
前提条件:
请确认ldap 插件和Role-based Authorization Strategy 插件是否安装
选择系统管理---全局安全配置
选择LDAP 进行配置
连接 LDAP TLS 加密端口时,由于是自签名的证书,需要将LDAP自签的CA公钥 添加到JAVA的信任库中。
报错如下图所示:
在jenkins服务器下执行以下操作:
由于这里用的jdk版本为11,因此JAVA的cacerts证书库的路径为:
$JAVA_HOME/lib/security/cacerts
备份cacerts证书库
cp $JAVA_HOME/lib/security/cacerts $JAVA_HOME/lib/security/cacerts_1230bak
导入cacerts证书库
keytool -importcert -keystore $JAVA_HOME/lib/security/cacerts -file ca-bundle.crt
注:默认密码为:changeit
jenkins 接入ldap注意事项:
1. jenkins接入ldap后,原有的管理员账号将无法登录,需要使用ldap账号登录。
2. jenkins接入ldap后,ldap中的所有账号默认拥有jenkins所有管理权限。
需要进行授权管理,启用授权
1.启用ldap 认证
进入openvpn主配置文件 ,生成如下内容
vim /etc/openvpn/server.conf
……
# ldap认证
plugin /usr/lib64/openvpn/plugin/lib/openvpn-auth-ldap.so "/etc/openvpn/auth/ldap.conf"
#
reneg-sec 0
注:/etc/openvpn/auth/ldap.conf 为ldap 认证文件
2.编辑ldap 认证文件
<LDAP>
# LDAP server URL
URL ldaps://ldap.ops.prod.daemon.tech:636
# Bind DN (If your LDAP server doesn't support anonymous binds)
# BindDN uid=Manager,ou=People,dc=example,dc=com
BindDN cn=admin,dc=daemon,dc=com
# Bind Password
Password Admin@123#!
# Network timeout (in seconds)
Timeout 15
FollowReferrals yes
</LDAP>
<Authorization>
# Base DN
BaseDN "ou=People,dc=daemon,dc=com"
# User Search Filter
#SearchFilter "(&(uid=%u)(accountStatus=active))"
SearchFilter "(uid=%u)"
# Require Group Membership
RequireGroup false
# Add non-group members to a PF table (disabled)
#PFTable ips_vpn_users
<Group>
BaseDN "ou=Groups,dc=example,dc=com"
SearchFilter "(|(cn=developers)(cn=artists))"
MemberAttribute uniqueMember
# Add group members to a PF table (disabled)
#PFTable ips_vpn_eng
</Group>
</Authorization>
编辑 ldap.conf文件
vim /etc/openldap/ldap.conf
TLS_REQCERT never
重启 openvpn服务
systemctl restart openvpn@server.service
以管理员身份登录JumpServer,进入系统设置---LDAP
LDAP服务器设置如下图:
LDAP 服务器
LDAP 用户
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。