我读到某些types的ICMP数据包可能是有害的。 问题:
[1]我读到的types:redirect(5),时间戳(13)和地址掩码请求(17)。 请不要只考虑你的答案。
更多信息
这是一个与Ubuntu服务器VPS的Web服务器。
目标
我试图让系统更安全,减less一些D / DoS攻击和一般滥用的风险。
有关
我的Linux防火墙是否安全?
为什么不阻止ICMP?
这听起来像是你成为“ICMP IS EVIL”口号的受害者。
ICMP 不是邪恶的,只是被误解了。 可悲的现实是,许多pipe理员害怕他们不了解的东西,于是他们把ICMP从networking的世界中抛出,在边缘防火墙层面避开它,阻止它为自己的networking利益而采取正确的地方。
话虽如此,让我来解答你的问题:
哪些types的ICMP消息可能是有害的,为什么?
几乎所有的人。
Echo包可以用来中断服务(特别是对于IP堆栈执行不当的系统)。 合法使用,他们可以提供有关您的networking的信息。
Destination Unreachable可能被恶意注入; 合法使用它们可以提供有关*防火墙/路由结构或networking上特定计算机的信息。
Source Quench可以被恶意地发送,使你的服务器有效地坐在一个angular落,吸大拇指。
redirect可以用名字暗示。
router advertisement和router solicitation请求可以用来创build“有趣”的stream量拓扑(并促进MITM攻击),如果你的主机真的注意到它们的话。
traceroute 旨在提供networking拓扑信息。
…等等…
各种ICMP消息的名字非常详细地描述了他们能够做的事情。 在做梦噩梦的场景中锻炼自己的先天偏执狂:-)
我应该如何布局一个iptables规则集来处理每种types的ICMP数据包?
没有一个好的理由来惹恼ICMPstream量, 就把它留在地狱!
嘲笑ICMPstream量阻止了ICMP消息的适当使用(stream量pipe理和故障排除) – 这会比有帮助的更令人沮丧。
我应该对任何这些types的ICMP数据包进行速率限制吗? 如何?
这可能是“让它独自一人”的哲学的唯一合法例外 – 速率或带宽限制的ICMP消息可以帮助您避免非法使用ICMP消息。 FreeBSD默认带有ICMP带宽/速率限制 ,我认为Linux有类似的function。
速率/带宽限制远远优于全面的防火墙规则,降低了ICMPstream量:它仍然允许ICMP在networking上服务其目的,并且还部分地减轻了滥用服务器的尝试。
以上代表的是一个系统pipe理员的意见,他对于FREAKIN'TIRED OF TROUBLESHOOT NETWORKS(所有ICMPstream量被删除) – 这是令人讨厌的,令人沮丧的,并且需要更长的时间来发现和解决问题。 🙂
types不像可能的攻击媒介那么多。 多年来,在许多常见的互联网主机的TCP / IP协议栈中使用ICMP源抑制数据包已经有了一个相当有效的DoS攻击向量,但是这并不意味着ICMP消息需要一般的过滤。 与networking安全中的所有内容一样,根据您的个人优先级权衡某个协议或服务的好处,以抵御可能的攻击面。 如果您的networking中存在容易受到ICMP攻击媒介影响的主机,则无法修复这些主机,而且您不需要特定的function,您当然应该考虑对其进行过滤。
对于我pipe理的v4networking,我发现允许ICMPtypes0,8(回应请求/回复),11(TTL过期),3(目标不可达)和12(IP标题错误)安全和方便,其余的部分。