5.11. 管理 ICMP 请求


Internet 控制消息协议 (ICMP)是一种支持协议,供各种网络设备用来发送错误消息和表示连接问题的操作信息,例如,请求的服务不可用。ICMP 与 TCP 和 UDP 等传输协议不同,因为它不用于在系统之间交换数据。
不幸的是,可以使用 ICMP 消息(特别是 echo-requestecho-reply )来揭示关于您网络的信息,并将这些信息滥用于各种欺诈活动。因此,firewalld 允许阻止 ICMP 请求,来保护您的网络信息。

5.11.1. 列出 ICMP 请求

ICMP 请求在 /usr/lib/firewalld/icmptypes/ 目录中的单个 XML 文件中进行了描述。您可以阅读这些文件来查看请求的描述。firewall-cmd 命令控制 ICMP 请求操作。
要列出所有可用的 ICMP 类型:
~]# firewall-cmd --get-icmptypes
IPv4、IPv6 或两个协议都可以使用 ICMP 请求。要查看使用 ICMP 请求的协议:
~]# firewall-cmd --info-icmptype=<icmptype>
如果请求当前被阻止,则 ICMP 请求显示 yes 或如果请求没被阻止,则显示 no。要查看 ICMP 请求当前是否被阻止:
~]# firewall-cmd --query-icmp-block=<icmptype>

5.11.2. 阻止或取消阻止 ICMP 请求

当您的服务器阻止了 ICMP 请求时,它不会提供通常应该提供的信息。但这并不意味着根本不给出任何信息。客户端会收到特定 ICMP 请求被阻止(拒绝)的信息。应仔细考虑阻止 ICMP 请求,因为它可能会造成通信问题,特别是 IPv6 流量。
要查看 ICMP 请求当前是否被阻止:
~]# firewall-cmd --query-icmp-block=<icmptype>
要阻止 ICMP 请求:
~]# firewall-cmd --add-icmp-block=<icmptype>
要删除 ICMP 请求的块:
~]# firewall-cmd --remove-icmp-block=<icmptype>

5.11.3. 在没有任何信息的情况下阻止 ICMP 请求

通常,如果您阻止了 ICMP 请求,客户端会知道您正在阻止它。这样潜在的攻击者仍然可以看到您的 IP 地址在线。要完全隐藏此信息,您必须丢弃所有 ICMP 请求。
要阻止和丢弃所有 ICMP 请求:
  1. 将区的目标设为 DROP
    ~]# firewall-cmd --set-target=DROP
  2. 使新设置具有持久性:
    ~]# firewall-cmd --runtime-to-permanent
现在,所有流量(包括 ICMP 请求)都将被丢弃,除了您明确允许的流量外。
要阻止和丢弃某些 ICMP 请求,而允许其他请求:
  1. 将区的目标设为 DROP
    ~]# firewall-cmd --set-target=DROP
  2. 添加 ICMP 块反转以一次性阻止所有 ICMP 请求:
    ~]# firewall-cmd --add-icmp-block-inversion
  3. 为这些您要允许的 ICMP 请求添加 ICMP 块:
    ~]# firewall-cmd --add-icmp-block=<icmptype>
  4. 使新设置具有持久性:
    ~]# firewall-cmd --runtime-to-permanent
块反转会 反转 ICMP 请求块的设置,因此所有之前没有被阻止的请求都会被阻止。被阻止的那些不会被阻止。这意味着,如果您需要取消阻塞请求,则必须使用 blocking 命令。
把它恢复到完全 permissive 设置:
  1. 将区的目标设为 defaultACCEPT
    ~]# firewall-cmd --set-target=default
  2. 删除 ICMP 请求的所有添加的块:
    ~]# firewall-cmd --remove-icmp-block=<icmptype>
  3. 删除 ICMP 块反转:
    ~]# firewall-cmd --remove-icmp-block-inversion
  4. 使新设置具有持久性:
    ~]# firewall-cmd --runtime-to-permanent

5.11.4. 使用 GUI 配置 ICMP 过滤器

要启用或禁用 ICMP 过滤器,请启动 firewall-config 工具,并选择其信息要被过滤的网络区。选择 ICMP Filter 选项卡,然后选中您要过滤的每种 ICMP 消息类型的复选框。清除复选框以禁用过滤器。这个设置按方向设置,默认允许所有操作。
要启用反转 ICMP Filter,请单击右侧的 Invert Filter 复选框。现在只接受标记的 ICMP 类型,所有其他类型都被拒绝。在使用 DROP 目标的区域里它们会被丢弃。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.