Preciso obter tráfego NAT (SNAT) entre duas interfaces em um servidor Ubuntu 18.04. Tenho tentado usar o arquivo '/etc/ufw/before.rules' para implementar minhas várias necessidades de NAT e até agora tudo bem... até agora.
O seguinte comando iptables parece fazer exatamente o que eu preciso:
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
Esta regra pode ser facilmente traduzida em uma configuração no arquivo '/etc/ufw/before.rules'? As páginas de manual para configurações do UFW NAT parecem faltar um pouco quando comparadas às regras de filtragem mais comuns.
Histórico: estou fornecendo NAT para algum tráfego de docker/contêiner para enviar por um túnel de política IPSec usando StrongSwan. Sem a regra iptables mencionada anteriormente, posso fazer com que o tráfego seja roteado para dentro do contêiner a partir da VPN, mas o tráfego proveniente do contêiner cai.
eth0 é minha interface "pública" IP 1.2.3.4 e eth1 é minha interface "privada" IP 10.136.0.2
Aqui está a configuração *nat que já tenho no arquivo '/etc/ufw/before.rules' para fazer o tráfego fluir (menos o tráfego originado do 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
#
Responder1
Se você já adicionou esta iptables
regra manualmente, poderá encontrar seu formato e posição corretos para adicioná-la before.rules
executando:
# 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
...