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