질문&답변
클라우드/리눅스에 관한 질문과 답변을 주고 받는 곳입니다.
리눅스 분류

iptables 이용한 DNAT ?

작성자 정보

  • 보안 작성
  • 작성일

컨텐츠 정보

본문

안녕하세요

iptables 이용한 DNAT 질문입니다.

리눅스는 페도라 3.0 입니다. (커널 2.6.9-1.667)

iptables 관련 커널 컴파일은 하지 않았습니다.

iptables 소스로 다운 받아서 사용하였습니다

버젼은 1.3.3 입니다

저희집은 유동ip입니다

 

리눅스 서버 => eth0  공인(ip 58.233.146.207) 사설 eth1 (ip 192.168.1.3)

서브컴 1(윈도우) => 랜카드 (ip 192.168.1.2)

cisco    => 192.168.1.254 포트 23

 

포트포워딩을 구축생각

----->(eth0)  리눅스 서버 (eth1) -------  스위치 -------  서브컴 192.168.1.2

                                                                               -------   cisco 192.168.1.254 : 23

외부에서 cisco 라우터에 접속을 할라면 리눅스 서버에 접속해서 다시 telnet으로 cisco 장비에 접속을 해야되는데

DNAT 이용해서 리눅스 서버 58.233.146.207:9999 접속하면 192.168.1.254:23 으로 포트포워딩되게 하고 싶은데 자꾸 않되네여..

책보고 만든 셀 스크립트입니다.

[root@root sh]# cat nat.sh
#!/bin/sh

iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

iptables -F  
iptables -t nat -F
iptables -t mangle -F

iptables -X 
iptables -t nat -X
iptables -t mangle -X

echo "1" > /proc/sys/net/ipv4/ip_forward

iptables -t nat -A PREROUTING -d 58.233.146.207 -p TCP --dport 9999 -j DNAT --to 192.168.1.254:23
iptables -t nat -A PREROUTING -d 192.168.1.3 -p TCP --dport 9999 -j DNAT --to 192.168.1.254:23
iptables -t nat -A PREROUTING -d 192.168.1.3 -p TCP --dport 8888 -j DNAT --to 192.168.1.2:80
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

1번째는 58.233.146.207:9999 들어오는 패킷들은 192.168.1.254:23 (시스코 장비)

2번째는 192.168.1.3:9999 들어오는 패킷들은 192.168.1.254:23(시스코 장비)

3번째   192.168.1.2:8888 들어오는 패킷들은 192.168.1.2:80(서브컴에 웹페이지)

4번째는 마스커레이딩 NAT를 했습니다.

[root@root sh]# iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination        
DNAT       tcp  --  anywhere             58.233.146.207      tcp dpt:9999 to:192.168.1.254:23
DNAT       tcp  --  anywhere             192.168.1.3         tcp dpt:9999 to:192.168.1.254:23
DNAT       tcp  --  anywhere             192.168.1.3         tcp dpt:8888 to:192.168.1.2:80

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination        
MASQUERADE  all  --  anywhere             anywhere           

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination      

[root@root sh]# iptables -L -n
Chain INPUT (policy ACCEPT)
target     prot opt source               destination        

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination        

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination       

1번째 SecureCRT 프로그램으로 58.233.146.207 포트 9999 적고 엔터시 접속이 않되네여

telnet 58.233.146.207 9999   cmd 창에서 해도 접속이 않되네여

그래서 혹시 서브컴에서는 리눅스서버(eth1) 이 들어오는 트래픽이니깐 2번째줄 3번째줄을 추가하고 SrcureCRT 프고르램으로 192.168.1.3 9999 적고 엔터시 접속이 않되고

telnet 192.168.1.3 9999 해도 접속이 않됩니다

그리고 웹브라우저에서 192.168.1.3:8888 해도 192.168.1.2:80 웹서비스가 열리지가 않습니다

제가 뭐 잘 못 적었나여?

4번째 마스커레이딩은 잘 동작합니다..

혹시 밑에 제가 글을 남겼는데 patch-o-matic-ng 나 iptable 에서 커널 컴파일이 DNAT 관련 이 커널에 컴파일이 않되서 그런가여..

페도라 3.0 설치된 커널로 테스트 하고 있습니다.

어디서 부터 차근차근 접급을 해야할지 모르겠습니다

답변 부탁드립니다


 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,133 명
  • 현재 강좌수 :  36,171 개
  • 현재 접속자 :  263 명