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