我读到某些类型的 ICMP 数据包可能有害。问题:
- 哪些以及为什么?
- 我应该如何布局 iptables 规则集来处理每种类型的 ICMP 数据包?
- 我应该限制这些类型的 ICMP 数据包的速率吗?该如何限制?
[¹] 我读到的类型:重定向 (5)、时间戳 (13) 和地址掩码请求 (17)。请不要在回答时只考虑这些。
更多信息
它是带有 Ubuntu Server 的 VPS 上的网络服务器。
目标
我正在尝试使系统更安全,降低某些 D/DoS 攻击和一般滥用的风险。
答案1
听起来你正在成为“ICMP 是邪恶的”这个口号的受害者。ICMP
是不是邪恶,只是被误解了。可悲的现实是,许多管理员害怕他们不理解的东西,因此他们将 ICMP 排除在他们的网络世界之外,在边缘防火墙级别避开它,并阻止它占据正确和适当的位置以造福他们的网络。
话虽如此,让我来回答你的问题:
哪些类型的 ICMP 消息可能有害?为什么?
几乎所有人都是如此。
Echo
数据包可用于破坏服务(特别是对于 IP 堆栈实施不佳的系统);如果合法使用,它们可以提供有关您的网络的信息。Destination Unreachable
可以被恶意注入;如果合法使用,它们可以提供有关*您的防火墙/路由结构或网络上特定机器的信息。Source Quench
可能会被恶意发送,让您的服务器有效地坐在角落里吮吸拇指。redirect
顾名思义,可以这样使用。router advertisement
router solicitation
如果您的主机真正关注它们, 并且请求可用于创建“有趣的”流量拓扑(并促进 MITM 攻击)。traceroute
是设计提供网络拓扑信息。
…ETC...
这各种 ICMP 消息的名称详细描述了他们能做什么。锻炼你与生俱来的偏执,想象噩梦场景 :-)
我应该如何布局 iptables 规则集来处理每种类型的 ICMP 数据包?
如果没有充分的理由干扰 ICMP 流量,别再管它了!
乱用 ICMP 流量会妨碍 ICMP 消息的正确使用(流量管理和故障排除)——这会让人沮丧而不是受益。
我应该限制这些类型的 ICMP 数据包的速率吗?该如何限制?
这可能是“别管它”理念的唯一合法例外——限制速率或带宽的 ICMP 消息可能有助于帮助您避免非法使用 ICMP 消息。FreeBSD 附带ICMP 带宽/速率限制默认情况下,我认为 Linux 具有类似的功能。
速率/带宽限制远比全面删除 ICMP 流量的防火墙规则更可取:它仍然允许 ICMP 在网络上发挥其作用,并且还可以部分缓解滥用服务器的企图。
以上内容代表一位系统管理员的观点,他厌倦了对所有 ICMP 流量被丢弃的网络进行故障排除-- 这很烦人、令人沮丧,而且还会花费更长的时间来查找和解决问题。:-)