Dostawca VPN NordVPN ogłosił udostępnienie otwartego źródła klienta dla platformy Linux, biblioteki sieciowej Libtelio i biblioteki do udostępniania plików Libdrop. Kod jest otwarty na licencji GPLv3. Przy opracowaniu wykorzystano języki programowania Go, Rust, C i Python.
Klient Linux udostępnia interfejs wiersza poleceń do zarządzania połączeniami z serwerami NordVPN, umożliwia wybranie serwera z listy na podstawie żądanej lokalizacji, zmianę ustawień protokołu i włączenie trybu Kill Switch, który blokuje dostęp do sieci w przypadku połączenia z serwerem VPN zgubiony. Klient wspiera pracę z wykorzystaniem protokołów NordLynx (opartych na WireGuard) oraz OpenVPN. Do zmiany ustawień zapory używa się iptables, iproute do routingu, tuntap do tunelowania połączeń, a systemd-resolved służy do rozpoznawania nazw w DNS. Obsługuje dystrybucje takie jak Ubuntu, Fedora, Manjaro, Debian, Arch, Kali, CentOS i Rasbian.
Biblioteka Libtelio zawiera typowe funkcje sieciowe i zapewnia implementację sieci wirtualnej MeshNet, utworzonej z systemów użytkowników i służącej do wzajemnej komunikacji. MeshNet pozwala na ustanawianie szyfrowanych tuneli pomiędzy urządzeniami i tworzenie na ich podstawie czegoś w rodzaju osobnej sieci lokalnej. W przeciwieństwie do VPN, połączenia w MeshNet nie są nawiązywane pomiędzy urządzeniem a serwerem VPN, ale pomiędzy urządzeniami końcowymi, które również uczestniczą jako węzły do routingu ruchu.
Dla całej sieci MeshNet można zdefiniować wspólny serwer do interakcji ze światem zewnętrznym (przykładowo, jeśli węzeł wyjściowy znajduje się w domu użytkownika, to bez względu na wyjazdy i miejsca użytkownik uzyskuje dostęp do sieci z urządzeń podłączonych do MeshNet , w przypadku usług zewnętrznych aktywność sieciowa będzie wyglądać tak, jakby użytkownik łączył się z domowego adresu IP).
Do szyfrowania ruchu w sieci MeshNet można używać różnych implementacji Wireguard. Zarówno serwery VPN, jak i węzły użytkowników w MeshNet mogą być używane jako węzły wyjściowe. Dostępny jest niestandardowy filtr pakietów ograniczający ruch w sieci, a do określania hostów dostępna jest usługa oparta na systemie DNS. Opublikowana biblioteka pozwala na organizację działania własnych sieci MeshNet w Twoich aplikacjach.
Biblioteka Libdrop udostępnia funkcje umożliwiające organizację bezpiecznej wymiany plików pomiędzy urządzeniami użytkowników. Obsługiwane jest bezpośrednie wysyłanie i odbieranie plików przez MeshNet lub sieć globalną, bez udziału serwerów stron trzecich.
Źródło: opennet.ru