iptables | ICMP 的类型:哪些(可能)有害?

ML-*_*L-- 8 networking security linux iptables icmp

我读到某些类型¹的 ICMP 数据包可能有害。问题:

  • 哪些?为什么?
  • 我应该如何布局一个 iptables 规则集来处理每种类型的 ICMP 数据包?
  • 我应该对这些类型的 ICMP 数据包进行速率限制吗?如何?

[¹] 我读到的类型:重定向 (5)、时间戳 (13) 和地址掩码请求 (17)。请不要在你的答案中只考虑这些。

更多信息
它是带有 Ubuntu Server 的 VPS 上的 Web 服务器。


的目标是让系统更安全,降低一些 D/DoS 攻击和普遍滥用的风险。

相关
我的 linux 防火墙安全吗?
为什么不阻止ICMP?

vor*_*aq7 10

听起来您正在成为“ICMP 是邪恶的”口头禅的受害者。
ICMP不是邪恶的,只是被误解了。可悲的现实是,许多管理员害怕他们不了解的东西,因此他们将 ICMP 排除在他们的网络世界之外,在边缘防火墙级别避开它,并阻止它为了他们的网络的利益占据正确和适当的位置。

话虽如此,让我来回答您的问题:


哪些类型的 ICMP 消息可能有害,为什么?
几乎所有的。

  • Echo数据包可用于中断服务(特别是对于 IP 堆栈实施不当的系统);合法使用它们可以提供有关您的网络的信息。

  • Destination Unreachable可以被恶意注入;合法使用它们可以提供有关*您的防火墙/路由结构或网络上特定机器的信息。

  • Source Quench 可以被恶意发送,使您的服务器有效地坐在角落里吮吸拇指。

  • redirect 顾名思义,可以使用。

  • router advertisementrouter solicitation如果您的主机真正关注它们,并且请求可用于创建“有趣的”流量拓扑(并促进中间人攻击)。

  • traceroute设计给网络拓扑信息。

…等等...

各种 ICMP 消息名称非常详细地说明了它们的功能。在梦想噩梦场景时锻炼你与生俱来的偏执:-)


我应该如何布局一个 iptables 规则集来处理每种类型的 ICMP 数据包?
如果没有充分的理由来干扰 ICMP 流量,就别管它了!
乱搞 ICMP 流量会妨碍 ICMP 消息的适当使用(流量管理和故障排除)——这更令人沮丧而不是帮助。


我应该对这些类型的 ICMP 数据包进行速率限制吗?如何?
这可能是“别管它”哲学的唯一合法例外——限制速率或带宽的 ICMP 消息可用于帮助您规避 ICMP 消息的非法使用。默认情况下,FreeBSD 附带ICMP 带宽/速率限制,我假设 Linux 具有类似的功能。

速率/带宽限制远优于删除 ICMP 流量的全面防火墙规则:它仍然允许 ICMP 在网络上实现其目的,并且还部分减轻了滥用服务器的企图。


以上代表了一位系统管理员的意见,他对所有 ICMP 流量都丢弃的网络进行故障排除感到非常厌烦——这很烦人,令人沮丧,并且需要更长的时间来发现和修复问题。:-)

  • @ML--请不要担心死机。本世纪没有任何操作系统是易受攻击的。 (7认同)
  • @ML--我担心的一个向量是“Source Quench”,你*可以*阻止它而不受惩罚(TCP最终会自己解决)。Ping 和 Traceroute 绝对是信息泄漏,但实际上我认为它不会为您的环境增加太多真正的安全性。您的里程(和所需的偏执程度)可能会有所不同(取决于您的数据/环境的敏感性)。 (2认同)