El proveedor de VPN NordVPN ha anunciado la apertura del código fuente del cliente para la plataforma Linux, la biblioteca de red Libtelio y la biblioteca para la organización del intercambio de archivos Libdrop. El código está disponible bajo la licencia GPLv3. En el desarrollo se han utilizado los lenguajes de programación Go, Rust, C y Python.
El cliente de Linux proporciona una interfaz de línea de comandos para gestionar las conexiones a los servidores de NordVPN, permite seleccionar un servidor de la lista según la ubicación deseada, modificar la configuración del protocolo y habilitar el modo Kill Switch, que bloquea el acceso a la red en caso de interrupción de la conexión con el VPN-servidor. El cliente admite el uso de los protocolos NordLynx (basado en WireGuard) y OpenVPN. Para modificar la configuración del cortafuegos se utiliza iptables, para la asignación de rutas iproute, para el túnel de conexiones tuntap, y para la resolución de nombres en DNS — systemd-resolved. Es compatible con las distribuciones Ubuntu, Fedora, Manjaro, Debian, Arch, Kali, CentOS y Raspbian.
La biblioteca Libtelio incluye funciones de red estándar y proporciona una implementación de la red virtual MeshNet, formada por sistemas de usuarios y utilizada para su interconexión. MeshNet permite establecer túneles cifrados entre dispositivos y crear a partir de ellos una especie de red local separada. A diferencia de una VPN, las conexiones en MeshNet se establecen no entre un dispositivo y un servidor VPN, sino entre los dispositivos finales, que también actúan como nodos para enrutar el tráfico.
Para toda la red MeshNet se puede definir un servidor común para la interacción con el mundo exterior (por ejemplo, si el nodo de salida está ubicado en la casa del usuario, entonces no importa en qué viajes y lugares se conecte el usuario a la red desde los dispositivos conectados a MeshNet, la actividad de la red para los servicios externos parecerá como si el usuario se estuviera conectando desde su hogar. IP).
Para cifrar el tráfico en MeshNet se pueden utilizar diferentes implementaciones de Wireguard. Como nodos de salida se pueden usar tanto servidores VPN como nodos de usuario dentro de MeshNet. Para restringir el tráfico dentro de la red, se ofrece un filtro de paquetes configurable, y para la resolución de hosts, se utiliza un servicio basado en DNS. La biblioteca publicada permite organizar el funcionamiento de redes MeshNet en sus aplicaciones.
La biblioteca Libdrop proporciona funciones para organizar un intercambio seguro de archivos entre dispositivos del usuario. Se admite el envío y recepción directa de archivos a través de MeshNet o de Internet, sin necesidad de servidores externos.
Fuente: opennet.ru
