Ubuntu 虚拟路由器上的 UFW 未阻止正确的流量

Ubuntu 虚拟路由器上的 UFW 未阻止正确的流量

我有一个在 Ubuntu Server 22.04 上运行的虚拟路由器。虚拟路由器有两个以太网接口 enp1s0 和 enp2s0。接口 enp1s0 连接到外部网络,接口 enp2s0 连接到托管交换机。

笔记:接口 enp2s0 配置为中继流量(vlan.1201vlan.1401vlan.1601)。

我正在尝试在虚拟路由器上设置防火墙,以阻止来自两个接口的所有传出流量,但流向 10.12.0.0/16、10.14.0.0/16、10.16.0.0/16 和 10.1.1.0/24 的流量除外。传入流量应在两个接口上都打开。因为我需要通过 ssh 进入在网络 10.14.0.0/16 (vlan.1401)、10.16.0.0/16 (vlan.1601)、10.12.0.0/16 (vlan.1201) 和 10.1.1.0/24 上运行的系统。

以下是我的 netplan 配置:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp1s0:
      dhcp4: false
      addresses:
      - 10.1.1.86/24
      routes:
      - to: default
        via: 10.1.1.251
        metric: 1000
      nameservers:
        addresses:
        - 10.1.1.252
    enp2s0:
      dhcp4: false
  vlans:
    vlan.1201:
      id: 1201
      dhcp4: false
      addresses:
      - 10.12.1.1/16
      routes:
      - to: 0.0.0.0
        via: 10.12.1.1
        metric: 100
      link: enp2s0
    vlan.1401:
      id: 1401
      dhcp4: false
      addresses:
      - 10.14.1.1/16
      routes:
      - to: 0.0.0.0
        via: 10.14.1.1
        metric: 100
      link: enp2s0
    vlan.1601:
      id: 1601
      dhcp4: false
      addresses:
      - 10.16.1.1/16
      routes:
      - to: 0.0.0.0
        via: 10.14.1.1
        metric: 100
      link: enp2s0

以下是我的 iptable 规则:

-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-A FORWARD -m state --state ESTABLISHED -j ACCEPT
-A FORWARD -m state --state RELATED -j ACCEPT

以下是 NAT 规则

-P PREROUTING ACCEPT
-P INPUT ACCEPT
-P OUTPUT ACCEPT
-P POSTROUTING ACCEPT
-A POSTROUTING -o enp1s0 -j MASQUERADE

我尝试配置 U​​buntu UFW 来解决上述问题的一部分。我将默认设置设置为允许所有出站和入站流量。然后,我尝试拒绝来自 10.16.0.0/16 的所有出站流量,但流向选定列表的流量除外。

以下是我使用的配置:

Status: active
Logging: on (low)
Default: allow (incoming), allow (outgoing), allow (routed)
New profiles: skip

To                         Action      From
--                         ------      ----
10.16.0.0/16               ALLOW IN    Anywhere

Anywhere                   DENY OUT    10.16.0.0/16
10.1.1.0/24                ALLOW OUT   10.16.0.0/16
10.16.0.0/16               ALLOW OUT   10.16.0.0/16
10.14.0.0/16               ALLOW OUT   10.16.0.0/16
10.14.1.1                  ALLOW OUT   10.16.0.0/16
10.16.1.1                  ALLOW OUT   10.16.0.0/16
10.12.1.1                  ALLOW OUT   10.16.0.0/16
10.1.1.86                  ALLOW OUT   10.16.0.0/16
10.12.0.0/16               ALLOW OUT   10.16.0.0/16
Anywhere                   DENY OUT    10.1.1.0/24
Anywhere                   DENY OUT    10.12.0.0/16
Anywhere                   DENY OUT    10.14.0.0/16
Anywhere                   DENY OUT    10.1.1.86
10.16.0.0/16               ALLOW OUT   10.1.1.86
10.16.0.0/16               ALLOW OUT   10.1.1.0/24

但是,使用以下防火墙配置,我仍然能够 ping google.com 并 curl 各种网页。

我还尝试拒绝所有传出流量并允许所有传入流量,然后开放到选定子网 10.14.0.0/16 和 10.16.0.0/16 的传出流量,但是,这阻止我通过 SSH 连接到这些子网上的任何系统。

任何建议将不胜感激。

相关内容