如何防止某人通过引导加载程序获得 root 访问权限?

如何防止某人通过引导加载程序获得 root 访问权限?

ro quiet splash在 Ubuntu 10.10 上,我可以通过替换为root 密码来以 root 身份登录rw init=/bin/bash。如何保护我的机器并禁用此后门?

答案1

您需要确保几件事的安全,因为将其中任何一个打开都会引入一扇具有类似影响的门(它并不是真正的后门,因为它都有详细记录)。 (例外:如果在步骤 1 中您也可以物理保护控制台,那么您无需执行任何其他操作。)

  1. 从物理上保护计算机。您必须防止攻击者断开磁盘与计算机的连接并将其连接到他们控制的另一台计算机,以及重置固件访问控制。
  2. 使用密码(或其他形式的访问控制)保护计算机 BIOS(或其他启动固件)中的启动过程。确保内部硬盘是唯一选择的启动介质,以防止攻击者从 Live CD、USB 或其他介质启动。当然,还要锁定对 BIOS 的访问,以便攻击者无法更改该设置。
  3. 保护引导加载程序,以便引导除默认命令行之外的任何内容都需要提供密码。

步骤 1 和 2 与您的硬件有关,而不是与操作系统有关,因此如果您遇到问题,请询问超级用户。对于第 3 步,做什么取决于您的引导加载程序(您没有指出)。 Ubuntu 上的默认引导加载程序是幼虫2

首先,生成密码哈希grub-mkpasswd-pbkdf2

/etc/grub.d/01_users接下来,通过创建一个名为(重要的是该文件带有)的可执行文件(mod 755 或 700)来声明用户和密码,01其中包含以下内容(生成的grub.pbkdf2.….DEADBEEF内容在哪里grub-mkpasswd-pbkdf2):

#!/bin/sh -e
## Declare users and passwords
cat <<EOF
set superusers="torayeff"
password_pbkdf2 torayeff grub.pbkdf2.sha512.10000.DEADBEEF
EOF

只有经过身份验证的超级用户才能编辑菜单条目或输入命令行。其他用户只能启动准备好的条目。

如果您还想将某些引导条目限制为经过身份验证的用户,请在生成这些条目的位置替换menuentry "name"为。menuentry "name" --users "user1 user2"您的 Linux 安装、memtest86 以及该计算机上可能拥有的任何其他操作系统的条目分别位于/etc/grub.d/10_linux/etc/grub.d/20_memtest86+和中/etc/grub.d/30_os-prober

当您在 中进行更改后/etc/grub.d,请sudo update-grub在重新启动之前运行。

相关内容