伪装/firewalld 目标:对过滤有影响吗?

伪装/firewalld 目标:对过滤有影响吗?

我提出了一个问题这里,但是我发现了一些新元素,所以我更愿意开辟一个新的。

这是我的情况,可以重现:

全新 Centos7 操作系统。配置两个接口 eth1 和 eth2,IP 地址分别为 X 和 Y

-----------------> @X CENTOS @Y -----------------> @Z  -------
    dst_IP = A                      dst_IP = A
    src_IP = B                      dst_IP = B

编辑 /etc/firewalld/zones/TEST.xml,添加两个接口,激活伪装。firewalld 目标默认设置为“default”。

添加以下路线:

Destination     Gateway     GenMask
A               Z           255.255.255.255

然后激活 ip forward 并停用 rp_filter :

sysctl net.ipv4.ip_forward=1
sysctl net.ipv4.conf.eth1.rp_filter=2
sysctl net.ipv4.conf.eth2.rp_filter=2

在这种情况下,如果我将数据包 (@dest=A) 路由到 CentOS,该包裹被路由至 Z。 -> 为什么防火墙不阻止它?因为没有规则接受它

如果我禁用伪装,该包裹不再被路由。 -> 为什么?

在激活伪装的情况下,如果我将目标从默认更改为 DROP,则 paquet 不再路由 -> 因此“默认”目标并不严格等同于“DROP”目标。到底有什么区别?我找不到有关此内容的任何信息

答案1

首先,您正在激活rp_filter它,而不是停用它(要停用,您必须将其设置为零)。

信息关于反向路径过滤。

有一个问题很容易回答:没有伪装,目标路由器可以看到源 IP 为 B,但没有正确的路由来发送回复。由于这个原因以及反向路径过滤,数据包被丢弃。

其次,您必须区分防火墙和转发防火墙。一个用于将其中一个接口 IP 作为目标/源 IP(即来自/前往设备!)的数据包,另一个用于仅通过设备的数据包。

那么发生了什么?您的 CentOS 看到一个数据包,其源 IP 为 B,目标 IP 为 A,并正在尝试转发它。为此,它查看其路由表 - 有一个活动的路由,所有发往目标 A 的数据包都应通过路由器 Z。

现在伪装开始生效 - 源 IP B 被 Y 替换,并且数据包被转发到 Z - 仍然使用目标 IP A!

我只能猜测防火墙的作用 - 您必须发布完整的防火墙规则集才能看懂 - 但我的猜测是,您混淆了“通过 Z 路由”和“目的地 Z”。后者可能会被丢弃,而前者则不会。

请发布完整的防火墙规则集以获得最终答案!

答案2

更精确:

对于这个问题,我只考虑这样一个事实:在 Centos 接口 @Y 上监听时,数据包被路由或丢弃。我没有考虑 Z 的回复,如果我在不调整 Z 配置的情况下在 CentOS 上激活/停用伪装,那实际上不起作用。

在这种情况下,如何解释伪装激活会对路由数据包在通过接口 @Y 之前被防火墙丢弃或不丢弃产生影响?至于防火墙中的“默认”目标?

我的防火墙规则集完全是空的,我从新的 CentOS 进行了此设置以解决这个问题。没有添加 iptables 或防火墙规则。

iptables -L -n以下是和的结果iptables -L -t nat -n

Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0
INPUT_direct  all  --  0.0.0.0/0            0.0.0.0/0
INPUT_ZONES_SOURCE  all  --  0.0.0.0/0            0.0.0.0/0
INPUT_ZONES  all  --  0.0.0.0/0            0.0.0.0/0
DROP       all  --  0.0.0.0/0            0.0.0.0/0            ctstate INVALID
REJECT     all  --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0
FORWARD_direct  all  --  0.0.0.0/0            0.0.0.0/0
FORWARD_IN_ZONES_SOURCE  all  --  0.0.0.0/0            0.0.0.0/0
FORWARD_IN_ZONES  all  --  0.0.0.0/0            0.0.0.0/0
FORWARD_OUT_ZONES_SOURCE  all  --  0.0.0.0/0            0.0.0.0/0
FORWARD_OUT_ZONES  all  --  0.0.0.0/0            0.0.0.0/0
DROP       all  --  0.0.0.0/0            0.0.0.0/0            ctstate INVALID
REJECT     all  --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
OUTPUT_direct  all  --  0.0.0.0/0            0.0.0.0/0

Chain FORWARD_IN_ZONES (1 references)
target     prot opt source               destination
FWDI_TEST  all  --  0.0.0.0/0            0.0.0.0/0           [goto]
FWDI_TEST  all  --  0.0.0.0/0            0.0.0.0/0           [goto]

Chain FORWARD_IN_ZONES_SOURCE (1 references)
target     prot opt source               destination

Chain FORWARD_OUT_ZONES (1 references)
target     prot opt source               destination
FWDO_TEST  all  --  0.0.0.0/0            0.0.0.0/0           [goto]
FWDO_TEST  all  --  0.0.0.0/0            0.0.0.0/0           [goto]

Chain FORWARD_OUT_ZONES_SOURCE (1 references)
target     prot opt source               destination

