don't stop believing

openVPN에 Client 계정 추가하기 본문

Tools/OpenVPN

openVPN에 Client 계정 추가하기

Tongchun 2018. 8. 31. 15:24

openVPN server를 만들었으니 Client를 추가해 보겠습니다.

server 구성은 아래와 같이 진행되었습니다.

openVPN 설치 (on Ubuntu 18.04)


openVPN 서버에 ssh로 접근합니다.

$ ssh ngle@192.168.0.185


EasyRSA 폴더로 이동해 key 파일과 certificate request 파일을 만들어 줍니다.

계정명은 testNgle로 하겠습니다.

$ cd ~/EasyRSA-3.0.4/
$ ./easyrsa gen-req testNgle nopass

Note: using Easy-RSA configuration from: ./vars
Generating a 2048 bit RSA private key
........................................+++
...+++
writing new private key to '/home/ngle/EasyRSA-3.0.4/pki/private/testNgle.key.ASkqsOWYGM'
-----
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.
-----
Common Name (eg: your user, host, or server name) [testNgle]:

Keypair and certificate request completed. Your files are:
req: /home/ngle/EasyRSA-3.0.4/pki/reqs/testNgle.req
key: /home/ngle/EasyRSA-3.0.4/pki/private/testNgle.key

Common Name을 묻는 메시지가 나오면 엔터를 쳐 지정한 testNgle로 해줍니다.

req 파일과 key 파일이 생성되었습니다.


이제 key 파일로 인증서를 만들어 줍니다.

$ ./easyrsa sign-req client testNgle

Note: using Easy-RSA configuration from: ./vars


You are about to sign the following certificate.
Please check over the details shown below for accuracy. Note that this request
has not been cryptographically verified. Please be sure it came from a trusted
source or that you have verified the request checksum with the sender.

Request subject, to be signed as a client certificate for 3650 days:

subject=
    commonName                = testNgle


Type the word 'yes' to continue, or any other input to abort.
  Confirm request details: yes
Using configuration from ./openssl-easyrsa.cnf
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
commonName            :ASN.1 12:'testNgle'
Certificate is to be certified until Aug 28 06:09:20 2028 GMT (3650 days)

Write out database with 1 new entries
Data Base Updated

Certificate created at: /home/ngle/EasyRSA-3.0.4/pki/issued/testNgle.crt

중간에 Confirm request details: 메시지가 나오면 yes를 입력합니다.


만들어진 key 파일과 crt 파일을 client-configs/keys 로 복사합니다.

$ sudo cp pki/private/testNgle.key ~/client-configs/keys/
$ sudo cp pki/issued/testNgle.crt ~/client-configs/keys/

복사가 잘 되었는지 확인합니다.

$ ll ~/client-configs/keys/
total 40
drwx------ 2 ngle ngle 4096  8월 31 15:13 ./
drwx------ 4 ngle ngle 4096  8월 30 18:19 ../
-rw------- 1 root root 1172  8월 30 13:21 ca.crt
-rw------- 1 ngle ngle  636  8월 30 13:19 ta.key
-rw------- 1 root root 4438  8월 31 15:13 testNgle.crt
-rw------- 1 ngle ngle 1704  8월 31 14:57 testNgle.key
-rw------- 1 ngle ngle 4438  8월 30 13:15 tongchun.crt
-rw------- 1 ngle ngle 1704  8월 30 13:05 tongchun.key

이제 make_config.sh을 실행해 ovpn 파일을 만들어 줍니다.

$ cd ~/client-configs
$ sudo ./make_config.sh testNgle

생성된 ovpn 파일은 client-configs/files 안에 있습니다.

$ ll ~/client-configs/files/
total 32
drwxrwxr-x 2 ngle ngle  4096  8월 31 15:16 ./
drwx------ 4 ngle ngle  4096  8월 30 18:19 ../
-rw-r--r-- 1 root root 11728  8월 31 15:16 testNgle.ovpn
-rw-r--r-- 1 root root 11728  8월 30 18:26 tongchun.ovpn

ssh를 종료하고 sftp로 ovpn 파일을 가져옵니다.

$ sftp ngle@192.168.0.185:client-configs/files/testNgle.ovpn ~/Downloads/

이걸 한번에 하도록 스크립트로 만드는걸 고민해 봐야겠습니다.


여기까지 openVPN client 추가였습니다.

Comments