집에서 서버와 연결해서 사용하던 환경을 외부에서도 동일하게 이용하고 싶어서 VPN을 연결을 시도했다. PPTP로 VPN을 연결하는 구성을 했지만 일부 환경에서는 PPTP 패킷이 차단당해서 사용할 수 없었다. 그래서 이번에는 OpenVPN을 이용한 SSL VPN 연결을 시도하게 되었다.
테스트 환경
- 클라이언트 : Mac OS X 10.6.5
- 서버 : Linux CentOS 5.5
서버 설치하기
OpenVPN 버전은 2가지 있다. 동시 사용자가 2명까지는 무료 사용이 가능하기 때문에 상용 버전으로 일단 설치한다. 동시 사용자가 많은 경우에는 라이센스를 구입하거나 오픈 소스(커뮤니티) 버전을 이용하면 된다. 모두 같은 사이트에서 제공하고 있다.
설치는 간단하다.
1. 자신의 리눅스 버전에 맞는 access server RPM을 받아서 설치한다. 여기서는 CentOS를 사용하고 있어서 다음의 버전을 설치했다.
$ rpm -ivh openvpn-as-1.5.6-CentOS5.i386.rpm
2. 초기 설정을 위한 명령을 수행한다. 여러 가지 질문에 대해 읽고 답을 하면 끝난다. 대부분은 디폴트값을 사용하면 된다.
$/usr/local/openvpn_as/bin/ovpn-init
3. Admin Web Interface에 브라우저를 이용해서 접속한다. 접속 주소는 다음과 같다.
http://<AS 서버 IP 주소>:943/admin
클라이언트 설치하기
OS 별로 여러 클라이언트가 있다. Mac의 경우에는 tunnelblick이라는 오픈 소스 클라이언트가 있다. 설치를 한 후에 설정 디렉토리(/Users/<사용자계정>/Library/Application Support/Tunnelblick/Configurations)에 http://<AS 서버 IP 주소>:943 (/admin은 빼고) 접속해서 다운받은 client.ovpn 파일을 가져다 놓는다.
만일 서버가 공유기 등의 내부에 위치한 경우에는 client.vpn의 서버에 할당된 공인 IP로 아래의 설정 부분을 변경해야 한다.
remote <AS 서버 공인 IP> 1194 udpremote <AS 서버 공인 IP> 1194 tcp
Tunnelblick 실행하기
Internet:Destination Gateway Flags Refs Use Netif Expire0/1 10.10.0.129 UGSc 7 0 tun010.10.0.128/25 10.10.0.130 UGSc 12 0 tun010.10.0.130 10.10.0.130 UH 3 0 tun0<AS 서버 주소>/32 192.168.1.254 UGSc 1 0 en1128.0/1 10.10.0.129 UGSc 4 0 tun0