firewall-cmd –add-masquerade

Masquerade

개요

목적

커맨드

POSTROUTING 확인

Chain POSTROUTING (policy ACCEPT 15197 packets, 934K bytes)
pkts bytes target     prot opt in     out     source               destination
0     0 MASQUERADE  all  --  *      !docker0  172.17.0.0/16        0.0.0.0/0

iptalbesMASQUERADE 추가할 경우

 iptables -t nat -A POSTROUTING -o <인터페이스> -j MASQUERADE

라우팅

외부/내부/가상머신 조건

<외부 통신="" 인터페이스="">
항목 내용
ipv4 192.168.100.50
SM 255.255.255.0
GW 192.168.100.2
DNS 8.8.8.8
<내부 통신="" 인터페이스="">
항목 내용
ipv4 192.168.200.2
SM 255.255.255.0
<가상머신>
항목 내용
ipv4 192.168.200.100
SM 255.255.255.0
GW 192.168.200.2
DNS 8.8.8.8

포워딩 허용

// 포워딩 허용
echo 1 > /proc/sys/net/ipv4/ip_forward
// 시스템 재부팅 후에도 자동 적용
sysctl -w net.ipv4.ip_forward=1

firewall 비활성화

iptaables 모든 정책 DROP으로 변경

iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

# 결과
iptables -L -t nat
Chain PREROUTING (policy DROP)
target     prot opt source               destination

Chain POSTROUTING (policy DROP)
target     prot opt source               destination

Chain OUTPUT (policy DROP)
target     prot opt source               destination

FORWARD 정책에 인터페이스 입/출력 허용

iptables -A FORWARD -i <내부 통신 인터페이스> -j ACCEPT                 // <내부 통신 인터페이스>의 입력 포워딩
iptables -A FORWARD -o <내부 통신 인터페이스> -j ACCEPT                 // <내부 통신 인터페이스>의 출력 포워딩
iptables -n nat -A POSTROUTING -o <외부 통신 인터페이스> -j MASQUERADE  // <외부 통신 인터페이스>의 출력 패킷 MASQUERADE
service iptables save
service iptables restart
dnatPREROUTING
snatPOSTROUTING
MASQUERADE

참조