linux安全和root访问问题....
我正在为基于底层的区块链设置一个运行验证器节点的服务器。我试图加强我的服务器的安全性。我为所有端口设置了 ufw,但节点运行所需的端口除外。我用 ed25519 设置了 2FA、SSH,然后我花时间试图弄清楚,如果出于某种疯狂的原因有人进入......我怎么能阻止某人使用systemctl
或poweroff
拥有sudo
特权。目标是最大化正常运行时间并始终与其他节点保持同步。
无论如何,我开始阻止bash
允许 SSH 的用户帐户的命令并阻止 SSH 到root
. 然后我又屏蔽了一些命令并想,如果有人能找到解决办法怎么办?所以,我刚开始阻止太多东西哈哈。即使我sudo
为用户禁用并阻止了一些用户仍然可以使用的命令和systemctl
节点。最终,我找到了关于如何只允许用户使用一些命令的指南。stop
service
更新:我没有正确地从 sudo 组中删除用户。之后他们仍然可以使用systemctl
,但系统随后允许systemctl
弹出输入 root 用户密码以进行身份验证。无论如何,我只是想要一些简单而安全的东西......
我最终删除了用户的所有命令并将 su 命令符号链接并将其重命名为只有我知道的随机命令。用户执行的所有其他命令都以
-rbash: /usr/lib/command-not-found: restricted: cannot specify /' in command names
我拿走了bash history
和bash autocomplete/tab completion
。现在你唯一能做的就是猜测命令,这将使你达到你仍然必须通过我的root
密码的地步。当只有一个可用命令以这种方式被屏蔽时,黑客有没有办法扫描可用命令?
无论如何,我之所以这么说,是因为我一直听说最佳安全实践涉及“禁用根”。有时我认为它只是禁用 root SSH,我已经这样做了,但有时我读它就像禁用 root 帐户一样。有人说禁用密码并尝试将其与sudo
特权分开,以便更容易追踪到个人用户。
就我而言,我需要以某种方式保留 root 访问权限,但我基本上将所有内容都隐藏在 root 用户中。所以,如果有人可以访问root,那就结束了。但是,它在 2FA、SSH 和一个未知命令之后,您可以尝试输入密码来访问 root。
我是否在考虑这个“为安全而禁用根”全错了,我应该完全禁用它,还是到目前为止我所做的一切有意义?