我有一个在全球范围内开放的 openldap 服务器(带有用户密码),我正在尝试保护它的安全。
步骤 1 是通过 ACL 限制经过身份验证的用户访问数据。
第 2 步,为了防止暴力攻击,实施政策。看起来效果不错,很酷。
步骤 3 是“处理被锁定的用户并发誓这不是他的错”,通过尽早发现 dn 锁定及其可能的原因。
我已经开始编写脚本来检查 pwdAccountLockedTime 属性是否存在、通过电子邮件发出警告、响铃等。这很好,但我发现很难将其与日志中的数据联系起来,这些数据表明被指控的登录发生的时间、登录地点等。所有数据都在那里,但将它们全部整合在一起真的很麻烦。我确信我不是唯一一个面临这个问题的人(或者我试图解决错误的问题?)并且解决方案是存在的,我只是还没能找到它们。我错了吗?
忘了说了,fail2ban 不太适合。有很多客户端,我不一定知道他们的地址,他们可能会对目录进行合法的大量请求,并且不会通过 fail2ban。听起来很奇怪,我知道,但我们这里的配置很复杂,我们必须凑合着用。这就是我研究 ppolicy 的原因。
简而言之,我希望有一种方法可以监控 pwdAccountLockedTime 的发生,并且当发生这种情况时,立即在一个易于阅读的日志文件中获取与哪个用户有关的信息、pwdFailureTime 值、当时执行了哪些请求以及来自哪个 IP 地址。那太好了,肯定存在吧?
答案1
我对第 3 步提出质疑。通过日志查找可能受影响的用户并不能解决实际问题,即他们无法登录。
您所需要的只是一个管理操作,即使用临时的新密码重置帐户,当他投诉时(通过其他方式验证他的身份后)告诉他,并且他必须在下次登录时更改密码,所有这些都可以通过策略来完成。