도와주세요!!
글 수 15,339
2006.10.16 13:51:16 (*.112.141.66)
6689
리눅스 박스는 192.168.1.1 (eth1 내부), 1.1.1.1 (eth0 외부)일때
192.168.1.10 (내부컴) 에서 1.1.1.1의 10000으로 접속을 요청하는
패킷을 192.168.1.10 (내부컴)의 10000번으로 포워딩 시킬려면 어떻게
룰을 세워야 하나요?
즉 내부 컴퓨터가 자기 자신으로 접속을 하고 싶어하는 경우에 해당합니다.
다만 자신의 로컬IP로 접속을 하는 것이 아니라 리눅스 박스의 포워딩
룰을 통해서 공인 IP로 접속을 해보자는 의도입니다.
즉 로컬컴(192.168.1.10)에 10000 번을 사용하는 tcp 서버 프로그램을
실행시켜놓고 윈도우 커맨드창에서 telnet 1.1.1.1 10000 <enter> 했을때
로컬컴에 띄워놓은 tcp 서버프로그램에 접속이 되게끔 하려는 겁니다.
리눅스 박스에 등록된 룰은 아래와 같습니다.
이외에 어떤 룰이 더 추가가 되어야만 위 문제가 해결될까요?
----------------------------------------------------------------------------------
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o $WAN -j MASQUERADE
iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
iptables -t nat -A PREROUTING -i 1.1.1.1 -p ALL -j DNAT --to 192.168.1.10
----------------------------------------------------------------------------------
# iptables -L 결과
===============================================================
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
TCPMSS tcp -- anywhere anywhere tcp flags:SYN,RST/SYN TCPMSS clamp to PMTU
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
===============================================================
# iptables -t nat -L 결과
===============================================================
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
DNAT all -- anywhere anywhere to:192.168.1.10
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE all -- anywhere anywhere
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
===============================================================
192.168.1.10 (내부컴) 에서 1.1.1.1의 10000으로 접속을 요청하는
패킷을 192.168.1.10 (내부컴)의 10000번으로 포워딩 시킬려면 어떻게
룰을 세워야 하나요?
즉 내부 컴퓨터가 자기 자신으로 접속을 하고 싶어하는 경우에 해당합니다.
다만 자신의 로컬IP로 접속을 하는 것이 아니라 리눅스 박스의 포워딩
룰을 통해서 공인 IP로 접속을 해보자는 의도입니다.
즉 로컬컴(192.168.1.10)에 10000 번을 사용하는 tcp 서버 프로그램을
실행시켜놓고 윈도우 커맨드창에서 telnet 1.1.1.1 10000 <enter> 했을때
로컬컴에 띄워놓은 tcp 서버프로그램에 접속이 되게끔 하려는 겁니다.
리눅스 박스에 등록된 룰은 아래와 같습니다.
이외에 어떤 룰이 더 추가가 되어야만 위 문제가 해결될까요?
----------------------------------------------------------------------------------
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o $WAN -j MASQUERADE
iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
iptables -t nat -A PREROUTING -i 1.1.1.1 -p ALL -j DNAT --to 192.168.1.10
----------------------------------------------------------------------------------
# iptables -L 결과
===============================================================
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
TCPMSS tcp -- anywhere anywhere tcp flags:SYN,RST/SYN TCPMSS clamp to PMTU
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
===============================================================
# iptables -t nat -L 결과
===============================================================
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
DNAT all -- anywhere anywhere to:192.168.1.10
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE all -- anywhere anywhere
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
===============================================================