带有 openvpn 和 lxc 的 nftables

带有 openvpn 和 lxc 的 nftables

我有一个简单的设置,涉及 LXC 容器(debianstretch 主机、debianbuster 容器)中的 OpenVPN 服务器,我想在其中设置基于 nftables 的防火墙。

让我困惑的是,nftables 无法捕获 10.52.1.0/24 子网中任何流量的 Saddr,即使使用特定的 IP 或 /32 掩码也是如此。

我发现 nftables 将我的流量视为封装的,尽管我认为我已经将其设置为在 tap52 接口上监听(这纯粹是一个 openvpn 接口 10.52.0.0/16)

我做错了什么吗?

我的 nftables.conf 非常简单:

#!/usr/sbin/nft -f

flush ruleset

table inet filter {

    chain input_tap52 {
        type filter hook input priority 0;
        ip saddr 10.52.1.0/24 drop # This doesn't work
        #drop # This works
        meta nftrace set 1
    }

    chain forward_tap52 {
        type filter hook forward priority 0; policy drop;
    }

    chain output_tap52 {
        type filter hook output priority 0; policy accept;
    }

}

nft 监视器跟踪给了我这个输出:

trace id beade08f inet filter input_tap52 rule nftrace set 1 (verdict continue)
trace id beade08f inet filter input_tap52 verdict continue 
trace id beade08f inet filter input_tap52 
trace id d46433ce inet filter input_tap52 packet: iif "eth0" ether saddr 00:16:3e:00:00:00 ether daddr 00:16:3e:c3:6d:fb ip saddr 46.134.**.** ip daddr 10.0.3.253 ip dscp cs0 ip ecn not-ect ip ttl 53 ip id 0 ip protocol udp ip length 42 udp sport 3423 udp dport openvpn udp length 22 @th,64,96 17369369003734387519951732736 

答案1

好吧,所以我做了一些错误的假设:

1)我在某处读到,将接口名称附加到“input_”将自动过滤来自该接口的流量,这是错误的。

2)我确实看到了封装的流量,但也有一些有效的“10.52.0.0/16”数据包,具体来说是广播数据包。

所以最后我想起了这个: https://serverfault.com/questions/736274/openvpn-client-to-client

使能客户对客户制作小包无形的到内核​​。这就是我的案例中的问题。

相关内容