Skip to content

Instantly share code, notes, and snippets.

@kulikov
Last active April 26, 2018 08:14
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kulikov/ba231120d2ce066658e0a8e59fdb4f46 to your computer and use it in GitHub Desktop.
Save kulikov/ba231120d2ce066658e0a8e59fdb4f46 to your computer and use it in GitHub Desktop.
openvpn makefile
SHELL:=/bin/bash
vpn_address ?= $(shell ip route get 1 | awk '{print $$NF;exit}')
username ?= "vpn-user-$(shell hostname)"
default:
make install-docker
make init-config
make run-server
make new-client
# 0. install docker
install-docker:
sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
echo -n "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(shell lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/download_docker_com_linux_ubuntu.list
sudo apt-get update
sudo apt-get install docker-ce
# 1. generate config
init-config:
docker run --rm -ti -v ${PWD}/vpn/etc:/etc/openvpn kylemanna/openvpn ovpn_genconfig -u udp://${vpn_address}
docker run --rm -ti -v ${PWD}/vpn/etc:/etc/openvpn kylemanna/openvpn ovpn_initpki
# 2. run openvpn server
run-server:
docker run -d -v ${PWD}/vpn/etc:/etc/openvpn -p 1194:1194/udp --cap-add=NET_ADMIN --name=openvpn kylemanna/openvpn
# 3. create user cert/keys and config file
new-client:
docker run --rm -ti -v ${PWD}/vpn/etc:/etc/openvpn kylemanna/openvpn easyrsa build-client-full ${username} nopass
docker run --rm -ti -v ${PWD}/vpn/etc:/etc/openvpn kylemanna/openvpn ovpn_getclient ${username} > ${username}.ovpn
@kulikov
Copy link
Author

kulikov commented Apr 17, 2018

make install-docker
make init-config vpn_domain="67.42.41.87"
make run-server
make new-client username="my-vpn-user"

Use https://tunnelblick.net/ as OpenVPN client for Mac OS

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment