강좌
클라우드/리눅스에 관한 강좌입니다.
데이터베이스 분류

방화벽내 오라클서버 접근

작성자 정보

  • 웹관리자 작성
  • 작성일

컨텐츠 정보

본문

방화벽내 오라클서버 접근

 

t.gif
t.gif
방화벽내 오라클서버 접근

이 방법은 이미 오래전(?)부터 알려진 방법인데, 모르고 있는 사람들이 많은 것 같다.
대강 지금 설명하려는 방식이 적용될 수 있는 시나리오를 얘기해 보자.

1. 사설IP로 보호된 DBMS에 접근
2. 방화벽으로 포트(1521)를 막아둔 경우
3. 외부(집에서 ADSL)에서 TOAD등의 Third Party Tool을 이용한 DBMS로의 접근
4. 기타등등..

사실 나열하긴 했지만, 따지고 보면 모두 동일한 경우로 볼 수도 있겠다.

결론부터 이야기하면, SSH의 Port Fowarding방식을 이용하는 것이다.
이 경우 장점이라면, SSH을 이용하므로 패킷이 암호화되어 처리된다는 것이다.

여기서는 3번 시나리오를 가정하여 설명한다.
아래 2가지 경우가 모두 가능하다.

[CASE 1]
      
집   DBMS
      

[CASE 2]
            
집   서버 DBMS
            



[CASE 1]
우선 자신의 tnsnames.ora파일을 다음과 같이 한다.
PROD은 원래 사용하던 alias이고, prod_secure는 우리가 ssh의 포트포워딩을 통해 처리할 alias이다.
주소부분의 ip/포트가 다르게 지정되어 있음을 주의깊게 보라.

PROD =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.52.1)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = xxx.yyy.zzz)        
    )
  )

PROD_SECURE =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1555))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = xxx.yyy.zzz)        
    )
  )


prod_secure의 host/port부분이 로컬/1555포트로 지정되어 있다.
즉, 로컬:1555 연결은 DBMS서버(ssh로 연결된)의 ssh데몬으로 전달되어 DBMS의 ORACLE*NET으로 전달될 것이다.

우선 다음과 같이 설정하고 DBMS에 연결한다.
sql*plus등의 클라이언트가 DB에 연결하기 전에, 먼저 ssh연결이 이루어져 있어야 한다.
sql*plus를 종료하기전까지는 이 연결은 계속 유지되어야 한다.

SecureCRT를 이용한 ssh 포트포워딩 설정
ora_secure_conn1.gif

SQL*PLUS연결테스트
ora_secure_conn2.gif


[CASE 2]
tnsnames.ora파일은 변함이 없고 포트포워딩을 다음과 같이 설정한다.
ora_secure_conn3.gif


SecureCRT 포트포워딩 기능을 유닉스 ssh를 이용하여 한다면 다음과 같다.

[CASE 1]
% ssh -L 1555:192.168.52.1:1521 192.168.52.1


[CASE 2]
중간서버(dbakorea.pe.kr)에서 DB서버(192.168.52.1)로의 SSH연결이 가능해야 한다.
% ssh -L 1555:192.168.52.1:1521 dbakorea.pe.kr


참조
http://www.dbspecialists.com/presentations/net8_security.html
http://www.vbmysql.com/articles/sshtunnel.html

This article comes from dbakorea.pe.kr (Leave this line as is)

관련자료

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

공지사항


뉴스광장


  • 현재 회원수 :  60,042 명
  • 현재 강좌수 :  35,846 개
  • 현재 접속자 :  107 명