在过去的一年里,托纳里的所有基础设施 - 我们的安装,我们的笔记本电脑,我们的工具 - 已经在一个Wineguard网络上运行,其中由一家被自以为是的网络经理组织我们' Ve写作被称为Innernet。今天我们'重新开始开放吧。
一开始,我们有一个共享手动编辑的Wioguard配置文件,每当我们需要向网络添加新对等方时,都会听到许多叹息。
在中世纪,有Bash脚本和一个奇怪的Vault后端,具有可疑的at最佳可维护性,可以在网络上获得新的机器和协调的东西,如IP分配。无论何时这些脆弱的脚本因任何原因都破坏了许多呻吟声。
最后,我们决定坐下来,叹了漫长的,希望最后一次,并写下无辜。
将InnetEt视为一个有条件的配置系统,位于Wioguard的顶部,带有一些额外的功能,可以让生活轻松,并且具有各种尺寸的网络友好:一个用于您的组织,一个用于您的项目,一个用于您的项目,为您的社交圈创建一个理想主义的替代互联网宇宙 - 你的想象力'极限。
便利典型的Wioguard用户想要:对等名称,自动更新对等列表,基于IP块的组,以及自动NAT Helepunicaling。
自由,开源,并成为自主主办的。我们认为它&#39对我们的基础设施不依赖于公司的生计,这是尤其重要的,这是一个没有控制的人。
下面,我们' ll解释它是如何工作的,然后构建一个快速示例网络。源是今天的源泉,所以纠纷们。我们在这一点上几乎是一个纯锈的房子,这个项目也不例外!
在InnerNet网络中,网络创建者或由具有管理功能的其他对等体添加或禁用对等体。对等体也总是只有一个分配的IP地址,并且该地址与它们永久关联。
通常,IP地址是一种可怕的想法,可以作为互联网上的识别形式。源IP当然很容易锻造,并且您在网络基础架构的各个部分上有更多的特权访问,您可以批评。
然而,在Wioguard世界中,来自Wioguard接口上的对等体的流量是加密认证的,可用于保证来自特定源IP的流量是未持久的。
长话短说:Innet网络上的同伴和#39; Innet网络的IP地址是永久性的,独特的,和不可变的。它是一个持久的标识符,可以是,例如,内部应用程序而不是基于用户名和密码的登录。
CIDRS是通过在IP地址结束时以I / N预混A / N来定义IP子网的简单方法,其中n表示前缀" ON"子网掩码中的位。 (例如。您的家庭LAN' S CIDR是192.168.0.0/24,它是192.168.0.0至192.168.0.255 - 0.0.0.0/0表示所有IPv4地址)
CIDR是"团体"在无辜。 CIDR可以将其他CIDR作为儿童或同龄人。每个对等体都属于CIDR。
CIDR表示法非常有用,因为它使得不会更容易创建Don' t具有重叠地址的子网组的树。
10.80。 0.0 / 15托纳10.80。 1.0 / 24基础设施10.80。 64.0 / 18人10.80。 64.0 / 23工程10.80。 66.0 / 23非工程10.80。 128.0 / 20工具10.81。 0.0 / 16安装10.81。 0.0 / 24梯级10.81。 1.0 / 24前沿10.81。 2.0 / 24火星
为什么这是强大的?嗯,如果您想要一个Web服务,该Web服务会如何访问组织中的每个人?使用您的Web服务器或OS和#39的防火墙允许从10.80.64.0/18到10.80.64.0/18的流量。想要只提供工程师访问行政面板?检查他们的IP是否在10.80.64.0/23范围内 - 如果是,他们是一个工程师。
默认情况下,对等体只能在其同一CIDR中看到其他对等体,以及在其&#34上的服务器对等体;基础设施" CIDR。
要允许一个CIDR中的对等体与另一个CIDR通信,您可以在CIDR之间创建关联。例如,我们将在&#34之间创建一个关联;工程" CIDR和"安装" CIDR为了使工程师能够到达所有托纳装置的能力。当然,我们可以使用等待者等工具以更粒度的方式控制安全性。
让我们说我们正在开始一家名为Kermpany的新公司。我们销售教育蛋糕,并在风险投资中筹集了10亿美元,现在是时候获得严重的。并且要认真,我们' ll需要一个无辜。
Innronet由两个二进制文件组成:Innernet-Server,协调服务器和Innernet(也是别名为Inn便于访问),客户端运行以访问网络的客户端。
首先,让我们在服务器上安装Innernet-Server我们坐在的服务器上,创建一个新网络,并启动它:
sudoinnet-server新网络名称:Kermpany网络CIDR:10.42.0.0/16外部端点:[ENTER]侦听端口:51820SUDO SystemCtl启用 - Now InnEnet-Server @ Kermpany
我们的网络CIDR是10.42.0.0/16,为我们提供64K的IP地址播放!它可能比当然大得多,也可以是IPv6。
sudoinnet-server add-cidr kermpany父母cidr:kermpany名称:人类CIDR:10.42.128.0/17创建CIDR"人类&#34 ;?是的
我们现在可以像面包师或老板一样在人类内部划分的子CIDR,但我们在这里赢得了'在Kermpany,每个人都是我们眼中的面包师老板。
sudo internet-server加载peer kermpany#cidr:人类(10.42.128.0/17)#ip:[输入]#名称:Ryo#make Ryo管理员?是#创建同伴Ryo?是的
然后我们可以使用像魔法虫洞等方便的工具向Ryo发送生成的Invite ryo.toml。邀请被使用它的第一个人兑换,因此请确保邀请仅发送给您打算加入网络的人!
现在,Ryo收到了他们的邀请,可以在他们的计算机上兑换它以加入网络:
同一CIDR内的所有同行都可以看到对方,Ryo可以制作另一个CIDR并将其与#34联系起来;人类"使它们彼此可见:
而且,网络出生。 Kermpany最终添加了更多的CIDR和同龄人,并成功地取得了巨大的成功,令世界上有史以来最受教育蛋糕。
作为一种安全思想的读者,你是这个点,内心尖叫和#34;那么那个服务器现在看起来像一个非常好的目标来妥协。"为了安抚你,亲爱的读者,我们决定尽量使服务器没有吸引人,而不会失去太简单。
服务器'唯一的互联网暴露的端口是其Wiguard聆听端口。 Juicy HTTP API仅在其内部IP地址上侦听。因此,攻击者需要1)通过损害现有对等体或2)找到与Wioguard本身的漏洞找到WIReguard网络的方法。
对等体缓存和PIN在看到其他对等体的公钥 - IP对,因为对等体的(IP,公钥)元组被定义为独特且无辜地不变。因此,如果一个受妥协的服务器交换了对等体的公共键,现有的同行赢得了' t善意。
新对等体通过邀请加入网络,该邀请包含与管理权限的对等体为它们生成的临时Wiguard键机。此键机使其能够与服务器API进行通信,然后需要邀请才能提交新的静态键盘' S公钥以兑换邀请。因此,服务器不知道对等体的任何私钥。
服务器仅示出给定对等体的给定对等体的连接信息,其在同一CIDR或相关CIDR中。因此,除非他们首先损害服务器或管理员,否则受损的对等体将无法攻击整个网络。
对我们来说,鉴于我们的特定威胁模型,鉴于我们的建筑选择,觉得是合理的。我们期待着听到别人如何打算使用Innernet以及我们如何使其适应更广泛的情况。
TailScale更加抛光,VC资助,并需要与您可以&#39的封闭来源的后端交谈。
目前,所有连接的对等体都在100.64.0.0/10范围内的某处分配了IP,ACL基于可分配的标签而不是IP范围,因此如果需要更精细的粒度需要烘焙到您的应用程序中的特殊意识访问控制或身份的意识。
它使用Wioguard作为其底层VPN协议,这很好,我们喜欢他们的可用性工作与他们' re也是如此 - 我们只是希望依赖于我们内部网络的外部专有服务。
星云是松弛的' s(开源!)回答这个问题,它使用了基于噪声的自定义隧道协议的用户空间客户端(哪个Wioguard也基于)。与Wioguard内核模块相比,实现用户空间中的隧道增加了速度和延迟。
星云' S ACL系统基于标签,类似于尾部。因此,它需要更多的防火墙/安全类型代码在其代码库和配置文件中存在,而不是利用OS和#39; S网络堆栈的现有控件。
谢谢阅读阅读! 我们希望您在这里度过愉快的时光,并在内心享受美好时光。 请随时说嘿甚至嗨嗨嗨,嗨,嗨,嗨,嗨,[email protected] - 我们'我们喜欢你以前的帖子的反馈,所以我甚至不害怕这个时候再次发布这个电子邮件地址。 该项目未与Wioguard项目隶属于附属。 Wioguard是Jason A. Donenfeld的注册商标。