O provedor de VPN NordVPN anunciou a abertura do código-fonte do cliente para a plataforma Linux, da biblioteca de rede Libtelio e da biblioteca para troca de arquivos Libdrop. O código é disponibilizado sob a licença GPLv3. As linguagens de programação utilizadas no desenvolvimento foram Go, Rust, C e Python.
O cliente Linux oferece uma interface de linha de comando para gerenciar a conexão com os servidores NordVPN, permitindo escolher um servidor da lista com base na localização desejada, alterar as configurações do protocolo e ativar o modo Kill Switch, que bloqueia o acesso à rede em caso de desconexão do servidor. VPNO cliente suporta o uso dos protocolos NordLynx (baseado em WireGuard) e OpenVPN. Para modificar as configurações do firewall, utiliza-se iptables; para roteamento, iproute; para tunelamento das conexões, tuntap; e para a resolução de nomes em DNS, systemd-resolved. É compatível com distribuições como Ubuntu, Fedora, Manjaro, Debian, Arch, Kali, CentOS e Raspbian.
A biblioteca Libtelio inclui funções de rede padrão e fornece uma implementação de uma rede virtual MeshNet, formada a partir de sistemas de usuários e utilizada para comunicação entre eles. O MeshNet permite estabelecer túneis criptografados entre dispositivos e criar, com base nisso, uma rede local separada. Ao contrário da VPN, as conexões no MeshNet são estabelecidas não entre o dispositivo e o servidor VPN, mas entre dispositivos finais que também atuam como nós para roteamento de tráfego.
Para toda a rede MeshNet, é possível definir um servidor comum para interação com o mundo externo (por exemplo, se o nó de saída estiver localizado na casa do usuário, independentemente de onde o usuário se conecte à rede a partir de dispositivos conectados ao MeshNet, a atividade da rede parecerá como se o usuário estivesse se conectando de casa. endereços IP).
Várias implementações do Wireguard podem ser usadas para criptografar o tráfego no MeshNet. Tanto servidores VPN quanto nós de usuários dentro do MeshNet podem atuar como nós de saída. Para limitar o tráfego dentro da rede, é fornecido um filtro de pacotes configurável, e para a resolução de hosts, um serviço baseado em DNS. A biblioteca publicada permite organizar o funcionamento de redes MeshNet personalizadas em suas aplicações.
A biblioteca Libdrop oferece funções para organizar a troca segura de arquivos entre os dispositivos do usuário. Suporte para envio e recebimento direto de arquivos através do MeshNet ou da rede global, sem a utilização de servidores externos.
Fonte: opennet.ru
