继续关于 ZeroTier 的故事,从文章中概述的理论“
- 让我们创建并配置一个专用网络控制器
- 让我们创建一个虚拟网络
- 让我们配置节点并将其连接到它
- 让我们检查一下它们之间的网络连接
- 让我们阻止从外部访问网络控制器的 GUI
网络控制器
如前所述,要创建虚拟网络、管理虚拟网络以及连接节点,用户需要一个网络控制器、一个图形界面 (GUI),其以两种形式存在:
ZeroTier GUI 选项
- 开发商 ZeroTier 提供的一款,作为公共云 SaaS 解决方案提供,有四种订阅计划,包括免费,但托管设备数量和支持级别有限
- 第二个来自独立开发人员,功能有所简化,但可作为私有开源解决方案在本地或云资源上使用。
在我的实践中,我同时使用了两种方法,因此,我最终选择了第二种。 原因是开发商的警告。
“网络控制器充当 ZeroTier 虚拟网络的认证机构。 包含控制器密钥的文件必须仔细保护并安全存档。 它们的妥协使得未经授权的攻击者能够创建欺诈性的网络配置,而它们的丢失会导致失去控制和管理网络的能力,从而导致网络无法使用。”
→
而且,你自己的网络安全偏执的迹象:)
- 即使 Cheburnet 出现,我仍然必须能够访问我的网络控制器;
- 只有我应该使用网络控制器。 如有必要,允许您的授权代表接触;
- 应该可以限制从外部对网络控制器的访问。
在本文中,我认为没有太多必要单独讨论如何在本地物理或虚拟资源上部署网络控制器及其 GUI。 这也有3个原因:
- 信件将会比计划的多
- 已经关于这个了
告诉 关于 GUI 开发者 GitHub - 这篇文章的主题是关于其他事情的
因此,选择阻力最小的路径,我将在这个故事中使用带有基于 VDS 的 GUI 的网络控制器,该控制器由
最初设定
从指定模板创建服务器后,用户通过浏览器访问 https:// 来访问 Web-GUI 控制器:3443
默认情况下,服务器已包含预先生成的自签名 TLS/SSL 证书。 这对我来说已经足够了,因为我阻止了从外部访问它。 对于那些希望使用其他类型证书的人,有
当用户第一次登录时 登录 使用默认登录名和密码 - 管理员 и 密码:
建议将默认密码更改为自定义密码
我的做法有点不同 - 我不更改现有用户的密码,而是创建一个新用户 - 创建用户.
我设置了新用户的名称 - 用户名:
我设置了一个新密码 - 输入新密码:
我确认新密码 - 重新输入密码:
您输入的字符区分大小写 - 请小心!
下次登录时确认密码更改的复选框 - 下次登录时更改密码: 我不庆祝。
要确认输入的数据,请按 设置密码:
然后:我重新登录 - 退出 / 登录
,已经在新用户的凭据下:
接下来,我转到用户选项卡 - 用户 并删除该用户 管理员单击其姓名左侧的垃圾桶图标。
将来,您可以通过单击用户名或设置的密码来更改用户的密码。
创建虚拟网络
要创建虚拟网络,用户需要转到选项卡 添加网络。 从点 用户 这可以通过页面完成 主页 — Web-GUI 的主页,显示该网络控制器的 ZeroTier 地址,并包含指向通过它创建的网络列表页面的链接。
在页面上 添加网络 用户为新创建的网络指定一个名称。
应用输入数据时 - 创建网络 用户将被带到一个包含网络列表的页面,其中包含:
网络名称 — 链接形式的网络名称,当您单击它时可以更改它
网络ID — 网络标识符
细节 — 链接到包含详细网络参数的页面
设置简单 — 链接到页面以方便设置
成员 — 链接到节点管理页面
如需进一步设置,请点击链接 设置简单。 在打开的页面上,用户为正在创建的网络指定 IPv4 地址范围。 这可以通过按下按钮自动完成 生成网络地址 或通过在相应字段中手动输入网络网络掩码 CIDR.
确认数据输入成功后,您必须使用“后退”按钮返回到包含网络列表的页面。 至此,基本的网络设置就可以认为完成了。
连接网络节点
- 首先,必须在用户想要连接到网络的节点上安装 ZeroTier One 服务。
什么是 ZeroTier One?零一级 是一种运行在笔记本电脑、台式机、服务器、虚拟机和容器上的服务,通过虚拟网络端口提供与虚拟网络的连接,类似于 VPN 客户端。
安装并启动该服务后,您可以使用 16 位地址连接到虚拟网络。 每个网络都显示为系统上的虚拟网络端口,其行为就像常规以太网端口一样。
可以找到发行版以及安装命令的链接在制造商的页面上 .您可以通过具有管理员/root 权限的命令行终端 (CLI) 管理已安装的服务。 在 Windows/MacOS 上也使用图形界面。 在 Android/iOS 中仅使用 GUI。
- 检查服务安装是否成功:
CLI:
zerotier-cli status
结果:
200 info ebf416fac1 1.4.6 ONLINE
GUI:事实上,应用程序正在运行,并且其中存在一行包含节点 ID 和节点地址的行。
- 将节点连接到网络:
CLI:
zerotier-cli join <Network ID>
结果:
200 join OK
GUI:
Windows上: 右键单击该图标 零一级 在系统托盘中并选择该项目 - 加入我们.
MacOS的: 启动应用程序 零一级 在栏菜单中(如果尚未启动)。 单击 ⏁ 图标并选择 加入我们.Android/iOS:应用程序中的 +(加图像)
在出现的字段中,输入 GUI 中指定的网络控制器 网络ID,然后按 加入/添加网络. - 为主机分配 IP 地址
现在我们返回到网络控制器,并在带有网络列表的页面上点击链接 成员。 如果您在屏幕上看到与此类似的图片,则意味着您的网络控制器已收到来自所连接节点的确认与网络连接的请求。
在此页面上,我们暂时保留所有内容并点击链接 IP分配 进入为节点分配IP地址页面:
分配地址后,单击按钮 返回 返回已连接节点列表页面并设置名称 - 成员名字 并选中复选框以授权网络上的节点 - 授权。 顺便说一句,这个复选框对于将来与主机网络断开/连接是一个非常方便的事情。
使用按钮保存更改 刷新. - 检查节点的网络连接状态:
要检查节点本身的连接状态,请运行:
CLI:zerotier-cli listnetworks
结果:
200 listnetworks <nwid> <name> <mac> <status> <type> <dev> <ZT assigned ips>
200 listnetworks 2da06088d9f863be My_1st_VLAN be:88:0c:cf:72:a1 OK PRIVATE ethernet_32774 10.10.10.2/24
GUI:网络状态应该是好的
要连接其余节点,请对每个节点重复操作 1-5。
检查节点网络连通性
我通过运行命令来做到这一点 平 在连接到我当前管理的网络的设备上。
在 Web-GUI 控制器的屏幕截图中,您可以看到连接到网络的三个节点:
- ZTNCUI - 10.10.10.1 - 我的带有 GUI 的网络控制器 - RuVDS DC 之一中的 VDS。 对于正常工作,不需要将其添加到网络,但我这样做是因为我想阻止从外部访问 Web 界面。 稍后会详细介绍这一点。
- 我的比较 - 10.10.10.2 - 我的工作计算机是物理 PC
- 备份 - 10.10.10.3 — 另一个 DC 中的 VDS。
因此,我在工作计算机上使用以下命令检查其他节点的可用性:
ping 10.10.10.1
Pinging 10.10.10.1 with 32 bytes of data:
Reply from 10.10.10.1: bytes=32 time=14ms TTL=64
Reply from 10.10.10.1: bytes=32 time=4ms TTL=64
Reply from 10.10.10.1: bytes=32 time=7ms TTL=64
Reply from 10.10.10.1: bytes=32 time=2ms TTL=64
Ping statistics for 10.10.10.1:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 2ms, Maximum = 14ms, Average = 6ms
ping 10.10.10.3
Pinging 10.10.10.3 with 32 bytes of data:
Reply from 10.10.10.3: bytes=32 time=15ms TTL=64
Reply from 10.10.10.3: bytes=32 time=4ms TTL=64
Reply from 10.10.10.3: bytes=32 time=8ms TTL=64
Reply from 10.10.10.3: bytes=32 time=4ms TTL=64
Ping statistics for 10.10.10.3:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 4ms, Maximum = 15ms, Average = 7ms
用户有权使用其他工具来检查网络上节点的可用性,这些工具都内置于操作系统中,例如 NMAP、Advanced IP Scanner 等。
我们从外部隐藏对网络控制器 GUI 的访问。
一般来说,我可以使用 RuVDS 个人帐户中的防火墙来减少未经授权访问我的网络控制器所在的 VDS 的可能性。 这个主题更有可能是一篇单独的文章。 因此,在这里我将展示如何仅从我在本文中创建的网络提供对 GUI 控制器的访问。
为此,您需要通过 SSH 连接到控制器所在的 VDS,并使用以下命令打开配置文件:
nano /opt/key-networks/ztncui/.env
在打开的文件中,在包含打开 GUI 的端口地址的“HTTPS_PORT=3443”行之后,您需要添加一行,其中包含打开 GUI 的地址 - 在我的例子中是 HTTPS_HOST=10.10.10.1 .XNUMX.
接下来我将保存文件
Сtrl+C
Y
Enter
并运行命令:
systemctl restart ztncui
就是这样,现在我的网络控制器的 GUI 仅适用于网络节点 10.10.10.0.24。
取而代之的是结论
这是我想要完成基于 ZeroTier 创建虚拟网络的实用指南的第一部分的地方。 我期待你的评论。
同时,为了打发时间,直到下一部分出版,我会告诉你如何将虚拟网络与物理网络相结合,如何组织“公路战士”模式等等,我建议你尝试一下使用带有 GUI 的专用网络控制器组织您自己的虚拟网络,该控制器基于市场上的 VDS
PS 是的! 我差点忘了! 您可以使用该节点的 CLI 中的命令从网络中删除该节点。
zerotier-cli leave <Network ID>
200 leave OK
或节点上客户端 GUI 中的删除命令。
->
->
->
来源: habr.com