Dan*_*mer 6 security root sudo authorization
我运行一个服务器,供一群人用于电子邮件、邮件列表、个人网络主页等。
我考虑了为其他成员提供 root 访问权限以允许他们处理服务器上的问题的方法。但我不喜欢给每个人完全的 root 权限。
两个用户必须按sudo样式输入密码才能打开 root shell的想法怎么样?这将防止单个用户劫持整个服务器。为了提高安全性,可以使用大于 1 的任意数量的所需用户密码。正如我现在看到的,这可能是在一群彼此非常了解并住在附近的人中提供 root 访问权限的好方法。
某些操作需要双重批准是某些安全策略的一部分;例如:
您会注意到,这与身份验证无关(例如,输入密码以显示您的身份),而是关于授权,即决定是否允许某个操作。
对于背景阅读,我推荐罗斯安德森的安全工程。如果可以,请购买最新版本,否则第一版可在线获取。最相关的章节是“访问控制”;关于银行和核指挥的章节中有一些例子。
Unix 提供了一个简单的安全模型,只有两个级别:用户和超级用户。这既是一个优势(简单意味着在系统本身和安全策略的设计和实现中出错的余地更小),也是一个弱点(复杂的安全策略无法在本地表达)。如果您担心流氓用户获得 root 权限,请不要给他 root 权限。很少有关于 root 做什么的检查;唯一的限制是获取 root 的操作可以远程记录,某些外部操作(网络流量)也可以。流氓用户可以假装想要获得 root 权限来做某件事,但实际上却做另一件事,同时向其他用户隐藏他的行为。因此,通过要求其他用户审查 root 访问权限,您不会获得太多安全性。相反,您将通过减少root 访问权限的可用性(我猜你想给不太受信任的用户 root 访问权限,以便在出现问题时作为备份;双重批准会增加很多负担)。
双重批准对于特定操作很有用:爱丽丝说“请授权我做 X”,鲍勃说“我授权爱丽丝做 X”,然后系统执行 X(X 可以例如将 1,000,000,000 美元从一个银行账户转移到另一个,或核莫斯科,或拒绝编辑)。如果爱丽丝说“请授权我做我想做的任何事”并且鲍勃同意,鲍勃所做的一切就是回应你(决策者)已经说过的,即爱丽丝可以被授权做任何事情。你不妨让爱丽丝成为 sudoer。
我不知道 Unix 上有任何现有系统可以让多个用户在类似 sudo 的框架中批准特定命令。
我不知道有这样的程序。
我认为总的来说,它是有缺陷的,并且与允许单个用户可信访问有限命令相比,它并没有给您带来更多的安全性。
就我个人而言,我不会向任何我不认识的人授予 sudo 访问权限,即使是命令的子集,因为很容易错过某些内容并授予他们您未预料到的访问权限。
相信他们,或者不相信他们,建立不太信任他们的层并没有帮助。