Yggdrasil

出自 ArchWiki

Yggdrasil 是一个完全端到端加密 IPv6 网络的早期实现。它轻量级、自组织、支持多平台,并允许几乎任何支持 IPv6 的应用程序与其他 Yggdrasil 节点安全地通信。

本文介绍如何设置和使用 Yggdrasil。

安装

安装 yggdrasil 软件包。

运行

启动/启用 yggdrasil.service

这将创建一个 tun 网络接口并提供两个新的 IPv6 网络接口。 重要的一个是 200: 开头的接口,它将作为您的机器在 Yggdrasil 网络中的身份标识。 此 IP 地址使用 IPv6 标准的保留部分。 这避免了与更广泛的互联网发生任何冲突。

要测试其是否工作,您可以运行

# yggdrasilctl getself

配置

您可以通过运行 yggdrasil-default-config.service 来创建默认配置文件 /etc/yggdrasil.conf,首次运行 yggdrasil.service 时也会创建并使用该文件。 默认情况下,您的 Yggdrasil 实例没有任何对等节点,因此您正在运行一个独立的服务。 编辑使用 JSON 格式的 /etc/yggdrasil.conf 文件,可以添加对等节点,重启服务后,您的节点既可以访问更广泛的网络,也可以被其他节点找到。

提示: 在与更广泛的网络对等连接之前,您可能需要启用本地防火墙,因为当您这样做时,您的机器及其所有服务将可以从外部访问。

有关配置的更多详细信息,请参阅上游文档

要与更广泛的网络对等连接,请从 public-peers 文档开始。

本地防火墙

在当今的网络实践中,常见的 Linux 安装通常不会直接暴露于互联网。 只有服务器通常会具有公共 IP 地址。 因此,我们的 ssh 或类似服务不会受到任何人或所有人的攻击。

重要的是要意识到,运行 Yggdrasil 并将其与更广泛的 Yggdrasil 网络对等连接会改变这一点。 监听所有网络连接的服务将可以被连接到该网络的任何人访问。 您可能需要配置它们不监听 Yggdrasil 网络,或者使用一些防火墙规则快速隐藏正在运行的服务。

/etc/iptables/ip6tables.rules
#yggdrasil
*filter
:INPUT ACCEPT [8:757]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [5:463]
-A INPUT -i tun0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i tun0 -m conntrack --ctstate INVALID -j DROP
-A INPUT -i tun0 -j DROP
COMMIT

启动/启用 ip6tables.service 以使更改生效。

参见