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