Ubuntu 에 OpenVPN 설치하기
우분투 16.04 LTS 버전을 기준으로, OpenVPN 설치하는 방법을 정리해본다.
필요한 패키지 설치
mkdir openvpn-ca cd openvpn-ca
export KEY_COUNTRY="US" export KEY_PROVINCE="CA" export KEY_CITY="SanFrancisco" export KEY_ORG="Fort-Funston" export KEY_EMAIL="me@myhost.mydomain" export KEY_OU="MyOrganizationalUnit" export KEY_NAME="server"
./clean-all
./build-dh
openvpn --genkey --secret keys/ta.key
cd ~/openvpn-ca/keys
sudo cp ca.crt server.crt server.key ta.key dh2048.pem /etc/openvpn
gunzip -c /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz | sudo tee /etc/openvpn/server.conf
* server.conf 파일을 변경하자. 마지막 두줄은 추가해야 한다.
* sudo vi /etc/openvpn/server.conf
<code>
proto tcp # udp 는 주석 처리
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 168.126.63.2"
push "dhcp-option DNS 8.8.8.8"
tls-auth ta.key 0
cipher AES-128-CBC
user nobody
group nogroup
key-direction 0
auth SHA256
sudo vi /etc/sysctl.conf net.ipv4.ip_forward=1 앞에 #이 붙어 있을텐데, #을 지우자. 저장하고 나와서 .. sudo sysctl -p sudo iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE
sudo systemctl start openvpn@server
sudo systemctl status openvpn@server
ip addr show tun0
cd openvpn-ca source vars (또는 source ./vars) ./build-key akpil akpil 대신 다른 이름을 써도 된다. mkkdir -p client-configs/files cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf ~/client-configs/base.conf vi ~/client-configs/base.conf 아래 세줄은 추가하여야 한다. remote 서버 ip 주소 또는 도메인 이름 1194 proto tcp # udp 는 주석 처리 user nobody # 주석 해제 group nogroup # 주석 해제 #ca ca.crt # 붙여서 주석처리 #cert client.crt # 붙여서 주석처리 #key client.key # 붙여서 주석처리 key-direction 1 cipher AES-128-CBC auth SHA256
vi ~/client-configs/make_config.sh
#!/bin/bash
# First argument: Client identifier
KEY_DIR=~/openvpn-ca/keys
OUTPUT_DIR=~/client-configs/files
BASE_CONFIG=~/client-configs/base.conf
cat ${BASE_CONFIG} \
<(echo -e '<ca>') \
${KEY_DIR}/ca.crt \
<(echo -e '</ca>\n<cert>') \
${KEY_DIR}/${1}.crt \
<(echo -e '</cert>\n<key>') \
${KEY_DIR}/${1}.key \
<(echo -e '</key>\n<tls-auth>') \
${KEY_DIR}/ta.key \
<(echo -e '</tls-auth>') \
> ${OUTPUT_DIR}/${1}.ovpn
chmod 700 ~/client-configs/make_config.sh ~/client-configs/make_config.sh akpil
이렇게 하면 akpil.ovpn 파일이 생성된다. 이 파일을 클라이언트 디바이스에 전송하여 적용시키면 된다.
2018/03/14 akpil