Chain FORWARD_direct (1 references)
target     prot opt source               destination


Chain FWDI_TEST (2 references)
target     prot opt source               destination
FWDI_TEST_log  all  --  0.0.0.0/0            0.0.0.0/0
FWDI_TEST_deny  all  --  0.0.0.0/0            0.0.0.0/0
FWDI_TEST_allow  all  --  0.0.0.0/0            0.0.0.0/0
ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0

Chain FWDI_TEST_allow (1 references)
target     prot opt source               destination

Chain FWDI_TEST_deny (1 references)
target     prot opt source               destination

Chain FWDI_TEST_log (1 references)
target     prot opt source               destination

Chain FWDO_TEST (2 references)
target     prot opt source               destination
FWDO_TEST_log  all  --  0.0.0.0/0            0.0.0.0/0
FWDO_TEST_deny  all  --  0.0.0.0/0            0.0.0.0/0
FWDO_TEST_allow  all  --  0.0.0.0/0            0.0.0.0/0

Chain FWDO_TEST_allow (1 references)
target     prot opt source               destination
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            ctstate NEW

Chain FWDO_TEST_deny (1 references)
target     prot opt source               destination

Chain FWDO_TEST_log (1 references)
target     prot opt source               destination

Chain INPUT_ZONES (1 references)
target     prot opt source               destination
IN_TEST    all  --  0.0.0.0/0            0.0.0.0/0           [goto]
IN_TEST    all  --  0.0.0.0/0            0.0.0.0/0           [goto]

Chain INPUT_ZONES_SOURCE (1 references)
target     prot opt source               destination

Chain INPUT_direct (1 references)
target     prot opt source               destination


Chain IN_TEST (2 references)
target     prot opt source               destination
IN_TEST_log  all  --  0.0.0.0/0            0.0.0.0/0
IN_TEST_deny  all  --  0.0.0.0/0            0.0.0.0/0
IN_TEST_allow  all  --  0.0.0.0/0            0.0.0.0/0
ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0

Chain IN_TEST_allow (1 references)
target     prot opt source               destination

Chain IN_TEST_deny (1 references)
target     prot opt source               destination

Chain IN_TEST_log (1 references)
target     prot opt source               destination

Chain OUTPUT_direct (1 references)
target     prot opt source               destination



Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination
PREROUTING_direct  all  --  0.0.0.0/0            0.0.0.0/0
PREROUTING_ZONES_SOURCE  all  --  0.0.0.0/0            0.0.0.0/0
PREROUTING_ZONES  all  --  0.0.0.0/0            0.0.0.0/0

Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
OUTPUT_direct  all  --  0.0.0.0/0            0.0.0.0/0

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination
POSTROUTING_direct  all  --  0.0.0.0/0            0.0.0.0/0
POSTROUTING_ZONES_SOURCE  all  --  0.0.0.0/0            0.0.0.0/0
POSTROUTING_ZONES  all  --  0.0.0.0/0            0.0.0.0/0

Chain OUTPUT_direct (1 references)
target     prot opt source               destination

Chain POSTROUTING_ZONES (1 references)
target     prot opt source               destination
POST_TEST  all  --  0.0.0.0/0            0.0.0.0/0           [goto]
POST_TEST  all  --  0.0.0.0/0            0.0.0.0/0           [goto]

Chain POSTROUTING_ZONES_SOURCE (1 references)
target     prot opt source               destination

Chain POSTROUTING_direct (1 references)
target     prot opt source               destination

Chain POST_TEST (2 references)
target     prot opt source               destination
POST_TEST_log  all  --  0.0.0.0/0            0.0.0.0/0
POST_TEST_deny  all  --  0.0.0.0/0            0.0.0.0/0
POST_TEST_allow  all  --  0.0.0.0/0            0.0.0.0/0

Chain POST_TEST_allow (1 references)
target     prot opt source               destination
MASQUERADE  all  --  0.0.0.0/0            0.0.0.0/0

Chain POST_TEST_deny (1 references)
target     prot opt source               destination

Chain POST_TEST_log (1 references)
target     prot opt source               destination

Chain PREROUTING_ZONES (1 references)
target     prot opt source               destination
PRE_TEST   all  --  0.0.0.0/0            0.0.0.0/0           [goto]
PRE_TEST   all  --  0.0.0.0/0            0.0.0.0/0           [goto]

Chain PREROUTING_ZONES_SOURCE (1 references)
target     prot opt source               destination

Chain PREROUTING_direct (1 references)
target     prot opt source               destination

Chain PRE_TEST (2 references)
target     prot opt source               destination
PRE_TEST_log  all  --  0.0.0.0/0            0.0.0.0/0
PRE_TEST_deny  all  --  0.0.0.0/0            0.0.0.0/0
PRE_TEST_allow  all  --  0.0.0.0/0            0.0.0.0/0

Chain PRE_TEST_allow (1 references)
target     prot opt source               destination

Chain PRE_TEST_deny (1 references)
target     prot opt source               destination

Chain PRE_TEST_log (1 references)
target     prot opt source               destination

相关内容