iptables | ICMP 的类型:哪些(潜在)有害?

iptables | ICMP 的类型:哪些(潜在)有害?

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

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

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

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

目标
我正在尝试使系统更安全,降低某些 D/DoS 攻击和一般滥用的风险。

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

答案1

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

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


哪些类型的 ICMP 消息可能有害?为什么?
几乎所有人都是如此。

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

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

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

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

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

  • traceroute设计提供网络拓扑信息。

…ETC...

各种 ICMP 消息的名称详细描述了他们能做什么。锻炼你与生俱来的偏执,想象噩梦场景 :-)


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


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

速率/带宽限制远比全面删除 ICMP 流量的防火墙规则更可取:它仍然允许 ICMP 在网络上发挥其作用,并且还可以部分缓解滥用服务器的企图。


以上内容代表一位系统管理员的观点,他厌倦了对所有 ICMP 流量被丢弃的网络进行故障排除-- 这很烦人、令人沮丧,而且还会花费更长的时间来查找和解决问题。:-)

答案2

类型比可能的攻击媒介更重要。有一种相当有效的 DoS 攻击媒介,使用ICMP 源抑制许多常见互联网主机的 TCP/IP 堆栈中的数据包多年- 但这并不意味着源抑制 ICMP 消息通常需要被过滤。与网络安全中的所有事情一样,根据你的需要权衡某个协议或服务的好处与可能的攻击面。个人的优先级。如果您网络中的主机容易受到通过 ICMP 发起的攻击,您无法修复它们,而且您不需要特定的功能,那么您当然应该考虑过滤它。

对于我管理的 v4 网络,我发现允许 ICMP 类型 0、8(回显请求/答复)、11(TTL 已过期)、3(目的地不可达)和 12(IP 头错误)并删除所有其余类型既安全又方便。

相关内容