IPTables 來源 NAT (SNAT) 到 /etc/ufw/before.rules

IPTables 來源 NAT (SNAT) 到 /etc/ufw/before.rules

我需要在 Ubuntu 18.04 伺服器中的兩個介面之間取得 NAT (SNAT) 流量。我一直在嘗試使用「/etc/ufw/before.rules」檔案來實現我的各種 NAT 需求,到目前為止一切順利......直到現在。

以下 iptables 指令似乎完全符合我的需要:

iptables -j SNAT -t nat -I POSTROUTING 1 -o eth0 -d 192.168.1.0/24 -s 172.18.0.0/16 --to-source 10.136.0.2

這個規則可以很容易地轉換成「/etc/ufw/before.rules」檔案中的設定嗎?與更常見的過濾規則相比,UFW NAT 配置的手冊頁似乎有點缺乏。

背景:我對一些 docker/容器流量進行來源 NAT,以使用 StrongSwan 透過 IPSec 策略隧道發送。如果沒有前面提到的 iptables 規則,我可以將流量從 VPN 路由到容器,但來自容器的流量卻會停滯不前。

eth0 是我的「公用」介面 IP 1.2.3.4,eth1 是我的「私有」介面 IP 10.136.0.2

這是我在「/etc/ufw/before.rules」檔案中已有的 *nat 配置,用於取得流量(減去 docker 來源的流量):

*nat
:POSTROUTING ACCEPT [0:0]
-A POSTROUTING -s 192.168.1.0/24  -d 10.136.0.0/16 -j MASQUERADE
-A POSTROUTING -s 192.168.1.0/24  -d 172.18.0.0/16 -j MASQUERADE
COMMIT
#

答案1

如果您已經iptables手動新增了此規則,那麼您可以透過執行以下命令找到其正確的格式和新增位置before.rules

# sudo iptables -t nat -S
...
-A POSTROUTING -s 172.18.0.0/16 -d 192.168.1.0/24 -o eth0 -j SNAT --to-source 10.136.0.2
...

相關內容