Ubuntu 18.04 서버의 두 인터페이스 간에 NAT(SNAT) 트래픽을 소싱해야 합니다. 나는 다양한 NAT 요구 사항을 구현하기 위해 '/etc/ufw/before.rules' 파일을 사용하려고 노력해 왔으며 지금까지는 매우 훌륭했습니다... 지금까지.
다음 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 구성에 대한 매뉴얼 페이지는 보다 일반적인 필터링 규칙과 비교할 때 약간 부족한 것 같습니다.
배경: StrongSwan을 사용하여 IPSec 정책 터널을 통해 전송하기 위해 일부 도커/컨테이너 트래픽을 소스 NATing하고 있습니다. 이전에 언급한 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
...