没有运行网络服务的系统需要防火墙吗?

没有运行网络服务的系统需要防火墙吗?

我问这个问题时考虑到了 FreeBSD 的默认安装。它没有激活任何网络服务,也没有安装防火墙。这与许多 Linux 发行版不同,后者通常配置了基本的防火墙,但也有有限的网络服务,例如 sshd、监听。

如果没有服务绑定任何网络端口,防火墙似乎就没什么可做的了。(假设信任出站流量,这是上述许多 Linux 发行版中默认安装的防火墙配置的典型特征)。

我专门询问的是 bsd/linux 系统,不包括 osx。

答案1

简短的回答:是的!

让我们假设没有其他服务会意外启动,并且您不会突然意识到需要紧急运行某项服务,然后希望已经正确设置了防火墙:-)

虽然在 FreeBSD 上这种可能性较小,但应用程序有时会临时打开端口。如果没有防火墙,这些端口就会弹出。

即使没有运行任何服务,FreeBSD 也会对主机做出响应。它可能会响应 ICMP 回显请求 (ping),还会在主机尝试连接端口(或假装尝试连接端口)时做出响应,让主机知道该端口已关闭。

这些响应会让攻击者知道盒子在那里,并且没有防火墙。这是肯定的,而且攻击者很容易做到。

稍微不那么容易的是,它还可能会以某种方式做出响应,让攻击者确定它正在运行 FreeBSD。

另一个问题是,FreeBSD 需要进行某种程度的交互,以便告知其他系统其端口已关闭。在这种情况下,可能会出现漏洞,即恶意制作的数据包可能会对系统产生不利影响,导致崩溃或其他问题。尽管最新的 FreeBSD 尚未发现此类漏洞,但这仍然是安装防火墙的另一个原因。

另一个问题是,攻击者可以伪造其源 IP 并向您的机器发送上述类型的请求,但使用伪造的源 IP 地址。在这种情况下,FreeBSD 机器将响应伪造的源 IP 地址,而不是攻击者。因此,无论谁在伪造的 IP 上,都会想知道您的 FreeBSD 机器为何向其发送响应。

无论如何,FreeBSD 中有三种防火墙可供选择:pf、ipfilter 或 ipfw。我相信,只要制定几个简单的规则来阻止所有入站流量(与来自 FreeBSD 框本身的请求相关的流量除外),就足以保护您免受上述所有问题的困扰。

如果您想知道上述 3 个中哪个最好,或者如何使用正确的规则设置上述 3 个中之一,请提出另一个问题,因为我更熟悉 Linux ;-) 虽然我听说 pf 很好,但没有听说过其他的。

https://www.freebsd.org/doc/en/articles/linux-users/firewall.html

答案2

没有运行网络服务的系统需要防火墙吗?

是的。

如果系统有网络地址,那么数据包就可以路由到该地址。即使没有打开任何应用程序套接字,内核也会处理数据包。有很多内核漏洞会导致系统崩溃,有些甚至允许通过内核错误对系统进行更改或更改系统行为。

如果某人使用该系统打开在网络上进行出站通信的应用程序,则可能会打开临时侦听器端口,从而可能引入应用程序级漏洞。虽然目的仅用于出站通信,但应用程序可能会打开允许入站连接的套接字,即使只是暂时的。

相关内容