防火墙阻止 ICMP 是不是一个坏主意?

信息安全 网络 防火墙 icmp
2021-08-21 01:15:47

这个问题的灵感来自这个答案,其中部分说明:

通用防火墙清单文件通过删除我不允许的所有内容来完成(除了 ICMP。不要关闭 ICMP)。

但是,防火墙允许 ICMP 真的是一个好习惯吗?有哪些安全隐患,是否存在应关闭 ICMP 的情况?

4个回答

与其他 IP 协议相比,ICMP 相当小,但它确实提供了大量不同的功能。ICMP 的核心被设计为 IP 的调试、故障排除和错误报告机制。这使得它非常有价值,因此需要大量思考才能将其关闭。这有点像>/dev/null 2>&1添加到所有 cron 条目的末尾。

大多数时候,当我与人们谈论阻止 ICMP 时,他们实际上是在谈论 ping 和 traceroute。这转化为 3 种类型

  • 0 - Echo 回复(ping 响应)
  • 8 - 回声请求(ping 请求)
  • 11 - 超时

这是 16 种类型中的 3 种。让我们看一下其他可用的 ICMP 类型。

  • 4 - Source Quench(由路由器发送以要求主机减慢其传输速度)
  • 3 - Destination Unreachable(由 16 种不同类型的消息组成,从报告碎片问题到报告端口已关闭的防火墙)

这两者对于保持非恶意主机在网络上正常运行都是非常宝贵的。事实上,有两个(可能更多,但这些对我来说是最明显的)非常好的情况,您不想限制 ICMP。

  • 路径 MTU 发现 - 我们使用不分段标志和类型 3 代码 4(无法到达目标 - 需要分段,并设置 DF 标志)的组合来确定主机之间路径上的最小 MTU。这样我们就避免了传输过程中的碎片化。
  • Active Directory 需要客户端 ping 域控制器才能拉下 GPO。他们使用 ping 来确定“最近的”控制器,如果没有响应,则假定没有一个足够接近。所以政策更新不会发生。

这并不是说我们必须将一切都开放给全世界看。ICMP 可以进行侦察,这通常是阻塞的原因可以使用 ping 来确定主机是否实际开启,或者使用 Time Exceededs(作为跟踪路由的一部分)来映射网络架构,或者使用 Rory 禁止重定向(类型 5 代码 0)来更改主机的默认路由。

鉴于这一切,我的建议是一如既往地采取慎重和深思熟虑的方法来保护您的安全。完全阻止 ICMP 可能不是最好的主意,但是挑选和选择阻止的内容以及去往/来自何处可能会得到您想要的东西。

ICMP 的存在是有原因的,而并非所有原因都是ping. 它是用于传递有关网络本身的控制消息的“元”协议。查看Wikipedia 上的 ICMP以更好地了解它是什么以及它的用途。

其他 ICMP 消息还包括目标主机不可达、需要分段、拥塞控制、TTL 超出、IP 协议错误等。

网络将在没有 ICMP 的情况下运行——面对丢包时的弹性是 IP 的核心优势之一——但它将运行得更慢、效率更低,并且没有这些信号来帮助您诊断和解决问题。

ICMP 的安全问题往往是比较模糊的“信息泄露”问题。例如,如果您的路由器将 ICMP 消息发回给某人,那么该人就知道您有路由器。也许知道您拥有路由器的攻击者是您担心的事情,或者更可能不是。但是安全研究往往会在沉默方面犯错,只是为了安全起见,以防万一。

操作系统中偶尔会出现与 ICMP 相关的“死亡 ping”样式漏洞。目前在任何主流操作系统中都不存在。但是,为了以防万一,安全倡导者再次谨慎行事。

老实说,在路由器级别和软件防火墙级别过滤一些出站 ICMP 作为额外的安全层是明智的。

这与阻止 DoS 或 DDoS 无关,但恶意人员仍然使用 ICMP 来尝试在尝试破坏网络之前尽可能多地检索有关网络的信息。

我并不是说他们只使用 ICMP,但这是他们使用的少数数据包类型之一,取决于您是否打开了闸门,他们可以在很短的时间内获得大量信息。

花一些时间在谷歌上查找有关 NMAP 和其他一些程序如何利用 ICMP 作为收集信息的资源之一的信息,然后根据您认为保护自己和网络所必需的内容来筛选您的过滤器。

如果可能的话,设置一个内部测试网络(我个人买了一个便宜的辅助 wifi 路由器,并有一个辅助 pc 作为防火墙来测试我所有的路由器/ipchains/软件防火墙设置,然后我在我的主网络上使用它们我的家人和任何雇用我来保护他们网络的客户。

我强烈鼓励人们尝试对端口扫描以及如何突破自己网络上的防火墙进行一些研究,以便他们能够更好地保护自己和他们正在帮助的任何家庭。

这是我之前使用过并推荐给朋友的一些资源。 无信息安全 ICMP 如何用于侦察

并且

信息安全研究所 ICMP 攻击

一些攻击不再可行,但由于程序员能够重新编码原始攻击并改变其工作方式和资源使用方式,因此仍有更新形式的 Smurf 仍然有效。

到处挖掘,google 和 Stack Exchange 是你的朋友,duckduckgo 搜索引擎非常适合 google 可能过滤掉的资源,但要小心并运用你的智慧!

我从事电脑技术工作 22 年,从事网络安全专家工作 10 年。我目前正在学习 ECH 和 CPTS,完成这些课程后,我正在学习进攻性安全课程。

希望这会有所帮助,并且其他人会在我恢复对此系统所做的备份时发现此信息有用,并且我会找到有关此问题的其他链接和资源,我将更新此答案。

阻止 ICMP 不仅无用,而且在大多数情况下也是有害的。如果您不确定自己在做什么,特别是为什么要这样做,那么您不应该阻止 ICMP 有几个原因。是的 icmp ping 可以帮助其他人“分析”您的网络。但老实说,如果你有任何开放的 tcp 服务,你就会被看到。如果您只是丢弃数据包,您将被看到。如果您以错误的方式回答,您将被看到。因此,如果您相信理论认为您必须将我们的重要服务器隐藏在网络中,因为它使它们更安全,那么当您阻止您的 icmp 时,您的主机更有可能成为更明亮的目标。有很多方法可以做错,这样你就可以打破 mtu 路径发现、拥塞控制等,甚至让你的服务器从海量中脱颖而出。所以在坚果细胞中,如果您没有充分的理由这样做,请不要阻止您的 icmp,然后小心执行并阅读 icmp 协议规范,以便您了解自己在做什么以及为什么要这样做。是的,如果您不确定是否有旧内核,最好在网络边缘阻止 icmp 重定向。但另一方面,更新您的服务器和其他主机(修复实际问题)比将它们隐藏在地毯下,无论如何有人会发现您的错误更好。