__This setup is working correctly on Ubuntu20-Server
__
Assumming All These Commands are ran by Root User
-
Git Clone Kylemanna/docker-openvpn
git clone https://github.com/kylemanna/docker-openvpn.git && cd docker-openvpn
-
Build OpenVPN docker image
docker build -t IMAGE_NAME .
-
Generate Config for OpenVPN
docker run -v $PWD/etc-openvpn:/etc/openvpn --rm IMAGE_NAME ovpn_genconfig -u udp://$(curl text.wtfismyip.com):3000
-
Initialize PKI (Initialise PKI)
docker run -v $PWD/etc-openvpn:/etc/openvpn --rm -it IMAGE_NAME ovpn_initpki
-
Generate a Strong Password When it prompt a password Enter step 5.a password.
65h%3$5^$$^#89
like this -
It will prompt for a name
you call (any)
-
Disable DNSStubListener
sed -r -i.orig 's/#?DNSStubListener=yes/DNSStubListener=no/g' /etc/systemd/resolved.conf
confirm DNSStubListener=no bynano /etc/systemd/resolved.conf
-
Replace original resolv.conf
sh -c 'rm /etc/resolv.conf && ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf'
-
Restart systemd-resolved
systemctl restart systemd-resolved
-
Ensure 53 is not used by Any Process
ss -tlnpw | grep 53
-
Create a docker network
docker network create --driver=bridge --subnet=172.20.0.0/24 --gateway=172.20.0.1 vpn-network
-
docker-compose up -d
-
docker exec -it openvpn ash
-
#apk add nano && nano /etc/openvpn/openvpn.conf
-
Comment out these lines
# push "dns-option DNS 8.8.8.8"
# push "dns-option DNS 8.8.4.4
-
Add these lines
push "dns-option DNS 172.20.0.2"
push "dns-option DNS 1.1.1.1
-
Generate a VPN profile (this will need step.5 password)
docker run -v $PWD/etc-openvpn:/etc/openvpn --rm -it laxzvpn easyrsa build-client-full minlaxz nopass
-
Generate ovpn file
docker run -v $PWD/etc-openvpn:/etc/openvpn --rm laxzvpn ovpn_getclient minlaxz > minlaxz.ovpn