5.11. 管理 ICMP 请求
Internet 控制消息协议
(ICMP
)是一种支持协议,供各种网络设备用来发送错误消息和表示连接问题的操作信息,例如,请求的服务不可用。ICMP
与 TCP 和 UDP 等传输协议不同,因为它不用于在系统之间交换数据。
不幸的是,可以使用
ICMP
消息(特别是 echo-request
和 echo-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
请求:
- 将区的目标设为
DROP
:~]# firewall-cmd --set-target=DROP
- 使新设置具有持久性:
~]# firewall-cmd --runtime-to-permanent
现在,所有流量(包括
ICMP
请求)都将被丢弃,除了您明确允许的流量外。
要阻止和丢弃某些
ICMP
请求,而允许其他请求:
- 将区的目标设为
DROP
:~]# firewall-cmd --set-target=DROP
- 添加 ICMP 块反转以一次性阻止所有
ICMP
请求:~]# firewall-cmd --add-icmp-block-inversion
- 为这些您要允许的
ICMP
请求添加 ICMP 块:~]# firewall-cmd --add-icmp-block=<icmptype>
- 使新设置具有持久性:
~]# firewall-cmd --runtime-to-permanent
块反转会 反转
ICMP
请求块的设置,因此所有之前没有被阻止的请求都会被阻止。被阻止的那些不会被阻止。这意味着,如果您需要取消阻塞请求,则必须使用 blocking 命令。
把它恢复到完全 permissive 设置:
- 将区的目标设为
default
或ACCEPT
:~]# firewall-cmd --set-target=default
- 删除
ICMP
请求的所有添加的块:~]# firewall-cmd --remove-icmp-block=<icmptype>
- 删除
ICMP
块反转:~]# firewall-cmd --remove-icmp-block-inversion
- 使新设置具有持久性:
~]# firewall-cmd --runtime-to-permanent
5.11.4. 使用 GUI 配置 ICMP
过滤器
要启用或禁用
ICMP
过滤器,请启动 firewall-config 工具,并选择其信息要被过滤的网络区。选择 ICMP Filter 选项卡,然后选中您要过滤的每种 ICMP
消息类型的复选框。清除复选框以禁用过滤器。这个设置按方向设置,默认允许所有操作。
要启用反转 ICMP Filter,请单击右侧的 Invert Filter 复选框。现在只接受标记的
ICMP
类型,所有其他类型都被拒绝。在使用 DROP 目标的区域里它们会被丢弃。