Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save nullmastermind/ef5dfef6a2115b623f62924ccdceeb9c to your computer and use it in GitHub Desktop.
Save nullmastermind/ef5dfef6a2115b623f62924ccdceeb9c to your computer and use it in GitHub Desktop.

Revisions

  1. @neuni neuni created this gist Feb 28, 2017.
    67 changes: 67 additions & 0 deletions openvpn_on_google_cloud.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,67 @@
    # Install openVPN server on Google Cloud using Pritunl

    ## Purpose:

    Create a openVPN server on Google Cloud Platform to connect to your Google Cloud network using openVPN and/or to route your internet traffic through the VPN (Road Warrior Scenario)

    ## Create instance

    - Create new instance in default network
    - Chosse Ubuntu 16.04 LTS
    - Check "Allow HTTP traffic" and "Allow HTTPS traffic"
    - Add the tag "vpn-server"
    - Enable IP forwarding
    - Add static external IP

    ## Create DNS record

    - Create a dns-record for the new static IP

    ## Instance setup

    - Connect to your instance using SSH
    - `echo 'deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 multiverse' > /etc/apt/sources.list.d/mongodb-org-3.2.list`
    - `echo 'deb http://repo.pritunl.com/stable/apt xenial main' > /etc/apt/sources.list.d/pritunl.list`
    - `echo "[Unit]\nDescription=High-performance, schema-free document-oriented database\nAfter=network.target\n\n[Service]\nUser=mongodb\nExecStart=/usr/bin/mongod --config /etc/mongod.conf\n\n[Install]\nWantedBy=multi-user.target" > /lib/systemd/system/mongod.service`
    - `apt-key adv --keyserver hkp://keyserver.ubuntu.com --recv 42F3E95A2C4F08279C4960ADD68FA50FEA312927`
    - `apt-key adv --keyserver hkp://keyserver.ubuntu.com --recv 7568D9BB55FF9E5287D586017AE645C0CF8E292A`
    - `apt-get update`
    - `apt-get install pritunl mongodb-org`
    - `systemctl start pritunl mongod`
    - `systemctl enable pritunl mongod`
    - Create a setup key: `pritunl setup-key`

    ## Setup

    - Connect to https://YOUR_DOMAIN
    - Enter the setup-key
    - Update username and password
    - Check "Public Address"
    - Add YOUR_DOMAIN to "LetsEncrypt Domain"
    - Save

    ## Configuration

    ### Users

    - Open Users-Tab and add a new organization
    - Add a user to the new organization

    ### Server

    - Open Servers-Tab and select "Add server"
    - Choose a name for the new server and a Port (you can use the default port)
    - *Optional: Click on advanced and disable "Restrict routing" if you do not want to route all client-traffic through the VPN*
    - Select "Attach Organization" to add the server to your organization
    - *Optional: Add a route to your Google Cloud network(s)*
    - *Optional: Remove the default route "0.0.0.0/0" if you do not want to route all client-traffic through the VPN*
    - Select "Start Server"

    ### Download config

    - Download the openvpn-config using the download-icon next to the user on the Users-Tab

    ## Sources:

    - https://docs.pritunl.com/docs/installation
    - http://eugenioz.blogspot.de/2015/02/how-to-setup-vpn-on-google-cloud.html