[Linux/CentOS] OpenVPN을 이용하여, VPN을 구축 해보자.

vpn_logo

 

집에 있는 서버 PC를 업그레이드했다.
정확히는 더 좋은 사양의 PC를 하나 둔 것이고,
기존 서버 PC는 홈 서버로서 세컨드로 두고 있다.

문제는 인터넷 회선은 하나인데 두 개를 같이 연결하려는 것!
메인 PC는 랜이 꽂혀있고, 세컨드와 메인은 크로스 케이블로 연결하여 내부 아이피로 잡아 둔 상태다.

문제는 외부에서 세컨드 PC에 접속하는 것인데…
아파치는 프락시를 이용하여 넘겨주면 되지만 기타 서비스는 그러한 방식들이 어렵다.
그렇다고 포트를 이용해서 포워딩 하고 싶은 생각은 그다지 없고…

여하튼 현재 상황에서 PC를 원활하게 연동하는 것은 다소 무리가 있다.
직접 DNS 서버를 꾸리지 않는 이상은 말이다.

이번에 포스팅할 내용은 VPN에 대한 것이다.
VPN으로 네트워크에 접속하여 내부 IP로서 PC들을 제어할 수 있도록 할 것이다.
먼저 VPN을 얘기하자면 복잡하게 얘기할 것 없이, 네이버의 용어 사전을 인용하여


VPN (virtual private network : 가상 사설망)
인터넷망과 같은 공중망을 사설망처럼 이용해 회선 비용을 크게 절감할 수 있는 기업통신 서비스를 말한다.
이런 느낌인데… 음.. 개념은 어렵지 않으니 쉽게 이해할 수 있을 것이다.

이 글을 본 사람은 어차피 대부분 알고 접근한 것일 테니, 본론으로 들어와 본격적인 설치를 진행하겠다.
참고로 운영체제 환경은 Centos7이다.
타 버전에선 확인해보지 못했다.

 

먼저 repository를 추가한다.

 

이후 openvpn과 easy-rsa를 설치할것이다.

 

설치가 끝나면 다음으로 할 것은 기본적인 openvpn 세팅이다.

상단의 내용에 보면 DNS 부분을 작성하는 부분이 있는데, 이곳은 자신의 인터넷 통신사의 DNS를 집어넣으면 된다.
만약 자체적으로 DNS 서비스를 운영 중이라면 해당 주소를 넣으면 된다.
만약 그것도 다 모르겠다면 구글 DNS를 집어넣으면 된다.

KT olleh (올레; 구 QOOK(쿡)), KT DNS
기본 DNS 서버 주소 – 168.126.63.1
보조 DNS 서버 주소 – 168.126.63.2

SK Broadband (브로드밴드), SK DNS
기본 DNS 서버 주소 – 210.220.163.82
보조 DNS 서버 주소 – 219.250.36.130

LG U+(유플러스; 구 XPEED 파워콤), LG DNS
기본 DNS 서버 주소 – 164.124.107.9
보조 DNS 서버 주소 – 203.248.242.2

Google Public (구글 퍼블릭)
기본 DNS 서버 주소 – 8.8.8.8
보조 DNS 서버 주소 – 8.8.4.4

 

여기까지 왔으면 기본적인 설치와 세팅은 끝이 났고,
가장 중요한 키를 제작하는 작업을 들어갈 것이다.

 

키 생성 이전에 사전 작업 준비를 한다.

 

그리고 보다 생성을 편하게 키에 관련된 속성값들을 미리 세팅해둔다.
하단의 EMAIL부분이나 ORG부분은 자신에게 맞춰 작성하도록 한다.

 

이제 키를 빌드 할 것이다.
먼저 준비 작업

 

키 생성작업 시작, 먼저 ca 빌드, 대략 엔터만 쳐주면 된다.

 

다음은 서버 키를 빌드 할 것인데, 여기서 중요한 것! 무의식적으로 엔터만 칠 수가 있는데,
끝에 나오는 질문에 대해 y를 쳐줘야 커밋이 된다.

 

