iptables MASQUERADE 질문입니다.

soo20987의 이미지

해당 대역의 www포트만 다른 인터페이스를 통과 하게 iptables 하고 싶은데요

iptables -t nat -A POSTROUTING -s 203.*.*.*/24 -p tcp --dport 80 -j SNAT --to-source 인터페이스 IP

이런식으로 SNAT에 인터페이스의 IP를 넣어 주면 되는 거 같습니다.

근데 문제점은 해당 인터페이스가 DHCP라서 IP가 바뀐다는 거죠..

스크립트로 돌리는거는 싫고...

MASQUERADE로 위와 똑같은 설정으로 IP대신에 인터페이스명으로 주는 방법좀 가르쳐 주세욤

고수분들 부탁 드립니다.

bushi의 이미지

OpenVPN 으로 못된 짓을 하던 당시의 제 /etc/sysconfig/iptables 중 일부입니다.

*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
## OpenVPN 
-A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
COMMIT
 
*filter
...어쩌구...
...저쩌구...
-A FORWARD -i eth0 -d 10.8.0.0/24 -j ACCEPT
-A FORWARD -s 10.8.0.0/24 -o eth0 -j ACCEPT
...이러쿵...
...저러쿵...
COMMIT

-A POSTROUTING -i tun+ -o eth0 -j MASQUERADE
쯤으로 쓰면 간단하겠지만, 당시 VPN 서버를 두 개 돌리고 있었고, 그 중의 하나만 masquerading 이 필요했었습니다. 그놈이 tun0 가 될지 tun1 이 될지는 동적이었고요.

어쨌든, 그 때 당시의 제 상황이 말씀하신 것과 상당히 비슷해서 .. 끄적여 봤습니다.

P.S
흠...원래 POSTROUTING 엔 -i 를 쓸 수가 없군요. -.-
혹시 엄하게 고생하실지도 몰라서 *filter 의 내용도 추가로 덧 붙였습니다.
OTL