Rav*_*ina 14
禁用 root 并创建能够使用的非 root 用户的一个安全优势sudo
是保护您的服务器免受试图猜测您的“root”密码的蛮力攻击。
正如 Rinzwind 所说,您认为哪个更安全?
另一个更重要的优势是,当您只有一个 root 用户时,您正在运行的所有内容都以“root”的力量运行,root 有权执行所有操作,因此运行错误的命令或犯一个简单的错误都有可能破坏你的服务器。
只需创建一个非 root 用户:
还要记住,如果有人可以物理访问服务器,他或她几乎可以对服务器做任何他/她想做的事情,除非该服务器上的所有内容都已加密。
除了@Ravexina 的回答中提到的有效问题之外,我认为值得注意的是:
事实上,对 SSH 的成功暴力攻击可能是黑客进入您的服务器的最不可能的方式。当输入无效密码时,SSH 会休眠 3 秒,因此暴力破解强远程 SSH 密码实际上是不可能的。*
更有可能的是,他们可以找到远程代码执行漏洞并以这种方式“进入”。如果 当他们这样做时,您希望他们获得尽可能少的许可。你真的不希望他们这样root
。
看,当您运行一个程序时,例如 Apache、PHP 或 PHP/Python/NodeJS 脚本,甚至您的 Web 浏览器:该“进程”也必须以用户身份运行。例如:如果您将 PHP 脚本运行为root
,那么该 PHP 进程可以做任何root
可以做的事情。
举例来说,恶意行为者能够执行“远程代码执行”攻击:他们能够在您的服务器上运行代码。如果 PHP 运行该恶意代码,并且 PHP 运行为root
,则意味着黑客的代码也运行为root
。但是,如果 PHP 作为权限较低的用户运行(即:)webapp
,则可以显着减轻它可能造成的损害。当您运行控制台脚本时,这也适用,而不仅仅是 PHP:每种语言都可能存在此问题。
这里棘手的是:RCE 漏洞甚至可能不是您编写的代码:它可能深埋在您的代码调用的某些 3rd 方库/模块中:计算日期、与数据库交互、渲染 HTML 等...换句话说:您可能甚至不知道它的存在。当您更新依赖项/库时,它可能会默默地添加到您的代码库中。正如我们在EventStream hack中看到的,获得上游库存储库的控制权并使用它将恶意代码推送到毫无戒心的下游应用程序非常容易。如果该恶意代码以 root 身份运行,它就可以控制您的整个服务器,甚至掩盖其踪迹,让您永远不知道它发生的地方。
因此,虽然为所有事情设置单独的用户可能无法完全阻止攻击,但如果确实发生,它将显着减轻远程代码执行攻击可能造成的损害。
* 显然,如果您的密码是abc123
这样的,则不适用,因为这可能是黑客在暴力破解时首先尝试的密码之一。
归档时间: |
|
查看次数: |
2831 次 |
最近记录: |