생성한 키들을 토대로 dh를 빌드 한다.

 

생성한 키들을 openvpn 루트 디렉터리에 복사해두자.

 

다음은 클라이언트 연결을 위해 키를 생성하자.
클라이언트도 서버와 마찬가지로 마지막 질문에 y를 답해야  커밋 한다.

 

기본적인 키 생성은 모두 끝이 났다.
이제 외부에서 접속하여 진입할 시 특정 네트워크로 연동시킬 라우팅 작업을 들어갈 것이다.

여기서 두가지 선택지가 존재한다.

먼저 firewalld를 비활성화 시키고 iptables를 사용하는 방법

 

그리고 firewalld를 그대로 사용하는 방법

 

포워딩 세팅이 끝났으니 서비스를 재시작 하자

 

vpn 서비스 등록 및 서비스를 시작한다.

 

이것으로 설치가 모두 끝이 났다.

여기까지 완료한 후 openvpn 클라이언트를 이용해 접속하면 되는데

먼저 프로그램을 다운받고 설치 한다.
해당 프로그램은 https://openvpn.net 에 있으니 다운받으면 된다.
윈도우 버전은 내서버에 업로드 후 링크를 걸어 두겠다.
최신 버전을 원한다면 직접 홈페이지에 접속하여 받길 바란다.

XP (x86)    XP (x64)    Vista and later (x86)    Vista and later (x64)

 

설치가 끝났다 가정하고 진행 하겠다.
우선 서버로부터 클라이언트 키를 복사 해온다. 키들은 아래 위치에 있다.
sftp나 ftp 등등을 이용하여 복사 해오면 된다.
/etc/openvpn/easy-rsa/keys/ca.crt
/etc/openvpn/easy-rsa/keys/client.crt
/etc/openvpn/easy-rsa/keys/client.key

 

그리고 client.ovpn을 생성한다.
이는 서버로 접속하는데 사용되는 세팅값들이다.
메모장등을 이용하여 작성하면 된다.

 

이후 client.ovpn 파일과 키 파일들을 openvpn 설정 디렉토리에 넣어 둘 것이다.
해당 폴더는 아래와 같다.
Windows :  C:\Program Files\OpenVPN\config
MacOS :  ~/Library/Application Support/Tunnelblick/Configurations
Linux :  openvpn –config ~/path/to/client.ovpn (client.ovpn 경로)

이후 클라이언트를 실행하면 된다.
참고로 윈도우 비스타 이상에서는 마우스 우측버튼을 클릭하여 관리자모드로 실행하여야 한다.

 

위 작업들이 끝났으니 한번 접속 해보자

vpn
관리자 모드 실행

 

vpn_2
더블클릭 혹은 우측 마우스를 눌러 Connect 시도

 

vpn_3
로그 창과 함께 접속을 시도한다.

 

vpn_4
접속 완료 메시지가 뜨면 성공

 

vpn_5
한번 내부 PC로 접근을 해보자

 

vpn_6
접속이 완료 되었다.

 

글이 길어졌는데, 사실 설치나 세팅은 전혀 어려운 게 없다.
상황에 따라서 VPN은 상당히 유용한 기능으로서 많은 편리함을 준다.
비용적인 부분에서도 아주 경제적이라고 할 수 있다.
나와 같이 고민하고 있는 사람에게 도움이 되길 바라며 글을 써본다.

굳이 외부에서 접속할 필요가 없는 경우 사용하면 괜찮다.
키를 이용해서 접근한다는 것만으로도관리만 잘하면 보안적인 부분에서 뚜렷단 장점이 존재한다.

궁금한 점은 댓글 바랍니다.

Share : Share on Google+Tweet about this on TwitterShare on FacebookBuffer this pageFlattr the authorShare on LinkedInShare on RedditPin on PinterestShare on StumbleUponShare on TumblrDigg thisShare on VKShare on YummlyEmail this to someonePrint this page