从安全角度来看,在 /boot 分区上设置不可变位会产生什么影响。是吗可取的将不可变位 ( -i
) 设置为 /boot 下的所有内容?它会增强还是降低系统安全性?
我想更进一步,对其他“珍贵”文件(如/etc/bind/named.conf
等)执行相同的操作。
答案1
长话短说
除非您有特殊的审核要求,否则不要这样做。一般来说,这带来的麻烦大于其价值。
解释
唯一应该具有 /boot 写入权限的帐户是 root。如果你有root权限,你可以取消设置不可变位,并且几乎可以做你想做的事。
以只读方式安装 /boot、设置不可变位或类似的操作的主要缺点是,每次更新内核或引导加载程序时都需要撤消这些设置。这更有可能给你带来绊脚石,而不是提供有意义的安全保障。
备择方案
取决于你是什么真的尝试这样做时,您可能有一些替代方案。例如:
- 如果您担心文件系统损坏,确保 /boot 位于很少写入的单独分区上是一个好主意。
- 定期验证 /boot 的内容绊线或者德布苏姆如果您担心篡改,尤其是与存储在单独的只读介质上的哈希值进行比较时,这是一个很好的安全措施。
- 将 /boot 挂载为只读,然后让程序包管理器在更新期间将其挂载为读写,可能会很有用。
在 Apt 更新期间重新挂载只读分区
作为最后一个替代方案的示例,您可以在 /etc/fstab 中将 /boot 配置为只读,然后将类似于以下内容的内容添加到基于 Debian 的系统上的 /etc/apt/apt.conf 中:
DPkg {
Pre-Invoke { "mount -o remount,rw /boot"; };
Post-Invoke {
"test ${NO_APT_REMOUNT:-no} = yes ||
mount -o remount,ro /boot ||
true";
};
};
这将使 /boot 保持只读状态(更新期间除外)。显然,如果您不使用 apt 包管理器,或者由于其他原因上述方法不起作用,您将需要做一些不同的事情。