为什么 UFW 使用不同的 sysctl.conf 文件?

为什么 UFW 使用不同的 sysctl.conf 文件?

/etc/sysctl.conf 中有很多与网络相关的设置,/etc/sysctl.d/ 中有很多文件。我的数据中心操作员已预先配置 Ubuntu 操作系统以使其在其环境中最佳工作,并在其中添加了一个自定义文件。我想它们在操作系统中处于良好的状态,如果我有充分的理由这样做,我只需要在那里进行更改。我不完全理解它们可能涉及的安全问题的所有细节,所以我不想碰它们。

当我启用防火墙 UFW(简单防火墙)时,其配置文件表示它将使用 /etc/ufw/sysctl.conf 中自己的副本覆盖这些设置。

对此我有两个问题:

  1. 这是否意味着 /etc/sysctl.conf 文件和 /etc/sysctl.d/* 文件中的所有现有设置都将被完全忽略,并且仅考虑 /etc/ufw/sysctl.conf ?或者 /etc/ufw/sysctl.conf 中提到的任何内容都会覆盖其他现有设置(如果我注释掉或删除其所有行,则什么也不会发生)?

  2. 为什么要使用单独的文件?旧文件仍然存在,但可能/部分未使用或无效。这似乎是非常糟糕的做法,也是错误和混乱的一大根源。它记录了我如何停止这种行为并切换回默认文件(但不清楚 /etc/sysctl.d/* 会发生什么)。我为什么要不是做这个?这是为什么不是已经默认了吗?

我在网上找不到有关这些主题的任何信息。有很多地方解释说 UFW 有单独的文件,我应该编辑它们。但没有人解释原因。在不知道后果的情况下我无法做出决定。

答案1

这是我迄今为止所发现的部分答案。

正在阅读UFW的源代码,我发现它只是在 UFW 启动时从自己的配置文件加载设置。这意味着此时,它将将该文件中的所有设置添加到现有配置中。这将仅覆盖此文件中的活动值,并且所有其他设置保持不变。如果此文件为空,则不会执行任何操作。

我还检查了该文件中的每个密钥,发现 Ubuntu 18.04 没有重叠。大多数设置都是新的(不包含在现有的系统文件中),只有一两个设置相同的键但也设置为相同的值,因此它不会改变任何内容。

基于此,我决定保持原样。如果我必须调整某些内容,我必须记住检查三个位置:

  • /etc/sysctl.conf
  • /etc/sysctl.d/*
  • /etc/ufw/sysctl.conf

对于这个设计背后的原因,我仍然没有答案。 IMO,UFW 应该将其文件添加到 /etc/sysctl.d 目录中。

看起来(在代码中)UFW 永远不会写入此文件,因此它只是加载的一个附加配置文件,并且管理员必须维护该文件。它出现不是被分开,因为 UFW 想要写入它。

相关内容