GithubHelp home page GithubHelp logo

jackdek11 / wg-vpn Goto Github PK

View Code? Open in Web Editor NEW

This project forked from cyber-mint/wg-vpn

0.0 0.0 0.0 971 KB

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

License: MIT License

Shell 21.42% Python 43.36% CSS 9.57% HTML 14.49% Dockerfile 1.51% Jinja 9.66%

wg-vpn's Introduction

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

wg-vpn's People

Contributors

jackdek11 avatar bank-builder avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.