Debian

帶有 openvpn 和 lxc 的 nftables

  • June 27, 2019

我有一個簡單的設置,涉及 LXC 容器(debian 拉伸主機,debian buster 容器)中的 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)我在某處讀到將介面名稱附加到“input_”將自動過濾來自該介面的流量,這是錯誤的。

2)我確實看到了封裝的流量,但也有一些有效的“10.52.0.0/16”數據包,具體來說是廣播的。

所以最後我想起了這個: https ://serverfault.com/questions/736274/openvpn-client-to-client

啟用客戶端到客戶端使核心不可見包。這就是我的問題。

引用自:https://unix.stackexchange.com/questions/527169