作为 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
您无法使用 OpenLDAP 做到这一点,但这样做也不是很有用,因为只需要一个
(mail=*@*)
即可绕过该限制。 (或者如果你禁止这样做,那么 (mail=*@*.*)
,或者大约 26 个左右 (mail=*a*)
,等等)
相反,通过
olcLimits
设置大小限制,以便任何匿名查询只会返回例如最多 5 个结果 – 仍然可以解决,但更烦人:
olcLimits: anonymous size.soft=5 size.hard=5