보안상의 이유로 대부분의 서비스는 외부에서 접근하는 경로 및 포트를 차단하는 경우가 많다. 그렇지만, 개발 또는 테스트를 하기 위해서 원격서버에 연결해야하는 경우가 종종있다. 여기서는 목적지 서비스(IP:PORT)에 직접 연결이 어려운 상황에서 터널링을 통해 목적지에 도달하고 원하는 서비스(IP:PORT)에 접근하는 방법에 대해 소개하고자 한다. 터널링에 이용하는 툴은 MobaXTerm을 이용하도록 하고 터널링을 통해 OpenStack dashboard 및 console을 연결하는 방법에 대해 설명을 하겠다.
MobaXterm을 이용한 터널링
전제조건 :
SSH 서버는 SSH로 접속이 가능해야 하고,
SSH 서버에서 리모트 서버 IP 및 Port 에 접근이 가능해야 한다.
테스트 환경 :
로컬 클라이언트 : 내컴퓨터 (127.0.0.1)
리모트 서버: 목적지 서버 (172.17.103.224)
SSH 서버 : 경유하는 서버 (10.10.10.51)로 목적지 서버(172.17.103.224)가 접근 가능한 SSH 서버
시나리오 1 :
127.0.0.1:80 을 브라우저에 입력하고 실행하면, SSH 서버(10.10.10.51:22)에서 포트포워딩(80)을 통해 리모트 서버(172.17.103.224:80)으로 접근
시나리오 2 :
127.0.0.1:6080 을 브라우저에 입력하고 실행하면, SSH 서버(10.10.10.51:22)에서 포트포워딩(6080)을 통해 리모트 서버(172.17.103.224:80)으로 접근
1. 상단 메뉴에서 Session을 선택하고 이어 나오는 창에서 SSH를 선택하여 SSH 서버(10.10.10.51)에 로그인을 한다.
2. SSH 로그인한곳에서 Tunneling을 선택하고, 이어 나오는 창에서 "New SSH tunnel" 을 클릭한다.
3. 80포트로 포트포워딩하기 위해 아래와 같이 설정을 하고 저장(Save)을 한다.
4. "New SSH tunnel" 을 다시 클릭한후, 6080포트로 포트포워딩하기 위해 아래와 같이 설정을 하고 저장(Save)을 한다.
5. 80 포트와 6080 포트에 대한 포트포워딩 설정이 끝나면 아래 Name에 root를 입력하고 실행 버튼을 클릭 한다.
6. 브라우저를 열고 시나리오 1인 127.0.0.1:80 을 입력하여 리모터 서버(172.17.103.224:80)로 접근이 되는지 확인한다.
7. OpenStack Dashboard에 로그인한 후 특정 인스턴스의 Console을 실행하여 시나리오 2인 127.0.0.1:6080 을 업데이트하여 리모터 서버(172.17.103.224:6080)로 접근이 되는지 확인한다.
이상으로, 직접 접근하기 불가능한 리모트 서버를 터널링 및 포트포워딩을 통해 우회하여 접근하는 방법에 대해 소개하였다. 운영중인 서버나 서비스는 반드시 관리자에게 방화벽 요청 또는 우회 사용에 대한 보고를 통해 접근하시고, 테스트 환경에서 접근이 어려운 상황에만 임시적으로 활용하는 것을 권장 드립니다.