Load To Technical Architect

[Network] SSH Tunneling 본문

Network

[Network] SSH Tunneling

고지식한청춘 2021. 12. 24. 14:36
728x90

네트워크를 분리 할 때 외부에서 접근 불가능한 망을 사설망(Private Network) 이라고 한다.

 

이 사설망에 일반적으로 Database나 사내 그룹웨어 등이 배치될 수 있다.

 

만약 내 PC에서 사설망에 존재하는 리소스에 접근하려면 내 PC가 사설망에 존재해야한다.

 

외부에서 사설망에 접근해야 한다면 VPN을 사용하여 사설망에 접근 할 수 있다.

 

하지만 VPN은 기본적으로 VPN 장비 값, 유지보수 비용 등이 발생한다.

 

VPN을 사용하지않고 사설망의 리소스에 접근하는 방법으로 SSH Tunneling이 있다.

 

 

 

- SSH Tunneling 예시 -

위의 그림은 AWS EC2를 Bastion Server로 활용하여 외부에서 AWS VPC의 Private Subnet에 존재하는 AWS RDS에 접근하는 것을 간단하게 그린것이다.

 

 

- SSH Tunneling 방법 -

위의 AWS 환경을 예로 외부에서 사설망에 있는 DB에 접근하는 방법을 알아보자

 

필자는 간단한 서버 접근 프로그램 Putty를 사용했다.

Bastion Server의 IP를 입력

 

Local PC의 Port와 RDS의 Port를 mapping

 

위의 그림을 한 줄로 설명하면 아래와 같다.

 

'내 PC의 2222 포트로 접속하면 123.123.123.123:3306로 연결 됨'

 

※ Local Port로 Well-Known Port(1~1024)는 사용하지말것

 

위의 그림대로 작업하고 DB Tool (Dbeaver, Mysql Workbench 등..)을 연 다음 아래 내용을 입력하고 연결을 시도해보자

 

사설망에 있는 DB에 접속 될 것이다.

  • IP : 127.0.0.1
  • Port : 지정한 Source port
  • Database명
  • 계정 정보

 

※ 이 글은 AWS 환경 구성에 대한 글이 아니므로 Security Group과 같은 설정등은 이미 끝나있다고 가정하고 내용을 뺐습니다.

728x90
Comments