【LDAP】LDAP 未授权访问漏洞修复方案

前言

最近生产环境中,被安全团队扫描到了 LDAP服务存在未授权访问漏洞。这里记录下如何解决。

问题原因

未对LDAP的访问进行密码验证,导致未授权访问。因为默认的LDAP服务都是开启匿名访问的,

这一般是大部分LDAP服务出现此漏洞的主要原因,导致可以使用ldapbrowser直接连接,获取目录内容。

例如:

ldapsearch -x -b "dc=hadoop,dc=com" -H ldap://10.4.3.3:389| grep test

在这里插入图片描述
这里我们直接就能访问到ldap的资源。

解决方案

  1. 修改 cn=config.ldif 文件
vim /etc/openldap/slapd.d/cn=config.ldif

#插入如下内容:
olcDisallows: bind_anon
olcRequires: authc

在这里插入图片描述

  1. 修改 olcDatabase={-1}frontend.ldif 文件
vim /etc/openldap/slapd.d/cn=config/olcDatabase={-1}frontend.ldif

#插入如下内容:
olcRequires: authc

在这里插入图片描述
3. .重启服务

systemctl restart slapd
#查看任务状态
systemctl restart slapd
  1. 验证是否成功
ldapsearch -x -b "dc=hadoop,dc=com" -H ldap://10.4.3.3:389| grep test

此时会报错,additional info: anonymous bind disallowed
在这里插入图片描述

SSSD

当我们禁止匿名用户访问LDAP 服务后,SSSD 服务可能会无法正常访问 LDAP 服务并拉取缓存数据到本地。sssd 缓存数据目录在 /var/lib/sssd/db

当我们执行 getent passwd 里面无法过过滤到 LDAP 的用户。

解决方案:

  1. 修改 SSSD 配置文件:检查 /etc/sssd/sssd.conf 文件,确保在 [domain/LDAP] 部分中设置了正确的凭据,例如:
[domain/LDAP]
id_provider = ldap
auth_provider = ldap
ldap_uri = ldap://ldap.example.com
ldap_search_base = dc=example,dc=com
ldap_tls_reqcert = never
ldap_default_bind_dn = cn=admin,dc=example,dc=com
ldap_default_authtok_type=password
ldap_default_authtok = admin_password

在这个示例中,ldap_default_bind_dn 指定了连接 LDAP 服务器的账号,ldap_default_authtok 指定了该账号的密码。请将这些值替换为你实际的 LDAP 管理账号和密码。

  1. 重启 sssd 服务
systemctl restart sssd
  1. 查看用户
getent passwd

扩展

那么我们该如何访问禁止匿名用户访问的ldap 呢?

答案是使用:-D + -W 参数来进行访问

例如:

ldapsearch -x -D "your_username" -W -b "search_base" "(search_filter)"
  • -D :指定绑定的分发名称(你的用户名)
  • -W:提示输入密码
  • -b :指定搜索基础,“(search_filter)” 指定搜索条件

那么我该怎么正确填写 -D 参数:

举例来说,如果你有一个LDAP用户"John",它的DN可能是类似于 "cn=John,ou=users,dc=example,dc=com"的形式。你需要将这个DN或者类似的用户标识填入到"-D"参数中。

例如:

ldapsearch -x -D "cn=John,ou=users,dc=example,dc=com" -W -b "search_base" "(search_filter)"
  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值