为什么阻止出站ICMP?

这个问题与“ 为什么阻塞端口22出站? ”有一点关系。 我不明白这可能是一个显着的安全风险。

阻止ICMP出站和来自您的环境的所有其他连接是构build防火墙/安全策略的良好开端。

但是有很多事情你应该事先知道并且考虑到。 一个很好的例子是阻止所有的ICMP数据包,同时允许一些其他协议如TCP端口80(http)可能导致MTU / PMTU问题。 如果您的networking连接使用封装(如pppoe , GRE或许多其他封装),则会遇到大量难以识别的MTU问题。

好的地区开始阅读是:

  • pathMTU发现和过滤ICMP
  • ICMP支持故障

安全经常被认为是在“黑名单一切,白名单需要什么”的背景下,直到有人抱怨,限制出境连接的锡箔水平。 虽然很容易问“为什么阻止”,安全专家会问“为什么你需要”…这就是为什么企业networking是一个非常严格(黑名单第一)与标准的家庭networking(白名单一切外发)。

networking上运行僵尸networking的计算机为ICMP PING饱和提供带宽是一种现实的情况。

这些icmp dos攻击十年前有用。 现在没有人会使用它,这是愚蠢的事情来过滤所有icmp数据包。 那些build议阻止所有icmp数据包的书是:1)由愚蠢的人写的; 2)由人写的,使你的networking难以诊断,并让你打电话给一个公司,为你修复它:)

即使icmpredirect消息是无害的,如果你只有静态路由…

所以请不要build议人们禁用互联网的主要诊断协议

我认为这不是什么大不了的事情,但是这可以被看作是系统pipe理中使用的“默认拒绝策略”中使用的一种做法。 阻止ICMP的原因是避免ICMP DOS攻击另一个主机。 (道德)

ICMP攻击

思科易受ICMP DoS攻击

例如,对于受感染系统上的恶意软件,可能通过假回声回复“回家”发送消息。 这可能会给远程监听系统提供一些您不一定希望的信息,一次一个小片。 恶意软件可以访问的任何东西都可以直接进入pipe道。

阻止出站ICMP的另一个原因是(试图)阻塞端口扫描器。 许多防火墙会安静地丢弃由安全策略(通常是ACL)拒绝的入站数据包。 但是,如果一个数据包被允许通过,并且目标应用程序本身没有运行,大多数服务器将返回某种types的ICMP Unreachable数据包。 这种不可用端口的行为差异可能会使攻击者对您的networking产生有价值的洞察。