Dostawca VPN NordVPN ogłosił otwarcie kodu źródłowego aplikacji klienckiej dla platformy Linux, biblioteki sieciowej Libtelio oraz biblioteki do organizacji wymiany plików Libdrop. Kod jest dostępny na licencji GPLv3. W trakcie rozwoju wykorzystano języki programowania Go, Rust, C oraz Python.
Klient Linuxa oferuje interfejs wiersza poleceń do zarządzania połączeniem z serwerami NordVPN, umożliwia wybór serwera z listy uwzględniającej pożądane lokalizacje, zmianę ustawień protokołu oraz włączenie trybu Kill Switch, który blokuje dostęp sieciowy w przypadku przerwania połączenia z VPN-serwerem. Klient wspiera protokoły NordLynx (oparty na WireGuard) oraz OpenVPN. Do zmiany ustawień zapory ogniowej używa się iptables, do routingu iproute, do tunelowania połączeń tuntap, a do określania nazw w DNS — systemd-resolved. Klient działa w dystrybucjach Ubuntu, Fedora, Manjaro, Debian, Arch, Kali, CentOS oraz Raspbian.
Biblioteka Libtelio zawiera typowe funkcje sieciowe i zapewnia wdrożenie wirtualnej sieci MeshNet, składającej się z systemów końcowych i wykorzystywanej do ich wzajemnej komunikacji. MeshNet pozwala na ustanowienie szyfrowanych tuneli pomiędzy urządzeniami i stworzenie na ich podstawie podobieństwa do oddzielnej sieci lokalnej. W odróżnieniu od VPN, połączenia w MeshNet są ustanawiane nie między urządzeniem a serwerem VPN, lecz między końcowymi urządzeniami, które również pełnią rolę węzłów do routingu ruchu.
Dla całej sieci MeshNet można zdefiniować wspólny serwer do interakcji ze światem zewnętrznym (na przykład, jeśli węzeł wychodzący znajduje się u użytkownika w domu, to w jakichkolwiek podróżach i miejscach, z których użytkownik łączy się z siecią za pośrednictwem urządzeń podłączonych do MeshNet, aktywność sieciowa będzie wyglądać tak, jakby użytkownik łączył się z domu adresy IP).
Do szyfrowania ruchu w MeshNet można wykorzystać różne implementacje Wireguard. Jako węzły wychodzące mogą być wykorzystywane zarówno serwery VPN, jak i węzły użytkowników w ramach MeshNet. Aby ograniczyć ruch wewnątrz sieci, dostępny jest konfigurowalny filtr pakietów, a do określania hostów — usługa oparta na DNS. Opublikowana biblioteka umożliwia organizację własnych sieci MeshNet w swoich aplikacjach.
Biblioteka Libdrop oferuje funkcje umożliwiające bezpieczną wymianę plików między urządzeniami użytkownika. Obsługiwane jest bezpośrednie wysyłanie i odbieranie plików przez MeshNet lub globalną sieć, bez angażowania zewnętrznych serwerów.
Źródło: opennet.ru
