如何卸载 RHEL 7 服务器中的文件系统模块以对其进行强化?

如何卸载 RHEL 7 服务器中的文件系统模块以对其进行强化?

我正在尝试根据 CIS 指南强化我的 RHEL Linux 服务器 7,因此我想卸载cramfs。

我输入了以下命令: modprobe -n -v cramfs

我得到了以下答案:

insmod /lib/modules/3.10.0-693.el7.x86_64/kernel/fs/cramfs/cramfs.ko.xz

而不是 CIS 中提到的:安装 /bin/true。我注意到我的系统中没有这样的文件。

问题:输出是什么意思?在这种情况下,我该如何卸载cramfs?

答案1

您正在运行的命令modprobe -n -v cramfs除了输出您传递的命令-n(这是 的简短选项)之外什么也不做--dry-run。输出将在该位置insmod /lib/modules/3.10.0-693.el7.x86_64/kernel/fs/cramfs/cramfs.ko.xz加载模块。cramfs

您可能想要这样做modprobe -v -r cramfs,因为-rflag 是 的简短选项--remove

这不会阻止模块在重新启动时再次加载,或手动再次加载。为了防止这种情况,您需要将涉及更多的模块列入黑名单。

答案2

因此,正如 GracefulRestart 指出的那样,modprobe -n -v cramfs不会执行任何更改。编写命令的另一种方法是modprobe --dry-run --verbose crampfs

您会注意到,这就是它出现在审计CIS 条目中的部分,并且您的输出与预期不同,因为您不合规。因此,您可以转到该特定检查的修复部分,即创建一个.conf文件末尾etc/modprobe.d/添加以下行

install cramfs /bin/true

然后运行

rmmod cramfs

卸载cramfs

之后你应该服从。


提供有关正在发生的事情的更多信息:

modprobe.d 手册页

install modulename 命令...这是最强大的原语:它告诉 modprobe 运行您的命令,而不是像平常一样将模块插入内核。该命令可以是任何 shell 命令:这允许您执行您可能希望的任何类型的复杂处理。例如,如果模块“fred”与已安装的模块“barney”配合得更好(但它不依赖于它,因此 modprobe 不会自动加载它),您可以说“install fred /sbin/modprobe barney” ; /sbin/modprobe --ignore-install fred",这将执行您想要的操作。请注意 --ignore-install,它会阻止第二个 modprobe 再次运行相同的安装命令。另请参阅下面的删除。

因此,我们不是将cramfs模块添加到内核中,而是用install cramfs /bin/true仅返回0值并继续前进的操作来替换该操作。

相关内容