Ubuntu
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/container 流量進行源 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 #
如果您已經
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 ...