这里有一些指示关于如何禁用您的sudo
密码。这些带有以下警告
如果您禁用
sudo
帐户密码,将严重损害计算机的安全。任何坐在您无人值守的登录帐户上的人都将拥有完全root
访问权限,并且恶意黑客可以更轻松地进行远程攻击。
我不担心人们物理访问我的机器。如果我忽略此警告并禁用密码,哪些远程攻击可能会变得可能或更容易?
答案1
如果您允许无密码 sudo,则任何能够以您的用户身份在您的计算机上运行代码的人都可以以 root 身份轻松运行代码。这可能是有人在您登录时使用您的控制台,但不在您的计算机前,您不必担心(无论如何,具有物理访问权限的人几乎可以做他们想做的事情)。这也可能是某人在您已通过 ssh 连接到您自己的计算机的另一台计算机上访问您的帐户。但也可能有人利用远程安全漏洞,例如利用浏览器错误将代码注入您的浏览器实例的网站。
这有多大?没那么多,有几个原因:
- 发现远程漏洞的攻击者也可能找到本地根漏洞。
- 许多攻击者并不关心 root 权限。他们想要的只是发送垃圾邮件并感染其他计算机,并且他们可以以您的用户身份执行此操作。
- 有权访问您帐户的攻击者可以投放一个特洛伊木马,该木马会捕获您的击键(包括您的密码),或者利用您下次用来获取 root 权限的任何方式来执行自己的命令。
- 如果您是计算机上的唯一用户,则没有太多需要保护的内容是您的用户无法访问的。
另一方面:
- 如果您及时更新了安全更新,攻击者可能无法找到可利用的本地漏洞。
- 非 root 攻击者无法很好地清除他的痕迹。
- 时不时地输入密码并不是什么负担。
- 必须输入密码会提醒您正在做一些危险的事情(例如:可能会丢失数据或使您的计算机无法使用)。 (作为非 root 用户,唯一真正的危险是错误地删除数据,当您删除某些内容时,这种情况通常很明显,应该格外小心。)
答案2
我认为 sudo 的密码只能保护你免受两件事的影响:
- 您自己的系统的意外损坏(例如,使用
rm -rf
shell 历史记录中的相对路径在与以前不同的目录中运行某些系统,或者类似的事情) - 运行(恶意)脚本来调用
sudo
并试图损害您的系统(但我不认为这种恶意软件很流行)
如果您愿意,您可以NOPASSWD
仅对选定的命令使用选项,这些命令不会损害您的系统(对于编辑器或重新启动服务)并保留其他命令的密码。
答案3
值得注意的是,一些有能力的组织实际上更喜欢当用户需要登录许多不同的远程主机时,尤其是当其中包括具有不同安全级别的主机时,可以使用无密码 sudo。
输入密码的问题在于您定期将密码提供给远程系统。我们使用 SSH 的原因之一就是为了避免这种安全漏洞。这是一个权衡问题:您正在增加用户密码被泄露的可能性,以降低已泄露会话或密钥的攻击者能够获得 root 访问权限的可能性。特别是想象以下场景:
- 大型组织
- 许多主机
- 主机具有不同的安全级别
- 非 root 访问已经有害
- 用户密码可以解锁很多东西
在我描述的场景中,无密码 sudo 可能增加通过保护用户的密码来保证您的安全。这与互联网上常见的密码重用攻击类似,只不过该漏洞源于统一身份验证系统,而不是实际重用密码。
除非您在一家大公司,否则密码 sudo 可能会提高您的安全性,但不一定会提高很多。除非您确实是系统安全方面的专业人士,或者它是一个没有什么特别有价值的主机,否则我建议您将其保留。
答案4
如果您没有sshd
安装,那么它非常安全,除非您自己破坏了某些东西。