在失败的“su”或“sudo”上错开身份验证延迟

在失败的“su”或“sudo”上错开身份验证延迟

我即将开始作为系统管理员的新工作,并且我一直在考虑在su或上实现冷却功能sudo。在第一次失败尝试后的几秒钟内,冷却时间会阻止用户使用这些命令,并且等待时间会随着每次失败尝试而增加。

这个概念背后的想法是,授权用户第一次可能会出错,但第二次就会正确。冷却时间将阻止和延迟对手使用暴力变体。

我的方法有缺陷吗?用修改后的脚本替换 sudo 命令是否明智?或者我应该修补可执行文件本身?


编辑:我已经在谷歌上搜索过这个,但没有找到。 SO、SuperUser.SE 和 Security.SE 也是如此。如果您觉得这个问题不适合 ServerFault,请标记它。

答案1

我的方法有缺陷吗?用修改后的脚本替换 sudo 命令是否明智?或者我应该修补可执行文件本身?

是的,您的方法有一个缺陷:正如评论中指出的,安全的第一条规则是不要建立自己的。您没有机会像已经测试过的代码一样彻底地测试自己的代码susudo即使您确实设法使其基本正确,您实际上也肯定会在某个地方错过一些边缘情况。 (即使你有报酬,要正确地编写非安全关键代码也已经够困难的了。)就是不要这样做。

反而,使用 PAMpam_faildelay模块。它允许您配置延迟,可能允许您交错延迟,即使不允许,从其中复制代码并实现交错延迟几乎肯定比替换su和 更不容易出错sudo。如果您不确切知道自己在做什么,我仍然不建议创建 PAM 模块,即使是基于现有的类似模块(任何与 PAM 挂钩的内容都有引入安全漏洞的风险),但至少您不会搞乱基本的系统实用程序,试图从头开始添加您自己的逻辑。

此外,作为熊凌峰指出,还有很多其他方法可以获得root权限。

答案2

sudo 和 su 并不是获得 root 权限的唯一方法。尝试 PAM。我相信这比修补二进制文件对您来说更好。

相关内容