防止在 OpenLDAP 中搜索 mail=*

问题描述 投票:0回答:1

作为 OpenLDAP 管理员,我如何防止匿名(未经身份验证)用户搜索例如mail=* 带有一个星号?

ldapsearch ... "mail=*"

必须禁用,但是

ldapsearch ... "mail=*test*"

必须保持允许。

我尝试添加此规则,但没有帮助。

dn: olcDatabase={2}mdb,cn=config
changetype: modify
add: olcAccess
olcAccess: {0}to filter="(mail=*)"
  by dn.base="cn=admin,dc=example,dc=com" read
  by * none
olcAccess: {1}to * 
  by dn.base="cn=admin,dc=example,dc=com" write
  by * read

ldap acl openldap slapd
1个回答
0
投票

您无法使用 OpenLDAP 做到这一点,但这样做也不是很有用,因为只需要一个

(mail=*@*)
即可绕过该限制。 (或者如果你禁止这样做,那么
(mail=*@*.*)
,或者大约 26 个左右
(mail=*a*)
,等等)

相反,通过

olcLimits
设置大小限制,以便任何匿名查询只会返回例如最多 5 个结果 – 仍然可以解决,但更烦人:

olcLimits: anonymous size.soft=5 size.hard=5
© www.soinside.com 2019 - 2024. All rights reserved.