Skip to content

Wireguard VPN is an ultra-light implementation of a simplified configuration service for Wireguard deployments, designed for use with Linux clients.

License

Notifications You must be signed in to change notification settings

Cyber-Mint/wg-vpn

Repository files navigation

CircleCI

Wireguard VPN

Wireguard VPN (wg-vpn) is an ultra-light implementation of a simplified configuration service for Wireguard deployments, designed for use with Linux clients.

Overview

wg-vpn makes use of Wireguard, which is a lightweight, fast, secure, and relatively new Virtual Private Network (VPN), that supports IPv4 and IPv6 connections. The encryption in Wireguard works by utilizing public and private keys to establish an encrypted "tunnel".

References: Digital-Ocean Wireguard tutorial


Administrator Documentation

The Wireguard VPN service is deployable by an administrator to any VM cloud instance using an Ansible playbook. It serves as a great companion to the wg-quick script and wg VPN.

Deployment Topology

The following diagram illustrates the deployment topology for wg-vpn. wg-vpn

Please refer to the technical documentation for how to deploy the wg-vpn server to production or to a local VM for testing.

Client Documentation

The Wireguard VPN service allows users (also known as peers) to self-register and configure their client instances to make use of the wg-vpn virtual private network.

Setup Procedure for Clients

  • Users self-register by visiting vpn.my.domain. The user will presented with the following screen.

vpn-my.domain

  • The Administrator would have provided the User with a TOKEN which then is pasted into the landing page and GENERATE will generate a one line script like the one below for the user to copy and execute on their local PC.
curl -sSL -H "Authorization: Bearer TOKEN" https://vpn.my.domain/register -o wg-vpn-installer.sh && bash wg-vpn-installer.sh
  • This will install and tether wg-vpn to the server vpn.my.domain.

The installation includes the necessary dependencies, wg and wg-quick, and configures the ~/.wireguard/wg0.conf file.


After executing the script, users can see the capabilities of the application by executing wg-vpn --help.


Usage wg-vpn [COMMAND].. [OPTION]
   wg-vpn is a WireGuard wrapper to easily run a peer with a wg-vpn server

  [COMMAND]:
    up,UP           bring the peer VPN connection up
    down,DOWN       bring the peer VPN connection down
    uninstall       uninstall wg-vpn

  [OPTION]:
    -q, --quiet     produces no terminal output,
                    except setting bash return value \$? = 1 if failures found.
        --version   display the version and exit
        --help      display this help and exit


  EXAMPLE(s):
      wg-vpn up -q
      wg-vpn down
      wg-vpn status

Uninstalling

To remove the client installation simply execute wg-vpn uninstall which will remove the application completely and the local user specific wg0.conf file.


Copyright © 2023, Cyber-Mint (Pty) Ltd
Supplied under MIT License

About

Wireguard VPN is an ultra-light implementation of a simplified configuration service for Wireguard deployments, designed for use with Linux clients.

Resources

License

Stars

Watchers

Forks

Packages

No packages published