我目前正在使用 ubuntu 20.04 机器并安装了防火墙作为防火墙管理服务。查看‘公共区域’,我可以看到如下内容,
public (active)
target: default
icmp-block-inversion: no
interfaces: eth0
sources:
services: dhcpv6-client dns http https mysql squid ssh
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
为什么目标是默认这里?它如何影响firewalld的传入连接请求处理?
答案1
目标=“接受|%%拒绝%%|删除” 可用于接受、拒绝或丢弃每个数据包。ACCEPT 目标用于 受信任区域,每个数据包都将被接受。%%REJECT%% 目标用于 阻止区域,每个数据包都将以默认的 Firewalld 拒绝类型被拒绝。 DROP 目标用于丢弃区,所有数据包都将被丢弃。默认目标 是 {chain}_ZONE_{zone} 并且将在未指定目标时使用。如果除 使用默认目标,除接口和源之外的所有设置都将被忽略, 因为防火墙为该区域创建的第一条规则是“跳转到目标”。
对于其工作原理,实际上并不是很具体default
。
然而,这一点已得到澄清对手册页的拟议更改/添加:
--permanent [--zone=区域] --set-target=目标 设置永久区域的目标。目标是以下之一:默认, 接受、丢弃、拒绝 default 与 REJECT 类似,但在 以下场景: 1. ICMP 明确允许 在区域规则集的末尾,ICMP 数据包被明确 允许。 2. 转发的数据包遵循出口区域的目标 对于转发的数据包,如果入口区域使用 那么是否允许数据包是默认的 由出口区域决定。 对于进入区域 A 并从区域 B 流出的转发数据包: · 如果 zoneA 的目标是 ACCEPT、DROP 或 REJECT,那么 数据包分别被接受、丢弃或拒绝。 · 如果 zoneA 的目标是默认,则接受该数据包, 根据 zoneB 的目标丢弃或拒绝。如果 zoneB 的 目标也是默认的,那么数据包将被拒绝 firewalld 的 catchall 拒绝。 3. 从基于源的区域漂移到基于接口的区域 这仅在启用了 AllowZoneDrifting 时才适用。请参阅 防火墙d.conf(5)。 如果数据包进入目标为 默认情况下,它仍可能进入基于接口的区域(包括 默认区域)。