Skip to main content

A CLI tool for automating the importing, securing and usage of NordVPN OpenVPN servers through NetworkManager.

Project description

Build Status

This tool removes the need for manually handling OpenVPN configurations from NordVPN. It will synchronise the best servers from chosen countries into the NetworkManager VPN list. A synchronised VPN can then be chosen to auto-connect to, whenever NetworkManager brings an network connection up.

More documentation will be available when nordnm gets to stable releases.

Warning: This tool is still highly under development. I take no responsibility for any unforseen problems it may cause.

Features:

  • Uses the latest NordVPN OpenVPN configuration files.

  • Imports the ‘best’ server of each available type (country, category, protocol), based on latency and server load.

  • Provides humanly readable connection names, so you can easily tell what each option offers.

  • Provides settings for whitelisting or blacklisting certain countries from being synchronised.

  • Automatically adds user credentials to the imported configurations.

  • Tunnels DNS requests through the VPN, to prevent DNS leaks.

  • Disables IPv6 by default, to avoid IPv6 leaks.

  • Sets the auto connect server of your choice for all NetworkManager connections, instead of per connection. (optional)

  • Sets a network kill-switch, to disable the network interface being used, if the active VPN disconnects. (optional)

1. Requirements

Debian/Ubuntu

sudo apt update && sudo apt install network-manager openvpn network-manager-openvpn-gnome

Arch

Note: nordnm is now available through AUR. If you want to install via AUR, then skip to 2.2 AUR.

sudo pacman -S --needed networkmanager openvpn networkmanager-openvpn

2. Installation

2.1 PIP

Mote: This tool requires Python 3.5 or later. (May change in the future)

If your default Python version is 2.x, you will need to use pip3 below

System Install

sudo -H pip install nordnm

User Install

pip install --user nordnm

2.2 AUR

https://aur.archlinux.org/packages/nordnm/

3. Usage

Note: Many of the commands below can be chained into one line. A recommended example of this is to synchronise, update configuration files and set any auto-connect/kill-switch at the same time.

For example:

sudo nordnm s -uka nl normal tcp
usage: nordnm [-h] [-k] [-a [COUNTRY_CODE] [VPN_CATEGORY] [PROTOCOL]]  ...

optional arguments:
  -h, --help            show this help message and exit
  -k, --kill-switch     Sets a network kill-switch, to disable the active
                        network interface when an active VPN connection
                        disconnects.
  -a [COUNTRY_CODE] [VPN_CATEGORY] [PROTOCOL], --auto-connect [COUNTRY_CODE] [VPN_CATEGORY] [PROTOCOL]
                        Configure NetworkManager to auto-connect to the chosen
                        server type. Takes country code, category and
                        protocol.

commands:
                        Each command has its own help page, which can be
                        accessed via nordnm <COMMAND> --help
    remove (r)          Remove either active connections, auto-connect, kill-
                        switch, data or all.
    update (u)          Update a specified setting.
    list (l)            List the specified information.
    sync (s)            Synchronise the optimal servers (based on load and
                        latency) to NetworkManager.

Suggestions/Bugs

If you have any feature suggestions or find an interesting bug, please let me know. More intuitive options and fixes will be coming in the future.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nordnm-0.1.0.tar.gz (29.4 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page