Nebula 1.5发布,创建P2P覆盖网络的系统

Nebula 1.5项目已经发布,提供了构建安全覆盖网络的工具。 该网络可以联合由不同提供商托管的几个到数万个地理上分散的主机,在全球网络之上形成一个单独的隔离网络。 该项目是用 Go 编写的,并根据 MIT 许可证分发。 该项目由 Slack 创建,该公司开发了同名的企业通讯工具。 支持 Linux、FreeBSD、macOS、Windows、iOS 和 Android。

Nebula网络上的节点以P2P模式直接相互通信——当节点之间需要传输数据时,动态创建直接VPN连接。 网络上每台主机的身份均由数字证书确认,连接到网络需要身份验证 - 每个用户都会收到一个证书,确认 Nebula 网络中的 IP 地址、主机组中的名称和成员身份。 证书由内部证书颁发机构签名,由网络创建者在其设施中部署,并用于证明有权连接到覆盖网络的主机的权限。

为了创建经过身份验证的安全通信通道,Nebula 使用自己的基于 Diffie-Hellman 密钥交换协议和 AES-256-GCM 密码的隧道协议。 该协议实现基于 Noise 框架提供的现成且经过验证的原语,该框架也用于 WireGuard、Lightning 和 I2P 等项目。 据说该项目已经接受了独立的安全审核。

为了发现其他节点并协调与网络的连接,创建了特殊的“灯塔”节点,其全局 IP 地址是固定的并为网络参与者所知。 参与节点不绑定到外部IP地址;它们通过证书来标识。 主机所有者无法自行更改签名证书,并且与传统 IP 网络不同,主机所有者无法仅通过更改 IP 地址来冒充另一台主机。 创建隧道后,主机的身份将使用单独的私钥进行验证。

创建的网络分配一定范围的内网地址(例如192.168.10.0/24),并将内网地址与主机证书关联。 例如,可以从覆盖网络中的参与者形成组,以形成单独的服务器和工作站,对它们应用单独的流量过滤规则。 提供了各种机制来绕过地址转换器 (NAT) 和防火墙。 可以通过来自不属于星云网络的第三方主机的覆盖网络流量来组织路由(不安全路由)。

它支持创建防火墙来隔离星云覆盖网络中节点之间的访问和过滤流量。 带有标签绑定的 ACL 用于过滤。 网络上的每个主机都可以根据主机、组、协议和网络端口定义自己的过滤规则。 在这种情况下,主机不是通过 IP 地址过滤,而是通过数字签名的主机标识符过滤,在不损害协调网络的认证中心的情况下无法伪造主机标识符。

在新版本中:

  • 在 print-cert 命令中添加了“-raw”标志以打印证书的 PEM 表示形式。
  • 添加了对新 Linux 架构 riscv64 的支持。
  • 添加了实验性的remote_allow_ranges设置,以将允许的主机列表绑定到特定子网。
  • 添加了 pki.disconnect_invalid 选项以在信任终止或证书生存期到期后重置隧道。
  • 添加了 unsafe_routes 选项。 .metric 为特定外部路由分配权重。

来源: opennet.ru

添加评论