我读到某些类型的ICMP数据包可能有害。问题:
- 哪些,为什么?
- 我应该如何布置iptables规则集来处理每种类型的ICMP数据包?
- 我应该对这些类型的ICMP数据包进行速率限制吗?如何?
[¹]我了解到以下类型:重定向(5),时间戳(13)和地址掩码请求(17)。请不要在回答时仅考虑这些内容。
更多信息
这是具有Ubuntu Server的VPS上的Web服务器。
我们的目标
我想使系统更安全,减轻一些d / DoS攻击和滥用一般的风险。
我读到某些类型的ICMP数据包可能有害。问题:
[¹]我了解到以下类型:重定向(5),时间戳(13)和地址掩码请求(17)。请不要在回答时仅考虑这些内容。
更多信息
这是具有Ubuntu Server的VPS上的Web服务器。
我们的目标
我想使系统更安全,减轻一些d / DoS攻击和滥用一般的风险。
Answers:
听起来您像是“ ICMP IS邪恶”咒语的牺牲品。
ICMP 不是邪恶的,只是被误解了。可悲的现实是,许多管理员担心他们不了解的内容,因此他们将ICMP排除在网络范围之外,在边缘防火墙级别回避它,并阻止其为网络的利益而占据正确的位置。
话虽如此,让我解决您的问题:
哪些类型的ICMP消息可能有害,为什么?
几乎所有的人。
Echo
数据包可用于破坏服务(尤其是对于IP协议栈实施不正确的系统);合法使用它们可以提供有关您的网络的信息。
Destination Unreachable
可以被恶意注入; 合法使用它们可以提供有关您的防火墙/路由结构或网络上特定计算机的信息。
Source Quench
可以被恶意发送,以使您的服务器有效地坐在角落里并吮吸拇指。
redirect
可以用作顾名思义。
router advertisement
并router solicitation
请求可以被用来创建“有趣的”流量拓扑结构(和促进MITM攻击),如果你的主机实际上注意他们。
traceroute
是设计给网络拓扑信息。
…等等...
各种ICMP消息的名称非常详细地说明了它们的功能。在梦night般的场景中锻炼天生的妄想症:-)
我应该如何布置iptables规则集来处理每种类型的ICMP数据包?
缺少处理ICMP流量的充分理由,别管它!
对ICMP流量进行处理会阻止ICMP消息的适当使用(流量管理和故障排除)-它将变得无奈无益。
我应该对这些类型的ICMP数据包进行速率限制吗?如何?
这可能是“任其发展”理念的唯一合法例外-速率或带宽限制的ICMP消息在帮助您规避对ICMP消息的非法使用方面很有用。FreeBSD 默认带有ICMP带宽/速率限制,我假设Linux具有类似的功能。
速率/带宽限制远比毯式防火墙规则丢弃ICMP流量要好得多:它仍然允许ICMP在网络上达到其目的,并且还可以部分减轻滥用服务器的企图。
以上是一位系统管理员的观点,他本人是FREAKIN想要删除所有ICMP流量的麻烦到麻烦的网络 -这很烦人,令人沮丧,并且需要更长的时间查找和解决问题。:-)
--state INVALID
丢掉Ping of Death吗?
Source Quench
,您可以相对不受惩罚地阻止它(TCP最终会自行解决)。Ping和Traceroute绝对是信息泄漏,但实际上,我认为它不会为您的环境增加太多实际安全性。您的里程(以及所需的偏执狂程度)可能会有所不同(取决于数据/环境的敏感性)。