如何在 linux 内核中禁用 conntrack 协议解析?

信息安全 linux 防火墙 硬化 核心
2021-08-15 02:25:35

安全研究员 Jacob Appelbaum建议避免 linux 内核中的某些与 conntrack 相关的代码路径,这些代码路径在内核中进行协议解析(例如 fdp、sip 等)以达到强化目的。

如何在 linux 内核中禁用 conntrack 协议解析?

2个回答

有几种方法可以设置模块参数,包括临时的持久的先前的答案仅提供了一个临时更改,如果模块已加载,则该更改将不起作用。

持续变化

更改将在加载模块后立即生效,无论是手动完成还是在启动时自动完成。如果模块已经加载,您必须重新启动,或者加载并卸载它,如果它具有不可删除的依赖项,这可能会也可能不会。为此,请创建一个文件,例如/etc/modprobe.d/no_conntrack_helper.conf,其中包含以下内容:

options nf_conntrack nf_conntrack_helper=0

临时更改 (modprobe)

这需要在运行命令之前卸载模块。卸载模块或系统重新启动时,更改将消失。您可以通过modprobe在加载模块时将特定参数作为参数传递给实用程序来更改它们以root身份加载模块:

modprobe nf_conntrack nf_conntrack_helper=0

临时更改 (sysfs)

一些模块即使在模块被加载之后也可以修改它们的参数。这可以通过写入sysfs. 我不知道您要更改的特定参数是否可以在运行时修改,但如果可以,您希望以 root 身份运行以下命令:

echo 0 > /sys/module/nf_conntrack/parameters/nf_conntrack_helper

您可以禁用该模块。

modprobe nf_conntrack nf_conntrack_helper=0

有关在不完全禁用模块的情况下保护助手的更多信息,请参见https://home.regit.org/netfilter-en/secure-use-of-helpers/