VPN으로 외부에서 삼바(Samba)로 접근하는 방법

VPN 을 활용하여 편리한 개발환경 구축하기

현재 당신은 개발 환경을 어떻게 구축하여 사용하십니까? 일반적으로 리눅스 개발 환경이라고 하면 사내에서 리눅스 머신(리눅스가 설치된 서버나 PC)을 운영하면서 SSH 등으로 원격으로 접속하여 사용중일 가능성이 높습니다.

저도 회사에서 개발을 할때는 이런 패턴으로 개발 환경을 구축하여 사용중이었습니다. 대신에 회사를 벗어나서 집이나 카페 등지에서 사내로 접근하려면 접근이 불가하는 일이 생길 수 있습니다.

이럴 때는 사내의 네트워크를 당담하는 전산 담당자들이 해당 포트를 Open 해줘야 하는데요, “보안” 상을 이유로 대다수는 SSH 등의 프로토콜의 포트를 열어주지 않습니다. 네트워크 상에서는 수많은 크래킹 관련 패킷들이 돌아다니고 있기 때문이지요.

그럼 이럴 때는 외부에서 사내로 접근이 불가능 할까요? 그렇지 않습니다. “VPN” 을 이용하면 사내로 손쉽게 접근이 가능하면서 보안적으로도 문제가 없게 됩니다.

VPN 이란?

출처 – 나무위키

VPN은 Virtual Private Network 의 약자로 한글로 풀이하면 “가상 사설 통신망” 이라고 합니다. 국내외의 수많은 공공기관, 기업등은 사내 보안 유지를 위해 외부와 연결이 단절된 “인트라넷”의 형태로 내부 전산망을 운영하고 있습니다.

그런데 인트라넷 회선이 연결이 되지 않은 곳에서는 사내망 접근이 불가능해지거나 망 구축에 비용이 많이 드는 단점이 생겼습니다. 그래서 기존의 인터넷 망을 마치 “인트라넷” 같이 만드는 기술이 발전하게 되었는데 이게 “VPN” 입니다.

VPN은 PPTP, L2TP, IPSEC 같은 프로토콜을 사용하여 서버나 디바이스에 접근이 가능합니다. 또한 보안이 뛰어나기 때문에 수많은 기업이나 기관에서 VPN 망을 구축하여 사용하고 있는 중입니다.

VPN은 접근할 수 없는 망과 망 사이를 연결해주는 역할도 하기 때문에 때로는 악용이 되기도 합니다. 국내 인터넷 망에서 접속할 수 없는 해외 사이트를 해외 VPN 서버에 접속하여 마치 해외의 유저로 속여서(?) 해외 사이트에 접속이 가능하게 됩니다.

이처럼 VPN은 어두운 면도 존재하지만 그 활용도는 현재 네트워크 분야에서 아주 폭 넓게 사용되고 있습니다. 제가 설명하려는 부분과 같이 사내에 내부망을 구축하고 외부에서 접근할 수 있게 연결을 해주는 기능도 VPN으로 가능합니다. VPN은 보안이 뛰어나기 때문에 인증된 사용자만 접속하게 할 수 있습니다.

VPN 서비스는 전세계 여러 기업이나 기관에서 운영을 하고 있습니다. 그중에서 무료로 운영되는 VPN 서버가 있는데요, 일본 쓰쿠바 대학에서 운영하는 “SoftEther VPN” 입니다.

흥미로운 것은 SoftEther VPN의 상당수의 트래픽이 “한국” 으로 부터 나온다는 것입니다. 그만큼 한국인들은 해외 VPN을 이용할만한 이유가 있는걸까요?^^

이와 관련해서는 별도의 포스팅을 통해 다뤄보겠습니다.

일단 집이나 사내에 VPN을 구축하려면 VPN 서버 기능을 할 수 있는 수단이 필요합니다. 여기서는 집에서 사용하는 유무선 공유기 + Open VPN으로 구축을 해보겠습니다.

OpenVPN

VPN 프로토콜 중에서는 PP2P, LT2P, IPSEC 외에도 OpenVPN 이라는 별도의 프로토콜이 존재합니다.

OpenVPN은 OpenVPN 테크놀러지에서 개발하여 배포한 VPN 프로토콜의 일종입니다. 또한 OpenVPN 관련 접속 소프트웨어를 “오픈소스”로 배포를 하고 있습니다.

