Iptime 포트포워딩 기능을 활용하여 외부에서 내부 서버 접속하기
blog post
iptime의 포트포워딩 기능을 활용하면 PC에서 동작하는 특정 서비스를 외부에서 접속할 수 있습니다.
일반적으로 대부분 가정집에서 사용하는 PC는 내부 네트워크의 IP(주로 192.168.0.0/16)를 사용하고, 외부로 통신할 때만 NAT되어 나가는 구조 입니다. 따라서 외부에서는 직접적으로는 이 내부 네트워크에 접근하기는 어렵죠.
하지만 iptime과 같은 공유기의 DDNS 기능을 통해 할당받은 호스트 정보를 사용하면 외부에서도 내 PC에서 동작하는 각종 서비스에 접근할 수 있습니다. 이때 이 호스트 주소와 함께 사용되는 기능이 바로 포트포워딩 입니다. 내부에서 동작하는 서비스의 특정 포트를 호스트+외부포트 조합으로 특정 서비스에 접근할 수 있습니다. (자세한 포트포워딩 기능 설명은 생략합니다)
이번 포스트에서 저는 제가 이전 포스트를 통해 구축한 제 개인 오픈스택 클라우드 서버를 외부에서 접근하는 설정을 해보겠습니다. 혹시 해당 포스트가 궁금하신 분들은 오픈스택 클라우드 서버 구축 포스팅을 참고하시기 바랍니다. 이 글을 보시는 분들은 각자 서비스 포트에 맞게 응용하여 설정해주시면 되겠습니다.
* 참고
Iptime에서 외부 IP와 매핑되어 있는 DDNS 호스트 정보는 사전에 세팅 되어 있다는 전제로 설명하겠습니다.
우선 다음과 같이 자신의 iptime 설정 페이지에서 관리도구로 들어갑니다.
메뉴탐색기에서 고급설정-> 포트포워드 설정으로 이동합니다.
다음과 같이 포트포워드 설정 창에서 +새규칙 추가 클릭 후 아래와 같이 자신이 연결하고자 하는 서비스 관련 정보를 입력합니다.
- 규칙이름
- 내부 IP 주소: 프로그램(혹은 서비스)이 동작하는 서버 혹은 PC의 ip
- 프로토콜: 대상 서비스가 사용하는 프로토콜. ex) 웹 서버: TCP
- 내부 포트: 대상 서비스가 사용하는 실제 포트. ex) 웹 서버: 80
- 외부 포트: 외부에서 대상 서비스가 사용하는 포트(내부 포트)에 접근할 때 사용할 임의의 포트.
저는 위와 같이 아파치 서비스로 동작하는 오픈스택 대시보드를 외부에서 8080포트로 접속하도록 설정하였습니다. 정보 입력 후 "적용"을 클릭합니다. 그리고 마지막에는 상단의 "저장" 까지 클릭하셔야 합니다.
이제 iptime의 DDNS 호스트 주소 + 외부포트 조합으로 외부에서 접속할 수 있는지 확인해 보겠습니다.
웹 서버(오픈스택 대시보드) 기준으로 보겠습니다.
<iptime id>.iptime.org:8080/dashboard 로 접속을 시도해보니 정상적으로 접속하는 것을 확인할 수 있습니다.
* 참고
물론 웹 서버의 경우 외부 접속 허용을 위한 호스트 주소를 보안상 내부에서도 설정해 줘야 합니다. 오픈스택 대시보드의 경우 horizon 서비스에서 허용 호스트를 관리합니다.
포트포워딩을 사용하는 예시 2가지를 더 들어보겠습니다.
오픈스택은 Nova 컴퓨트 서비스를 통해 브라우저 용 VNC 서비스를 제공하는데 이 역시 포트포워딩 설정이 안되어 있으면 외부에서 접근할 수 없습니다.
Nova 컴퓨트 서비스의 VNC 포트는 기본 6080을 사용합니다.
위와 같이 외부 접근을 허용하면 브라우저 VNC에 접근할 수 있습니다.
또 경우에 따라 특정 서버에 터미널로 접속해서 작업해야 하는 경우, 아래와 같이 외부 ssh 접속을 허용할 수도 있습니다.
ssh 명령을 사용하여 위에서 생성한 포트와 호스트 주소로 접속할 수 있습니다.
이 밖에도 포트포워딩 기능을 활용하는 다양한 방법이 있지만, 사용하시기에 앞서, 외부에서 직접 접근이 가능하다는 점에서 보안 문제에 다소 취약할 수 있다는 점을 꼭 고려하시기 바랍니다. 특히 80 포트는 사용에 더욱 유의하시기 바랍니다.
'Network > Configuration' 카테고리의 다른 글
[Linux Network] Avahi를 활용하여 간단하게 Host, IP 알아내기 (0) | 2020.04.01 |
---|---|
[리눅스 네트워크] 1개의 NIC에서 Veth를 이용하여 멀티 IP 구성하기 (Update. 2020.04.30) (0) | 2019.12.24 |