본문

Windows에서 OpenVPN Server 구축하기

프로젝트를 위해 VPN 서비스를 사용해야 했는데, 디버깅을 좀 더 쉽게 하기 위해서 직접 OpenVPN 서버를 운영하기로 하였다. 공식 홈페이지에 있는 설치 방법(http://openvpn.net/index.php/open-source/documentation/howto.html)은 여러 운영체제에 대해 언급하느라 복잡하게 보여서, 이 페이지의 내용을 인용하여 '윈도우 OpenVPN 서버 구축'이라는 한정된 주제로 글을 작성하고자 한다. 참고로 좀 더 보기 편하게 작성된 글은 '윈도우에 OpenVPN 서버 구축하기'에서 찾아볼 수 있는데, 글과 흐름은 동일하지만 몇몇 디테일한 부분이 다르다. 하지만 이 글이 좀 더 필요한것들만 모아두었다고 말할 수 있다?


3월 7일 현재를 기점으로 64비트 윈도우를 위한 OpenVPN의 최신 버전은 openvpn-install-2.3.0-I004-x86_64.exe 이며, http://openvpn.net/index.php/open-source/downloads.html 에서 다운로드 받을 수 있다. 설치 과정에서는 OpenSSL 항목을 체크해야 편하다. build-*.bat 에서 openssl으로 인증서를를 생성하기 떄문이다


1. 배치파일 실행하기
설치하고 명령 프롬프트를 관리자 권한으로 실행하여 다음과 같이 입력한다. 
cd C:\Program Files\OpenVPN\easy-rsa
init-config
vars
clean-all
build-ca
build-key-server server
build-dh
 
init-config.bat에서는 vars.bat.sample을 vars.bat으로 복사해주는 역할을 한다. 이로서 생성된 vars.bat에서는 인증서를 만들기 위한 변수들이 저장되어 있는데 국가/메일/이름 등의 정보를 여기에 기입하면 추후 과정에서 편해지기 떄문에 수정하는 것이 좋다.(물론 이때 텍스트 편집기가 관리자 권한으로 실행되어야 한다) clean-all.bat 에서는 기존에 생성되었던 기록들을 제거하는 작업을 수행하고, build-ca.bat에서는 CA(Certificate Authority) 인증서를 생성한다. ([changeme]와 같이 괄호가 있는 부분-vars.bat에서의 값들-에서는 그냥 엔터를 치면 괄호 안의 값이 입력되고, 그렇지 않다면 원하는 값을 입력할 수 있다) 여기까지가 [그림 1]에서의 작업이다. 

여기에 이어서 [그림 2]에서의  build-key-server.bat server 명령은 위에서 생성된  CA 인증서를 기반으로 서버의 인증서를 만드는 것인데, 이때  인자를 server로 줘서 그런지, commonName또한 동일하게 server로 주어야 한다고 매뉴얼에 기입되어 있었다. 위의 CA 인증서 작업과 동일하게 진행되지만 마지막 두개의 질문에 Y를 입력해야 작업이 완료된다. build-dh.bat에서는 암호화 작업에서 사용되는 Diffie Hellman parameters가 생성되어 이로서 서버 준비를 위한 모든 작업이 완료된다.


[그림 1, 2] OpenVPN Server를 위한 배치파일 실행과정


2. 서버 환경 설정하기

이미 C:\Program Files\OpenVPN\sample-config 폴더에 각 역할에 맞는 설정파일들이 보관되어있다.(client.ovpn, sample.ovpn, server.ovpn) 여기에서 server.ovpn파일을 C:\Program Files\OpenVPN\config 으로 복사해 준다. 참고로 샘플 서버 환경 설정 파일에서는 가상 TUN 네트워크 장치로 VPN을 구성하고, UDP 1194 포트로 클라이언트의 접속을 받아들이며, 10.8.0.0/24의 환경으로 아이피를 제공한다. 'Creating configuration files for server and clients'에서 환경설정에 대한 더 상세한 사항을 참고할 수 있다. 


server.ovpn 파일을 복사하면, 1단계에서 만들어둔 인증서들을 복사할 차례이다. C:\Program Files\OpenVPN\easy-rsa\keys 내에 생성된 파일들을 ovpn과 동일한 폴더로 복사해준다. ca.cert, dh1024.pem, server.crt, server.key 4개의 파일을 복사하면 된다. 이제 시작 프로그램에 있는 OpenVPN GUI를 실행시켜 주면 되는데, 이떄 주의할 것은 관리자 권한으로 실행시켜 줘야 한다는 것이다. 그렇지 않으면 Route를 비롯한 여러 시스템 작업들이 수행이 되지 않기 때문이다.(혹은 위에서 작업했듯 config에 .ovpn파일을 넣어주면 자동으로 service로서 작동한다) 이에 관하여는 'More discussion on OpenVPN + Windows privilege issues.' 페이지를 참고할 수 있다.


아무튼 실행을 하고 [그림 4]와 같이 Route등의 작업이 성공적으로 이뤄지면 OpenVPN 서버 구축이 완료된 것이다.


[그림 3, 4] 복사해야 할 파일들과, OpenVPN GUI가 성공적으로 실행된 화면


댓글

Holic Spirit :: Tistory Edition

design by tokiidesu. powerd by kakao.