如您所知,恢复 CentOS 的 root 密码很容易。您可以在 GRUB 中输入“E”并尝试重新挂载。有没有办法防止任何密码恢复?
我想限制那些可以远程访问服务器 (GRUB) 的人恢复 root 密码的所有常规方法。我需要一个远程解决方案,因为物理访问可以绕过所有受限方法
答案1
通过在 GRUB 中重新挂载来防止 CentOS 中的密码恢复可能具有挑战性,它需要修改引导加载程序配置并实施额外的安全措施。
完全消除所有可能的密码恢复方法是很困难的。
这里有一些方法:
- 全盘加密,使用 LUKS(Linux 统一密钥设置)等工具实现全盘加密
- 安全启动、在系统的BIOS或UEFI设置中启用安全启动
- BIOS/UEFI 密码、为系统的BIOS或UEFI固件设置强密码,以防止未经授权的访问启动设置
- GRUB密码、为GRUB配置密码,以防止未经授权访问其命令行界面
您需要问自己的问题是:用户友好性/简单性与安全性。
物理访问可以绕过所有受限方法
对我来说,物理访问还意味着有人窃取服务器、移除硬盘并在自己的计算机上读取它们。
如果您想阻止某人在具有物理访问权限的情况下重置密码,您需要使用以下命令来加密您的磁盘dm-crypt/cryptsetup/LUKS。
但是,如果远程用户访问您的系统,这与 GRUB 有什么关系呢?当涉及到远程访问时,使用 dm-crypt/cryptsetup/LUKS 进行的磁盘加密与 GRUB 没有直接关系。
GRUB(Grand Unified Bootloader)负责系统的初始引导过程并加载操作系统。它不直接参与磁盘加密。
为了增强物理访问的安全性,您需要对硬盘驱动器进行加密。如果您不想手动输入密码,那么问题是谁以及如何重新启动服务器。
如果有人在现场,您还可以创建一个 USB 记忆棒,作为一种加密狗,存储 LUKS 的密钥。当服务器启动时,插入 USB 记忆棒,服务器从 USB 记忆棒读取密钥/密码以解密硬盘并启动系统。
如果有人访问了 USB 记忆棒,他们也将获得密钥和密码。
远程访问安全
我需要一个远程解决方案..
加强远程访问服务器的安全性。如果您使用安全协议(例如 SSH)以及基于密钥的身份验证而不是密码。禁用直接 root 登录并创建具有有限远程访问权限的单独用户帐户。定期更新和修补服务器的软件以解决任何潜在的安全漏洞。
答案2
如果您唯一的愿望是防止编辑grub
,您可以grub
使用以下密码进行保护:GRUB 中的身份验证和授权指示。
请注意,默认情况下,每次重新启动后加载操作系统还需要密码。您需要允许启动操作系统,但通过添加密码来保护编辑,--unrestricted
如menuentry
答案中所示仅 GRUB 菜单编辑保护。