NordVPN open-sourced Linux client and libraries with MeshNet implementation

VPN provider NordVPN has announced the open source of a client for the Linux platform, the Libtelio network library and the Libdrop file sharing library. The code is open under the GPLv3 license. The programming languages ​​Go, Rust, C and Python were used in the development.

The Linux client provides a command line interface for managing connections to NordVPN servers, allowing you to select a server from the list based on the desired location, change protocol settings, and enable Kill Switch mode, which blocks network access if the connection to the VPN server is lost. The client supports NordLynx protocols (based on WireGuard) and OpenVPN. iptables is used to change firewall settings, iproute is used to route, tuntap is used to tunnel connections, and systemd-resolved is used to resolve DNS names. Supports distributions of Ubuntu, Fedora, Manjaro, Debian, Arch, Kali, CentOS and Rasbian.

The Libtelio library includes typical network functions and provides an implementation of a MeshNet virtual network formed from user systems and used to communicate with each other. MeshNet allows you to establish encrypted tunnels between devices and create a semblance of a separate local network based on them. Unlike VPN, connections in MeshNet are established not between the device and the VPN server, but between end devices, which also participate as nodes for traffic routing.

For the entire MeshNet network, you can define a common server for interacting with the outside world (for example, if the outgoing node is located at the user's home, then no matter what trips and places the user goes online from devices connected to MeshNet, for external services, network activity will look like this , as if the user was connecting from their home IP address).

Various implementations of Wireguard can be used to encrypt traffic in MeshNet. Both VPN servers and user nodes within the MeshNet can be used as exit nodes. A configurable packet filter is provided to restrict traffic within the network, and a DNS-based service is provided to determine hosts. The published library allows you to organize your own MeshNet networks in your applications.

The Libdrop library provides functions for organizing secure file exchange between user devices. It supports direct sending and receiving of files over MeshNet or the global network, without involving third-party servers.

Source: opennet.ru

Add a comment