我为一家小型 ISP 工作,为大约 6,000 名用户提供电子邮件服务,我们正在升级到新的 Debian 邮件服务器。我们从用户那里收到的众多请求之一是希望能够自行更改电子邮件密码。
过去,我们一直避免使用此选项,但 qmailadmin 除外,它只提供给少数我们可以信任的企业客户。总的来说,在我看来,让用户更改自己的电子邮件密码是灾难的根源。这不仅意味着他们可能会使用非常愚蠢的密码,而且代码错误可能会让攻击者更改每个人的密码的难度可能相当大。
此外,从历史上看,我们的 Webmail(如果你想知道的话,是 Squirrelmail 和 Horde)完全在单独的服务器上运行,但许多 HOWTO 建议将它们放在同一台服务器上。同样,这是我避免的事情,因为我有点偏执,但这可能是理所当然的。如果我没记错的话,这是用户无法通过自己的 Webmail 更改密码的最大原因。
是我太偏执了吗,还是这就是过去 7 年没人入侵我们邮件服务器的原因?(除了偶尔有垃圾邮件发送者钓鱼窃取用户密码)
答案1
我觉得你太偏执了。用户驱动的密码更改允许用户选择他们认为容易记住的密码,当他们怀疑男朋友/女朋友/母亲在监视他们时更改密码,等等。
密码更改应用没有理由成为安全漏洞。将 UI 和后端逻辑完全分开,也许可以编写一个简单的 CLI 工具来执行数据库操作并从 Web 应用中调用它。这样,您的 CLI 工具就可以对收到的每个请求执行自己的健全性检查。
一些用户/密码数据库已经具有经过充分测试的、可靠的密码更改机制,例如 OpenLDAP 的密码修改扩展操作。
是的,我建议将网络邮件放在不同的主机上。多年来,我管理过几个大型电子邮件网站,我遇到的唯一问题就是未能及时更新网络邮件应用程序。网络邮件应用程序庞大、复杂,而且通常没有考虑到安全性。
答案2
您还可以进行设置,使用户无法设置简单的密码。我假设在您当前的环境中,您正在为用户更改密码?如果是这样,您是否使用随机生成器,然后只将其生成的密码提供给他们?我也不希望出现这种情况,因为在某个时候可以访问他们的密码,这似乎对您来说是一种负担。