在我的服务器上禁止 ICMP 的原因是什么?

3k-*_*3k- 11 security administration ubuntu-server icmp

EC2 实例默认禁用 ICMP 服务。虽然我不完全清楚原因,但我认为这是因为它可能存在潜在的安全风险。目前,我仅在重新启动服务器时启用 Echo Responses,以便我可以查看它是否已启动并正在运行,但是一旦它上线,我将再次禁用它。有必要吗?一般禁用 ICMP 的原因是什么?

Hen*_*nes 18

ICMP由大量命令组成。禁止所有这些将以奇怪的方式破坏您的网络。

ICMP 允许诸如“traceroute”和“ping”(ICMP 回显请求)之类的东西工作。因此,该部分对于正常诊断非常有用。当您运行 DNS 服务器(端口无法访问)时,它还用于反馈,在现代 DNS 服务器中,这实际上可能有助于选择不同的机器来更快地查询。

ICMP 用于路径 MTU 发现。您的操作系统可能会在它发送的 TCP 数据包上设置“DF”(不分段)。如果路径上的某些内容无法处理该大小的数据包,则期望返回 ICMP“需要分段”数据包。如果您阻止所有ICMP,您的机器将不得不使用其他回退机制,这些机制基本上使用超时来检测 PMTU“黑洞”并且永远不会正确优化。

可能还有一些更好的理由来启用大部分 ICMP。

现在作为您的问题为什么要禁用:

禁用部分ICMP 的原因是:

  • 防止旧式蠕虫使用 ICMP 回声请求(又名 ping)在尝试攻击主机之前查看主机是否存活。如今,现代蠕虫无论如何都会尝试它,使其不再有效。
  • 隐藏您的基础设施。如果您想这样做,请在您的网络边缘阻止它。不是在每台计算机上。当出现问题并且所有正常的分析工具都失败时,这只会导致您的管理员沮丧地拔掉他或她头上的所有头发。(在这种情况下:亚马逊可以在云边缘阻止它)。
  • 基于ICMP的拒绝服务攻击。像处理其他 DOS 攻击一样处理这些:速率限制。
  • 唯一有效的:如果您在不安全的网络上,您可能希望阻止或禁用路由器已更改命令。Obfix:在安全的网络上使用您的服务器。

请注意,那里有建议阻止 ICMP 的“服务器强化”手册。他们错了(或者至少不够详细)。它们与通过 MAC 过滤或隐藏 SSID 的无线“安全”属于同一类别。