-1

linux安全和root访问问题....

我正在为基于底层的区块链设置一个运行验证器节点的服务器。我试图加强我的服务器的安全性。我为所有端口设置了 ufw,但节点运行所需的端口除外。我用 ed25519 设置了 2FA、SSH,然后我花时间试图弄清楚,如果出于某种疯狂的原因有人进入......我怎么能阻止某人使用systemctlpoweroff拥有sudo特权。目标是最大化正常运行时间并始终与其他节点保持同步。

无论如何,我开始阻止bash允许 SSH 的用户帐户的命令并阻止 SSH 到root. 然后我又屏蔽了一些命令并想,如果有人能找到解决办法怎么办?所以,我刚开始阻止太多东西哈哈。即使我sudo为用户禁用并阻止了一些用户仍然可以使用的命令和systemctl节点。最终,我找到了关于如何只允许用户使用一些命令的指南。stopservice

更新:我没有正确地从 sudo 组中删除用户。之后他们仍然可以使用systemctl,但系统随后允许systemctl弹出输入 root 用户密码以进行身份​​验证。无论如何,我只是想要一些简单而安全的东西......

我最终删除了用户的所有命令并将 su 命令符号链接并将其重命名为只有我知道的随机命令。用户执行的所有其他命令都以

-rbash: /usr/lib/command-not-found: restricted: cannot specify /' in command names

我拿走了bash historybash autocomplete/tab completion。现在你唯一能做的就是猜测命令,这将使你达到你仍然必须通过我的root密码的地步。当只有一个可用命令以这种方式被屏蔽时,黑客有没有办法扫描可用命令?

无论如何,我之所以这么说,是因为我一直听说最佳安全实践涉及“禁用根”。有时我认为它只是禁用 root SSH,我已经这样做了,但有时我读它就像禁用 root 帐户一样。有人说禁用密码并尝试将其与sudo特权分开,以便更容易追踪到个人用户。

就我而言,我需要以某种方式保留 root 访问权限,但我基本上将所有内容都隐藏在 root 用户中。所以,如果有人可以访问root,那就结束了。但是,它在 2FA、SSH 和一个未知命令之后,您可以尝试输入密码来访问 root。

我是否在考虑这个“为安全而禁用根”全错了,我应该完全禁用它,还是到目前为止我所做的一切有意义?

4

1 回答 1

0

您还可以创建一个 SSH 密钥并使用它来登录 Linux 服务器,而不是使用密码,并且不要共享您的私钥。

以下链接是关于如何创建 SSH 密钥的教程,https://www.cyberciti.biz/faq/how-to-set-up-ssh-keys-on-linux-unix/

您还可以在 sshd_config 文件中使用 AllowUsers 选项添加用户过滤:

AllowUsers admin1@192.168.1.* admin2@192.168.1.* otherid1 otherid2

This allows admin1 and admin2 only from 192.168.1.* addresses and otherid1, otherid2 from anywhere.
于 2021-09-30T13:51:16.640 回答