Linux iptables/UFW - NAT から 1 つのホストを除外する

Linux iptables/UFW - NAT から 1 つのホストを除外する

現在、私は UFW を使用して、次のように 2 つの IPv4 サブネットを VPN インターフェイスに NAT しています。

/etc/ufw/before.rules の抜粋:

# NAT table rules
*nat
:POSTROUTING ACCEPT [0:0]

-A POSTROUTING -s 192.168.1.0/24 -o vpnif -j MASQUERADE
-A POSTROUTING -s 192.168.2.0/24 -o vpnif -j MASQUERADE

ここで、VPN へのこの NAT からホスト (192.168.2.100) を除外し、そのホストに「通常の」外部インターフェイス enp1s0 を使用させるという要求に直面しました。

ここで示した 2 つの前に、次のようにルールを追加してみました。

-A POSTROUTING -s 192.168.2.100/32 -o enp1s0 -j MASQUERADE

ルールは正しい位置に追加されたようです:

Chain POSTROUTING (policy ACCEPT)
num  target     prot opt source               destination         
1    MASQUERADE  all  --  192.168.2.100      anywhere            
2    MASQUERADE  all  --  192.168.1.0/24     anywhere            
3    MASQUERADE  all  --  192.168.2.0/24     anywhere      

しかし残念なことに、トラフィックは依然として VPN インターフェース経由で出ていきます... 誰か私に正しい方向を示してくれませんか?

ありがとう!

関連情報