OpenVPN은 현재 VPN 망 구축에도 널리 사용되고 있는 중입니다. 보안이 뛰어나며 다수의 서버에서도 지원을 하기 때문에 OpenVPN으로 VPN 를 구축 이용하는데에 편리합니다.

따라서 저는 집의 유무선 공유기와 OpenVPN으로 외부에서 접근이 가능한 개발환경을 구축하는 방법에 대해 설명합니다. 유무선 공유기는 일단 OpenVPN이 지원이 되는 공유기가 필요합니다.

시중에는 다양한 유무선 공유기 제품이 즐비합니다. 국내에는 유무선 공유기의 대표주자 “ipTime” 에서도 최근에는 OpenVPN 을 지원하는 제품군들을 출시했다고 합니다.

따라서 공유기는 OpenVPN을 지원하는 공유기를 사용하면 됩니다. 저의 경우에는 티피링크의 “Archer C60” 이라는 공유기를 사용하여 OpenVPN를 구축한 상태입니다.

티피링크 유무선공유기, Archer C60

만약 사용하고 있는 공유기에서 OpenVPN 을 지원하지 않는다면 이참에 OpenVPN 을 지원하는 저렴한 공유기를 하나 구입하여 OpenVPN 으로 VPN을 구축해 보셔도 될꺼 같습니다.

유무선 공유기의 OpenVPN 설정하기

그럼 OpenVPN 으로 외부에서 안전하게 우리집이나 사무실에 접근할 수 있는 VPN 망을 구축해 볼까요? 먼저 사용중인 공유기의 설정 화면으로 접속합니다. 저는 제가 가지고 있는 티피링크 공유기로 설명을 해보도록 하겠습니다.

먼저 공유기의 설정화면에서 VPN 설정 화면으로 이동해야 합니다. 티피링크의 경우에는 “고급” – “VPN서버” 라는 탭에 있습니다.

VPN 서버 탭을 클릭하면 OpenVPN, PPTP VPN, VPN 연결 등의 3가지 항목이 나타나는데 “OpenVPN” 을 선택해 주면 됩니다.

그러면 위와 같은 화면이 나타날 것입니다. OpenVPN 을 설정한 이력이 없으므로 먼저 “인증서”를 생성해 줘야 합니다. 위의 그림에서 보이듯이 “생성” 버튼을 눌러서 인증서를 생성해 주세요.

인증서 생성에는 약간의 시간이 걸립니다. 잠시 기다리면 인증서가 생성이 됩니다.

인증서가 생성이 되면 위의 그림과 같이 “성공” 이라는 메시지가 뜹니다. 그러면 “VPN 서버 활성화”에 체크를 해주고 “저장” 버튼을 눌러주면 내 공유기의 VPN 서버가 활성화가 됩니다. 설정은 크게 어렵지 않고 간단한 편입니다.

이제 마지막으로 OpenVPN의 구성 파일을 다운로드 해주면 됩니다. 위의 그림에서 보이듯이 “구성 내보내기” 버튼을 클릭하여 구성 파일을 다운로드 받습니다.

파일은 .ovpn 이라는 확장자를 가진 파일입니다. 이 파일은 현재 공유기에 설정되어 있는 OpenVPN 구성이 저장된 파일입니다. 이 파일을 이용하여 외부의 클라이언트에서 VPN 서버로 바로 접속을 할 수 있습니다.

OpenVPN Connect 클라이언트 다운로드 및 설치

여기까지 했으면 외부에서 접속이 필요한 PC에 OpenVPN 클라이언트 프로그램을 설치하면 됩니다.

위 링크를 이용하여 OpenVPN 클라이언트 프로그램을 다운로드하여 설치를 진행합니다. 이외에 Mac 이나 Linux, iOS, 안드로이드 등에서도 클라이언트 프로그램을 설치할 수 있습니다.

저는 외부에서 자주 사용하는 노트북이 Windows 가 설치되어 있기 때문에 Windows 용을 설치를 했습니다.

OpenVPN Connect 에서 VPN 연결하기

OpenVPN Connect 클라이언트를 설치했으면 Windows 의 경우 다음과 같이 표시됩니다.

위의 아이콘을 클릭하여 OpenVPN Connect 를 실행합니다.

그럼 위와 같이 실행이 될 것입니다. 여기서 공유기의 VPN 서버에 접근하기 위해서는 “FILE” 탭을 클릭합니다.

