본문 바로가기

TECH DOC

Tunnels, Port Forwarding v1.0

Tunnels, Port Forwarding

 

from

 

1.    Tunnels, Port Forwarding

putty 에서는 Tunnels Secure CRT 에서는 Port Forwarding 이라 한다.

이름을 보면 알 수 있듯이 최종목적지로의 우회경로를 제공한다.

기존의 유저 타겟 의 1:1 관계가 아닌 유저 우회 타겟 의 관계를 가진다.

telnet protocol 에서는 제공되지 않는다. ssh 에서 제공되는 기능이다.

2.    사용하는 경우

A,B,C 환경이 있고 B C의 입장에서 신뢰받는 이용자이다. 즉 접근권한을 가지고 있다. A의 경우 B로의 접근권한을 가지지만 C로의 접근권한은 가지고 있지 않다. 이러한 경우 A C로의 접근을 하기 위한 방법으로 사용된다.

3.    Test 환경구성

A.     사용자 컴퓨터에 구성된 두개의 가상머신을 이용했다.

B.     각 머신의 내용은 아래와 같다.

유저 : 현재사용하는 컴퓨터, oracle client 설치되어있는 상태

(C:\Windows\System32\drivers\etc\hosts - 위치가 다를 수도 있음

          127.0.0.1 추가)

우회 : 192.168.100.100 (ssh)

타겟 : 192.168.100.101 (oracle open 상태, listener start 되 있는 상태)

4.    Tunnels

A.     PUTTY 설정

192.168.100.100 ssh 로 접속한 후 화면상에서 우클릭으로 change setting 항목을 연 화면이다.

Source port Local Machine 에서 포워딩에 사용할 포트를 입력하고  Destination 에 타겟이 되는 서버의 ip 와 포트를 입력한다. 그 후 add를 누른 다음 apply 한다.

 

 

B.     사용예제

우선 기존에 정의되어 있던 로컬 PC tnsnames.ora 는 아래와 같다.

 

ORCL =

  (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.100.101)(PORT = 1521))

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = ORCL)

    )

)

 

이 상태에서 ORCL 과 커넥션을 맺고 192.168.100.101 에서 NETSTAT으로 조회하면

다음과 같은 결과를 볼 수 있다.

 

ocp@orcl : /home/oracle> netstat -a | grep 1521

tcp        0      0 *:1521                      *:*                         LISTEN     

tcp        0      0 ocp.mycorpdomain.com:37854  ocp.mycorpdomain.com:1521   ESTABLISHED

tcp        0      0 192.168.100.101:1521        192.168.100.1:57555         ESTABLISHED

tcp        0      0 ocp.mycorpdomain.com:1521   ocp.mycorpdomain.com:37854  ESTABLISHED

ocp@orcl : /home/oracle>

 

192.168.100.1 은 필자 PC 에 정의한 GATEWAY 주소이다.

간단히 표현하면 아래와 같다.

ORACLE CLIENT (LOCAL) – LOCAL GATEWAY – VMWARE(192.168.100.101:1521 – ORCL)

 

다음은 위에서 만든 터널을 가지고 접근해 보겠다.

 

수정한 TNSNAMES.ORA 는 아래와 같다.

 

ORCL =

  (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 8888))

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = ORCL)

    )

  )

 

이 상태에서 ORCL 과 커넥션을 맺고 192.168.100.101 에서 NETSTAT으로 조회하면

아래와 같은 결과를 볼 수 있다.

 

ocp@orcl : /home/oracle> netstat -a | grep 1521

tcp        0      0 *:1521                      *:*                         LISTEN     

tcp        0      0 192.168.100.101:1521        192.168.100.100:34319       ESTABLISHED

tcp        0      0 ocp.mycorpdomain.com:37854  ocp.mycorpdomain.com:1521   ESTABLISHED

tcp        0      0 ocp.mycorpdomain.com:1521   ocp.mycorpdomain.com:37854  ESTABLISHED

ocp@orcl : /home/oracle>

 

결과를 보면 192.168.100.100 으로부터의 커넥션으로 조회된다.

 

5.    Port Forwarding

A.     SECURE CRT 설정

PUTTY의 경우와 동일

B.     사용예제

PUTTY 와 동일한 과정을 밟으며 PUTTY CHANGE SETTING 과정 대신 아래의 과정을

밟는다. 터널로 이용할 세션을 열고 해당 세션에서 우클릭 하면 SESSION OPTIONS 라는

메뉴가 나온다. 아래의 그림은 그 메뉴를 선택했을 때 팝업되는 화면이다.

 

CONNECTION 카테고리를 보면 PORT FORWARDING 이란 항목이 있고 ADD 를 클릭하면

포트포워딩 이름을 지정할 수 있고 어떤 포트를 사용할지 그리고 REMOTE 연결내용을

입력 할 수 있다. 이 과정을 마치고 PUTTY 에서의 과정을 밟으면 우회접근이 가능하다.

6.    유의사항

사용시 터널로 이용되는 세션이 살아있어야 한다. TIMEOUT 이 존재하는 연결의 경우 topas top 과 같은 명령어를 이용해 연결을 유지하기도 한다.