간편하고 빠르게 VPN이 필요한 경우가 있어서 OpenVPN을 사용하였습니다.
Self Signed Certificate부터...
인증서 발급 관련해서 좋은글.
https://www.lesstif.com/pages/viewpage.action?pageId=6979614
윈도우 OpenSSL 설치 방법
http://zetawiki.com/wiki/%EC%9C%88%EB%8F%84%EC%9A%B0_openssl_%EC%84%A4%EC%B9%98
1. OpenSSL을 설치합니다.
http://code.google.com/p/openssl-for-windows/downloads/list
그냥 다운받아서 압축풀면 됩니다.
(testca_openssl.conf와 server_openssl.conf은 압축파일을 사용해 주세요.)
* 참고
아래 openssl 명령은 OpenSSL bin디렉터리를 미리 PATH시스템 변수에 등록한 이후로 가정합니다.
PATH에 등록하지 않았다면 openssl을 openssl.exe의 경로를 모두 넣어주세요.
(e.g. C:\openssl\bin\openssl.exe)
2. CA인증서용 키파일을 생성합니다.
D:\TEST_CA> openssl genrsa -out testca.key 2048 WARNING: can't open config file: c:/usr/local/ssl/openssl.cnf Loading 'screen' into random state - done Generating RSA private key, 2048 bit long modulus ...........................+++ ............................+++ unable to write 'random state' e is 65537 (0x10001) |
3. CA인증서 발급요청파일을 생성합니다.
D:\TEST_CA> openssl req -new -key testca.key -out testca.csr -config testca_openssl.conf Loading 'screen' into random state - done You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [KR]: KR Organization Name (eg, company) [TEST CA]: TEST CA Common Name (eg, your name or your servers hostname) [Self Signed CA]: TEST CA |
4. CA인증서를 Self Sign으로 발급합니다.
D:\TEST_CA> openssl x509 -req -days 3650 -extensions v3_ca -set_serial 1 -in testca.csr -signkey testca.key -out testca.crt -extfile testca_openssl.conf Loading 'screen' into random state - done Signature ok subject=/C=KR/O=TEST CA/CN=TEST CA Getting Private key unable to write 'random state' |
5. 테스트 서버 인증서용 키파일을 생성합니다.
D:\TEST_CA> openssl genrsa -out server.key 2048 Loading 'screen' into random state - done Generating RSA private key, 2048 bit long modulus ...........................+++ ............................+++ unable to write 'random state' e is 65537 (0x10001) |
6. 테스트 서버 인증서 발급요청파일을 생성합니다.
D:\TEST_CA> openssl req -new -key server.key -out server.csr -config server_openssl.conf oading 'screen' into random state - done You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [KR]:KR Organization Name (eg, company) []:TEST Organizational Unit Name (eg, section) []:TEST Common Name (eg, your name or your servers hostname) []:123.123.123.123 (IP또는 도메인 입력) |
7. 테스트 서버 인증서를 발급합니다.
D:\TEST_CA> openssl x509 -req -days 1825 -extensions v3_user -in server.csr -CA testca.crt -CAcreateserial -CAkey testca.key -out server.crt -extfile server_openssl.conf Loading 'screen' into random state - done Signature ok subject=/C=KR/O=TEST/OU=TEST/CN=123.123.123.123 Getting CA Private Key unable to write 'random state' |
자! 몇차례 명령을 거쳐 드디어 인증서가 만들어 졌군요...
(이렇게 만든 인증서를 실제 서비스에 사용하시면 안됩니다.
클라이언트쪽에는 지금 만든 CA인증서가 없기 때문에 인증서를 검증 할 수 없어 보안 오류를 뱉습니다.
실제 서비스에 이용하려면 공인된 CA 업체에서 인증서를 발급받아야 합니다.)
우리는 OpenVPN 파일 자체에 CA인증서를 넣을 것이므로 상관 없습니다.
8. OpenVPN을 다운받습니다.
Server/Client 동일합니다.
https://openvpn.net/index.php/download/community-downloads.html
설치 디렉터리는 기본 설치시 C:\Program Files\OpenVPN 이 됩니다.
이 안에 서버에는 압축파일에 있는 server.ovpn을, 클라이언트에는 client.ovpn을 사용할 겁니다.
일단... dh(Diffie hellman parameter)파일을 생성해야 합니다.
> openssl dhparam -out dh2048.pem 2048 ...... |
이 명령을 치면 dh파일(dh2048.pem)파일이 생성되는데
컴퓨터 성능과 운좋으면 수십 초, 아니면 수 분이 걸릴 수 있습니다.
server.ovpn / client.ovpn동일하게 <ca>와 </ca>안에 위에서 만든 testca.crt 의 내용을 넣습니다.
(메모장으로 열면 됩니다.)
client.ovpn에서 remote에는
remote (서버IP또는도메인) (서버포트)
이렇게 수정하고
server.ovpn에서 <cert>와 </cert>사이, 그리고 <key>와 </key>사이에 server.crt와 server.key파일의 내용을 각각 넣습니다.
그리고 server.ovpn에
auth-user-pass-verify "C:\\Program Files\\OpenVPN\\config\\auth.exe" via-env
이런 내용이 있는데 C:\\Program Files\\OpenVPN\\config\\auth.exe 는 아이디와 비밀번호를 인증하는
프로그램의 경로입니다.
auth.exe도 압축파일에 포함되어 있으며 c로 작성된 소스도 포함되어 있습니다.
아이디 비밀번호 정보는
C:\openvpn_test_auth.txt 에 한줄씩 username:password 포멧으로 입력하시면 됩니다.
이제 server.ovpn또는 client.ovpn을 C:\Program Files\OpenVPN\config\ 에 넣습니다.
바탕화면에서 "OpenVPN GUI"을 우클릭->"관리자 권한으로 실행" 합니다.
(호환성 탭에서 '관리자 권한으로 실행'을 체크해놓으면 편합니다.)
그리고
사용하시면 됩니다!
(방화벽 설정은 스스로 필요한 경우 사용하세요~)
'홍보,좋은팁,등등' 카테고리의 다른 글
동성애 조장 반대합니다! (서명운동) (0) | 2015.11.22 |
---|---|
이단 사이비, 신천지를 파헤치다 어플 (0) | 2015.07.31 |
771소켓 CPU을 775보드에서 사용하기. (0) | 2015.07.31 |
학생을 위한 착한 Microsoft, DreamSpark! (0) | 2015.07.31 |
댓글