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


11

默认情况下,EC2实例禁用了ICMP服务。尽管我尚不完全清楚为什么,但我认为这是因为这可能会带来潜在的安全风险。目前,仅在重新启动服务器时才启用Echo Responses,以便可以查看它是否已启动并正在运行,但是一旦它联机,便会再次禁用它。有必要吗?通常禁用ICMP的原因有哪些?

Answers:


18

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

ICMP允许“ traceroute”和“ ping”(ICMP回显请求)之类的东西工作。因此,该部分对于正常诊断非常有用。当您运行DNS服务器(端口不可达)时,它也可用于提供反馈。在现代DNS服务器中,DNS服务器实际上可以帮助选择其他计算机以更快地进行查询。

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

启用ICMP的大多数功能可能还有更多的理由。

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

禁用部分 ICMP的原因是:

  • 防止使用ICMP回显请求(又称ping)的老式蠕虫在尝试攻击主机之前先查看其是否还处于活动状态。如今,无论如何,现代蠕虫都会尝试它,从而使它不再有效。
  • 隐藏您的基础架构。如果要这样做,请在网络边缘将其阻止。并非在每台计算机上。当出现问题并且所有常规分析工具均失败时,这只会使您的管理员沮丧地从头上拉掉所有头发。(在这种情况下:Amazon可以将其阻止在云的边缘)。
  • 基于ICMP的拒绝服务攻击。与其他DOS攻击一样处理这些问题:速率限制。
  • 唯一有效的一个:如果您在不安全的网络上,则可能要阻止或禁用路由器已更改命令。修正:在安全的网络上使用服务器。

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


1

完成ICMP块有两个原因,但主要是为了隐藏试图识别和分析网络的探测器中的信息。在路由器和可公开访问的终端系统上,也存在几种类型的攻击,这些攻击使用ICMP流量作为攻击的一部分。

在您的情况下,您可能会允许回声响应,尽管这会使更多的探针引起您的注意。如今,基于ping的DDOS和蓝精灵攻击等攻击已大大缓解。

http://en.wikipedia.org/wiki/Denial-of-service_attack#ICMP_flood


0

我建议使用iptables而不是永久阻止它来防止ICMP请求泛洪:

iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/minute --limit-burst 100 -j ACCEPT

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.