4.7.4. root 密码安全

为阻止人们使用 root 权限访问你的机器,你需要做下面的操作。

  • 阻止对硬盘的物理访问

  • 锁住 BIOS 来阻止从可移动介质启动

  • 为 GRUB 交互式会话设置密码

  • 锁住 GRUB 菜单,禁止编辑

如果可以物理访问硬盘,则可以使用下面的步骤,相对简单的重置密码。

  1. 将硬盘拿到一个可以设置 BIOS 从CD 启动的电脑。

  2. 使用紧急介质启动系统(Debian 启动磁盘, Knoppix CD, GRUB CD, …)。

  3. 用读写访问挂载根分区。

  4. 编辑根分区的”/etc/passwd“文件,使 root 账户条目的第二段为空。

对于 grub-rescue-pc ,即使用紧急介质启动的电脑,如果有编辑 GRUB 菜单条目 (参见 第 3.1.2 节 “第二阶段:引载加载程序”) 的权限,在启动时,使用下面的步骤更加简单。

  1. 使用内核参数启动系统来修改一些事情,比如说,”root=/dev/hda6 rw init=/bin/sh“.

  2. 编辑 “/etc/passwd“ 文件,使 root 账户条目的第二段为空。

  3. 重启系统。

系统的 root shell 现在可以无密码访问了。

[注意]注意

一旦某人拥有 root shell 访问权限,他能够访问任何内容,并可以重设系统上的任何密码。此外,他可以使用 johncrack 等软件包的暴力破解工具来比较所有用户的密码 (参见 第 9.4.11 节 “系统安全性和完整性检查”)。被破解的密码,可以用来和其它系统进行比较。

为避免这些相关问题,仅有的理论上的软件解决方案是使用 dm-crypt 和 initramfs (参见 第 9.8 节 “数据加密提示”)加密 root 分区(或 “/etc“ 分区) 。这样的话,你总是需要密码来启动系统。