admin管理员组文章数量:1588277
1. 简介
OpenLDAP是轻型目录访问协议(Lightweight Directory Access Protocol,LDAP)的自由和开源的实现,在其OpenLDAP许可证下发行,并已经被包含在众多流行的Linux发行版中。
主要包括以下4个部分:
- slapd - 独立LDAP守护服务;
- slurpd - 独立的LDAP更新复制守护服务;
- 实现LDAP协议的库;
- 工具软件和示例客户端;
2. 使用 docker 搭建部署 OpenLDAP
这里使用的是 ubuntu 20.04,已经提前安装好了docker。
2.1 下载 ldap 镜像
docker pull osixia/openldap:1.2.2
docker pull osixia/phpldapadmin:0.7.2
2.2 使用 docker 运行 ldap
docker run --name my-openldap-container -d osixia/openldap:1.2.2
docker exec -it my-openldap-container bash
slaptest #验证 slapd.conf 文件或 cn=配置目录
ldapsearch -x -H ldap://localhost -b dc=example,dc=org -D "cn=admin,dc=example,dc=org" -w admin
#ldapsearch:用于查询数据
#-x:用389端口进行简单认证
#-H:指定ldap server的地址,我们使用docker运行,所以此处是本机地址localhost
#-b:指明只在ldap search时有用,指明当前搜索范围的域名在哪里
#-D:当前用户的身份dn(管理员身份)
#-w:用户的密码
可以看到openldap已经启动成功
3. OpenLDAP 基础
3.1 OpenLDAP命令及数据操作
命令格式:ldapmodify [ldap 服务器地址] [你的用户名] [你的密码] [ldif 文件的地址]
Option | 说明 |
-H | ldapuri,格式为ldap://机器名或者IP:端口号,不能与-h和-p同时使用 |
-h | LDAP服务器IP或者可解析的hostname,与-p可结合使用,不能与-H同时使用 |
-p | LDAP服务器端口号,与-h可结合使用,不能与-H同时使用 |
-x | 使用简单认证方式 |
-D | 所绑定的服务器DN |
-w | 绑定DN的密码,与-W二选一 |
-W | 不输入密码,会交互式的提示用户输入密码,与-w二选一 |
-f | 指定ldif文件作为输入 |
-a | 添加新的entry,ldapadd缺省使用,ldapmodif可指定以达到同样作用 |
-c | 出错后忽略当前错误继续执行,缺省情况下遇到错误即终止 |
-n | 模拟操作但并不实际执行,用于验证,常与-v一同使用进行问题定位 |
-v | 显示详细信息 |
-b | 用于指定查找的节点 |
-d | 显示debug信息,可设定级别 |
-e | 设置客户端证书 |
-E | 设置客户端私钥 |
-LLL | 禁止输出与查找范围不匹配的信息 |
3.1.1 ldapsearch 对数据库进行检索查询
ldapsearch -x -H ldap://localhost -b dc=example,dc=org -D "cn=admin,dc=example,dc=org" -w admin
还可以在查询后指定 cn 或查询所有 cn
ldapsearch -x -H ldap://127.0.0.2:389 -b dc=example,dc=org -D "cn=admin,dc=example,dc=org" -w admin "cn=*"
3.1.2 ldapadd 增加新成员
在容器中的/home
目录下新建一个learn
目录
由于容器内没有 vi/vim,所以使用一种比较别扭的方式写入 lidf 文件
ldap 所有的数据文件都存储在 ldif 文件中
#冒号:后必须要有一个空格
cat > barbara.ldif << EOF
> dn: cn=barbara,dc=example,dc=org #第一行必须是dn,必须要有的
> objectClass: inetOrgPerson #一个对象类,下面的数据都是存在这里
> cn: barbara #一条记录的名称
> sn: Jensen #姓
> title: the world's most famous mythical manager
> mail: bjensen@example
> uid: bjensen #用户id
> EOF
使用 ldapadd 命令增加新成员
ldapadd -x -H ldap://127.0.0.2:389 -D "cn=admin,dc=example,dc=org" -w admin -f barbara.ldif
3.1.3 ldapdelete 删除成员
ldapdelete -x -H ldap://127.0.0.2:389 -D "cn=admin,dc=example,dc=org" -w admin "cn=barbara,dc=example,dc=org"
3.1.4 ldapmodify 通过配置文件实现不同的修改功能
写入 ldif 文件
cat > addorg.ldif << EOF
> dn: cn=barbara,dc=example,dc=org
> changetype: add #告诉ldapmodify是需要新增数据
> objectClass: inetOrgPerson
> cn: barbara
> sn: Jensen
> title: the world's most famous mythical manager
> mail: bjensen@example
> uid: bjensen
> EOF
使用 ldapmodify 命令新增成员
ldapmodify -x -H ldap://127.0.0.2:389 -D "cn=admin,dc=example,dc=org" -w admin -f barbara.ldif
写入 ldif 文件
dn: ou=People,dc=example,dc=org
changetype: add
objectclass: top
objectclass: organizationalUnit
ou: People
dn: ou=Servers,dc=example,dc=org
changetype: add
objectclass: top
objectclass: organizationalUnit
ou: Servers
使用 ldapmodify 命令新增数据
ldapmodify -x -H ldap://127.0.0.2:389 -D "cn=admin,dc=example,dc=org" -w admin -f addorg.ldif
3.1.5 ldappasswd 重置其他用户的密码
ldappasswd 用于重置其他用户的密码
ldapmodify 用于更改自己的密码
使用 ldappasswd
ldappasswd -x -H ldap://127.0.0.2:389 -D "cn=admin,dc=example,dc=org" -w admin "cn=barbara,dc=example,dc=org"
更改 barbara 的密码
ldappasswd -x -H ldap://127.0.0.2:389 -D "cn=barbara,dc=example,dc=org" -w xxxx -s mima
使用 ldapmodify
root@f6885a04cb54:/home/learn# cat > passwd.ldif << EOF
> dn: cn=barbara,dc=example,dc=org
> changetype: modify
> replace: userPassword
> userPassword: xinmima
> EOF
ldapmodify -x -H ldap://127.0.0.2:389 -D "cn=barbara,dc=example,dc=org" -w mima -f passwd.ldif
ldapmodify -x -H ldap://127.0.0.2:389 -D "cn=barbara,dc=example,dc=org" -w xinmima -f passwd.ldif
4. 本地搭建部署 OpenLDAP
这里使用的是 虚拟机 ubuntu 20.04
4.1 更新系统的包索引
apt update
4.2 安装LDAP
apt install slapd ldap-utils -y
第一次安装会弹出如下所示的配置,要求设置管理员密码:admin123
4.3 验证
安装完成之后,验证 slapd.conf 文件或 cn=配置目录
slaptest
4.4 重新配置
使用dpkg-reconfigure slapd
命令重新配置安装过的 ldap
4.4.1 是否创建初始配置或数据库
如果启用此选项,则不会为您创建初始配置或数据库,省略 openldap 服务器配置
这里选No
4.4.2 创建DNS域名
DNS域名用于构建LDAP目录的基本DN,也就是客户端要填写的基准DN
这里填写 example
4.4.3 设置组织名称/域名
请输入要在LDAP目录的基本DN中使用的组织名称
这里填写 example
4.4.4 卸载时是否删除数据库
清除 slapd 时是否希望删除数据库
这里选 No
4.4.5 创建新数据库之前是否移动旧数据库
/var/lib/ldap 中仍有文件可能会中断配置过程。如果启用这个选项,maintainer 脚本会在创建新数据库之前将旧的数据库文件移走。
移动旧数据库
这里选择 No
.5 查看启动情况及版本
systemctl status slapd
查看启动情况
slapd -VV
查看版本
5. 基础使用
5.1 查看目录数据库中的条目
slapcat
ldapsearch -x -b dc=example,dc=com
5.2 添加用户
在/etc/ldap目录下新建一个 add_content.ldif 文件,用来添加对应用户密码,添加一个 john 用户。
cd /etc/ldap
vim add_content.ldif
注意:在服务器配置时要将注释的解释删除
dn: ou=People,dc=example,dc=com #记录在数据库的位置
objectClass: organizationalUnit #对象类:组织单位
ou: People #组织单位
dn: ou=Groups,dc=example,dc=com
objectClass: organizationalUnit
ou: Groups
dn: cn=miners,ou=Groups,dc=example,dc=com
objectClass: posixGroup
cn: miners #公共常用名称,一条记录的名称
gidNumber: 5000 #编号
dn: uid=john,ou=People,dc=example,dc=com
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
uid: john #用户 id
sn: Doe #姓
givenName: John #给定的名称
cn: John Doe
displayName: John Doe #显示名称
uidNumber: 10000
gidNumber: 5000
userPassword: johnldap
gecos: John Doe
loginShell: /bin/bash
homeDirectory: /home/john
dn: uid=zhangsan,ou=Fawaikuangtu,dc=example,dc=com
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
uid: zhangsan
sn: Jo
givenName: zhangsan
cn: zhangsan Jo
displayName: zhangsan Jo
uidNumber: 10001
gidNumber: 5001
userPassword: 123456
gecos: zhangsan Jo
loginShell: /bin/bash
homeDirectory: /home/john
使用 ldapadd 命令添加用户,-x:简单身份验证
ldapadd -x -D cn=admin,dc=example,dc=com -W -f add_content.ldif
ldapsearch -x -b dc=example,dc=com
,-b:basedn 从基础 dn 开始搜索
或ldapsearch -x -D "cn=admin,dc=example,dc=com" -b "ou=People,dc=example,dc=com" -W
查看添加成功
5.3 下载 windows 版本的 ldap 客户端连接
下载 LDAP Admin(LDAP管理工具)
创建新连接
测试连接,连接成功
即可看到我们添加的新用户信息
6. 卸载 OpenLDAP
6.1 停止openldap
systemctl stop slapd
systemctl disable slapd
6.2 卸载
apt remove slapd ldap-utils -y
6.3 删除残留文件及目录
rm -rf /var/lib/ldap
rm -rf /etc/ldap
6.4 删除 ldap 用户及组
userdel ldap
userdel 曾创建的其他 ldap 相关用户
groupdel 曾创建的其他 ldap 相关组
注意:若用户及组不删除干净会影响后面的重装。
本文标签: OpenLDAP
版权声明:本文标题:OpenLDAP部署 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dongtai/1728038104a1143149.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论