- 설치는 간단
- 서버가 될 장비에서 키 생성
- Configuration - server.ovpn
- Configuration - client.ovpn
- Run
OpenVPN 서버가 방화벽 내부에 들어 있을 경우 UDP/1194 번을 열어 주어야 한다.
- server 측 추가적인 설정
- client 측 추가적인 설정
- 참고
- 서버가 될 장비에서 키 생성
- C:\Program Files\OpenVPN\easy-rsa\openssl.cnf.sample 을 복사해서 openssl.cnf 로 파일명을 바꾼다.
- C:\Program Files\OpenVPN\easy-rsa\vars.bat.sample 을 복사해서 vars.bat 로 파일명을 바꾼다. KEY_* 관련 변수를 설정한다.
- C:\Program Files\OpenVPN\sample-config\server.ovpn 을 복사해서 C:\Program Files\OpenVPN\config\server.ovpn 에 둔다. 클라이언트는 client.ovpn 파일을 사용한다.
- C:\Program Files\OpenVPN\easy-rsa> vars
C:\Program Files\OpenVPN\easy-rsa> clean-all
C:\Program Files\OpenVPN\easy-rsa> build-ca //keys 디렉토리 아래에 ca.crt 와 ca.key 생성된다.
C:\Program Files\OpenVPN\easy-rsa> build-key-server server //Common Name 을 물어 오면 server 를 입력한다. server.crt 와 server.key 가 생성된다.
C:\Program Files\OpenVPN\easy-rsa> build-dh //dh1024.pem 가 생성된다. - //클라이언트에서 사용할 열쇠들을 생성시켜야 하는데 이는 서버에서 (또는 ca.key 가 있는 서버에서) 만든다.혼선을 피하기 위해 Country Name 과 Common Name 을 제외하고는 동일한 이름으로 한다.
C:\Program Files\OpenVPN\easy-rsa> build-key openvpn1 //Common Name 은 openvpn1 을 입력한다. 각각 클라이언트마다 서로 다른 Common Name 을 주어야 한다.
- Configuration - server.ovpn
//../easy-rsa/keys/ca.crt 나 "C:\\Program Files\\OpenVPN\\easy-rsa\\keys\\ca.crt" 처럼 파일 위치만 정확하게 넣어주면 된다.
ca ca.crt //*.ovpn 파일과 같은 디렉토리에 있는 경우
cert server.crt
key server.key
...
dh "C:\\Program Files\\OpenVPN\\easy-rsa\\keys\\dh1024.pem"
ca ca.crt //*.ovpn 파일과 같은 디렉토리에 있는 경우
cert server.crt
key server.key
...
dh "C:\\Program Files\\OpenVPN\\easy-rsa\\keys\\dh1024.pem"
- Configuration - client.ovpn
remote 10.20.30.123 1194
...
ca ca.crt
cert openvpn1.crt
key openvpn1.key
...
ca ca.crt
cert openvpn1.crt
key openvpn1.key
- Run
OpenVPN 서버가 방화벽 내부에 들어 있을 경우 UDP/1194 번을 열어 주어야 한다.
Mon Jul 20 07:32:41 2009 11.22.33.44:16959 Control Channel: TLSv1, cipher TLSv1/SSLv3 DHE-RSA-AES256-SHA, 1024 bit RSA
Mon Jul 20 07:32:41 2009 11.22.33.44:16959 [xxxx_test] Peer Connection Initiated with 11.22.33.44:16959
Mon Jul 20 07:32:41 2009 xxxx_test/11.22.33.44:16959 MULTI: Learn: 10.8.0.10 -> xxxx_test/11.22.33.44:16959
Mon Jul 20 07:32:41 2009 xxxx_test/11.22.33.44:16959 MULTI: primary virtual IP for xxxx_test/11.22.33.44:16959: 10.8.0.10
Mon Jul 20 07:32:42 2009 xxxx_test/11.22.33.44:16959 PUSH: Received control message: 'PUSH_REQUEST'
Mon Jul 20 07:32:42 2009 xxxx_test/11.22.33.44:16959 SENT CONTROL [xxxx_test]: 'PUSH_REPLY,route 10.8.0.1,ping 10,ping-restart 120,ifconfig 10.8.0.10 10.8.0.9' (status=1)
Mon Jul 20 07:32:41 2009 11.22.33.44:16959 [xxxx_test] Peer Connection Initiated with 11.22.33.44:16959
Mon Jul 20 07:32:41 2009 xxxx_test/11.22.33.44:16959 MULTI: Learn: 10.8.0.10 -> xxxx_test/11.22.33.44:16959
Mon Jul 20 07:32:41 2009 xxxx_test/11.22.33.44:16959 MULTI: primary virtual IP for xxxx_test/11.22.33.44:16959: 10.8.0.10
Mon Jul 20 07:32:42 2009 xxxx_test/11.22.33.44:16959 PUSH: Received control message: 'PUSH_REQUEST'
Mon Jul 20 07:32:42 2009 xxxx_test/11.22.33.44:16959 SENT CONTROL [xxxx_test]: 'PUSH_REPLY,route 10.8.0.1,ping 10,ping-restart 120,ifconfig 10.8.0.10 10.8.0.9' (status=1)
- server 측 추가적인 설정
- client-to-client : 서버에 접속된 다른 클라이언트를 볼 수 있게 한다.
10.8.0.1 과 10.8.0.10 은 연결 가능, 10.8.0.1 과 10.8.0.12 은 연결 가능, 하지만 10.8.0.10 과 10.8.0.12 는 연결할 수 없다.
이 옵션을 사용하면 가능해진다. - duplicate-cn : 같은 키를 가진 클라이언트의 접속을 허용한다.
openvpn1 키를 가진 클라이언트가 다른 곳에서 접속하면 연결이 끊어진다. - server 항목은 잘 안됨(192.168.0.0 으로 routing 을 추가했는데 cpu 사용량이 100을 채우네.) hp 가 192.168.0.0 에 속해 있어서 그런지....
- client 측 추가적인 설정
- resolv-retry : infinite 로 설정되어 있으면 계속 접속 시도를 하므로 서버를 나중에 실행시켜도 접속된다.
- 참고
- OpenVPN GUI for Windows
- http://www.openvpn.net
- http://wiki.kldp.org/wiki.php/OpenVPN
- http://www.ionthenet.co.kr/newspaper/view.php?idx=11247&fhead_x=0&fhead_y=0
- OpenVPN설치기
- OpenVPN으로 제약없는 네트워크 사용을...
- OpenVPN 구현하기
Recent comment