FILE 탭에는 OpenVPN 의 구성 파일을 열어서 내가 접속하려는 OpenVPN 서버로 바로 접속할 수 있게 도와줍니다. 좀전에 공유기에 VPN 서버를 세팅하면서 내보낸 구성 파일을 여기서 열어주면 됩니다.

그럼 위와 같이 프로필네임과 서버 호스트네임이 뜨게 됩니다. 그런 다음에 “CONNECT” 버튼을 누르면 내 공유기로 접속을 시도하게 됩니다.

자! 드디어 접속이 되었네요. 현재 저는 제 외부용 노트북에 제 모바일의 테더링을 사용하여 와이파이로 네트워크를 구성한 후 제 집의 공유기 VPN 서버로 접속하였습니다. 이렇게 외부에서도 VPN 서버를 집 혹은 사무시에 구축해 놓으면 손쉽게 접근이 가능합니다.

OpenVPN 은 노트북 뿐만 아니라 모바일에서도 접속이 가능합니다. 제 안드로이드 폰으로 접속한 화면입니다.

LTE 상태에서 집 공유기의 VPN 서버로 접속을 하였고 정상 접속이 되는 것을 확인하였습니다. VPN을 접속하면 마치 집의 내부 네트워크를 사용한 것과 동일하게 사용이 가능합니다. 제 폰으로 공유기의 설정 화면 접속이 된것을 확인할 수 있습니다.

모바일에서도 접속 과정은 동일합니다. OpenVPN Conncet 클라이언트 앱을 다운로드 하여 설치한 뒤에 공유기의 구성 파일을 Import 하여 연결을 시도하면 됩니다.

VPN응용 & 외부에서 내 개발 서버 접근하기

자 그럼 VPN을 통해서 응용을 해보도록 하겠습니다. 이 글의 주제인 내 집이나 사무실의 개발 서버를 외부에서 마치 내부에 접속한 것과 같은 효과를 얻을 수 있게 하는 방법입니다.

이미 OpenVPN 으로 VPN 루트를 구축했기 때문에 개발서버에 “삼바” 정도를 구축해 놓으면 외부에서도 내 노트북과 개발서버 사이에 파일 공유를 매우 손쉽게 하는게 가능합니다.

제가 대략적으로 그려본 VPN 망 구성도 입니다. 저희 집에는 내부 IP가 192.168.10.X 로 되어 있습니다. 따라서 외부에서 OpenVPN Connect 를 사용하여 집 공유기의 VPN 서버로 접속하면 192.168.10.X 로 내부 IP를 할당받게 됩니다.

이렇게 되면 집이나 사무실에 내부 IP로 설정해놓은 리눅스 서버(개발서버)의 접근이 가능해집니다. 마치 집에서 WiFi 를 통해 노트북을 사용한 것과 마찬가지 효과를 얻을 수 있습니다.

외부에서 VPN을 접속하고 난 다음에 제 노트북 IP의 모습입니다. 알수없는 어뎁터가 생겨났고 IP 주소를 할당 받은 것을 알 수 있습니다.

공유기의 IP인 192.168.10.1 로 ping 을 날려보겠습니다. ping 의 응답이 잘 오는 것이 확인이 되는군요.

그래서 공유기의 IP로 설정 화면에 접속을 해봤습니다. 아주 잘 접속이 되는 모습입니다.

집에서 운영하고 있는 리눅스 개발 서버의 IP는 192.168.10.101 입니다. putty 를 통해서 접속을 시도해 보니 접속이 잘 되는 것을 확인할 수 있습니다.

마치 집 내부에서 접속한 것과 동일하군요.

마지막으로 리눅스 개발서버의 삼바로 접근을 시도해 보겠습니다. 만약 리눅스 서버에 삼바가 구성이 안되어 있다면 아래 링크 글을 참고하시기 바랍니다.

그럼 삼바로 접근을 시도해 볼까요?

오! 접속이 잘 됩니다. 외부에서도 집에 있는 리눅스 서버의 삼바 사용이 가능하군요. VPN를 사용하면 이렇게 유용하게 활용이 가능할꺼 같습니다.

'코드도사(codedosa.com)'에는 쿠팡파트너스 등의 제휴링크가 포함되어 있으며 수수료를 제공받을 수 있습니다.