Fonte IPTables NAT (SNAT) para /etc/ufw/before.rules

Fonte IPTables NAT (SNAT) para /etc/ufw/before.rules

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 iptablesregra manualmente, poderá encontrar seu formato e posição corretos para adicioná-la before.rulesexecutando:

# 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
...

informação relacionada