NordVPN открыл код Linux-клиента и библиотек с реализацией MeshNet

VPN-провайдер NordVPN
объявил об открытии исходных текстов клиента для платформы Linux, сетевой библиотеки Libtelio и библиотеки для организации обмена файлами Libdrop. Код открыт под лицензией GPLv3. При разработке использованы языки программирования Go, Rust, C и Python.

Linux-клиент предоставляет интерфейс командной строки для управления подключением к серверам NordVPN, позволяет выбрать сервер из списка с учётом желаемого местоположения, изменить настройки протокола и включить режим Kill Switch, который блокирует сетевой доступ в случае обрыва соединения с VPN-сервером. Клиент поддерживает работу с использованием протоколов NordLynx (на базе WireGuard) и OpenVPN. Для изменения настроек межсетевого экрана используется iptables, для маршрутизации iproute, для туннелирования соединений tuntap, а для определения имён в DNS — systemd-resolved. Поддерживается работа в дистрибутивах Ubuntu, Fedora, Manjaro, Debian, Arch, Kali, CentOS и Rasbian.

Библиотека Libtelio включает типовые сетевые функции и предоставляет реализацию виртуальной сети MeshNet, образуемой из систем пользователя и применяемой для их связи между собой. Meshnet позволяет установить шифрованные туннели между устройствами и создать ни их основе подобие отдельной локальной сети. В отличие от VPN соединения в Meshnet устанавливаются не между устройством и VPN-сервером, а между конечными устройствами, которые также участвуют в качестве узлов для маршрутизации трафика.

Для всей сети MeshNet можно определить общий сервер для взаимодействия с внешним миром (например, если выходящий узел размещён у пользователя дома, то в каких бы поездках и местах пользователь не выходил в сеть с подключённых к MeshNet устройств, для внешних сервисов сетевая активность будет выглядеть так, как если бы пользователь подключался с домашнего IP-адреса).

Для шифрования трафика в MeshNet могут использоваться различные реализации Wireguard. В качестве выходных узлов могут использоваться как серверы VPN, так и пользовательские узлы внутри MeshNet. Для ограничения трафика внутри сети предоставляется настраиваемый пакетный фильтр, а для определения хостов — сервис на основе DNS. Опубликованная библиотека позволяет организовать работу собственных сетей MeshNet в свои приложениях.

Библиотека Libdrop предоставляет функции для организации защищённого обмена файлами между устройствами пользователя. Поддерживается прямая отправка и приём файлов поверх MeshNet или глобальной сети, без привлечения сторонних серверов.

Источник: http://www.opennet.ru/opennews/art.shtml?num=58802