首页 > 其他分享 >WireGuard 的工作原理(转)

WireGuard 的工作原理(转)

时间:2024-11-17 08:57:48浏览次数:1  
标签:公钥 IP 接口 工作 WireGuard 原理 数据包 网络接口

原文地址——https://fonzcci.cn/#simple-network-interface

简单网络接口

WireGuard 的工作原理是添加一个(或多个)网络接口,如eth0wlan0,称为wg0(或wg1wg2、等)。然后可以使用或wg3正常配置此网络接口,使用或为其添加和删除路由,等等,所有普通的网络实用程序都可以使用。使用工具配置接口的特定 WireGuard 方面。此接口充当隧道接口。ifconfig(8)ip-address(8)route(8)ip-route(8)wg(8)

WireGuard 将隧道 IP 地址与公钥和远程端点关联起来。当接口向对等方发送数据包时,它会执行以下操作:

  1. 此数据包是发往 192.168.30.8 的。那是哪个对等点?让我看看……好的,它是发往对等点的ABCDEFGH。(或者,如果它不是发往任何已配置的对等点,则丢弃该数据包。)
  2. ABCDEFGH使用对等方的公钥加密整个 IP 数据包。
  3. 对等体的远程端点是什么ABCDEFGH?让我看看...好的,端点是主机 216.58.211.110 上的 UDP 端口 53133。
  4. 使用 UDP 将步骤 2 中的加密字节通过 Internet 发送到 216.58.211.110:53133。

当接口接收到数据包时,会发生以下情况:

  1. 我刚刚从主机 98.139.183.24 上的 UDP 端口 7361 收到一个数据包。让我们解密它!
  2. 它为对等体正确解密和验证LMNOPQRS。好的,让我们记住,对等体LMNOPQRS最近的 Internet 端点是 98.139.183.24:7361,使用 UDP。
  3. 解密后,纯文本数据包来自 192.168.43.89。对方是否LMNOPQRS可以以 192.168.43.89 的身份向我们发送数据包?
  4. 如果是,则在接口上接受该数据包。如果不是,则丢弃它。

在幕后,人们利用最先进的加密技术,进行着许多工作以提供适当的隐私性、真实性和完美的前向保密性。

密钥路由

WireGuard 的核心是一个名为Cryptokey Routing的概念,其工作原理是将公钥与允许进入隧道的隧道 IP 地址列表相关联。每个网络接口都有一个私钥和一个对等点列表。每个对等点都有一个公钥。公钥简短而简单,对等点使用它来相互验证身份。它们可以通过任何带外方法传递以用于配置文件,类似于人们将他们的 SSH 公钥发送给朋友以访问 shell 服务器的方式。

例如,服务器计算机可能具有以下配置:

[Interface]
PrivateKey = yAnz5TF+lXXJte14tji3zlMNq+hd2rYUIgJBgB3fBmk=
ListenPort = 51820

[Peer]
PublicKey = xTIBA5rboUvnH4htodjb6e697QjLERt1NAB4mZqp8Dg=
AllowedIPs = 10.192.122.3/32, 10.192.124.1/24

[Peer]
PublicKey = TrMvSoP4jYQlY6RIzBgbssQqY3vxI2Pi+y71lOWWXX0=
AllowedIPs = 10.192.122.4/32, 192.168.0.0/16

[Peer]
PublicKey = gN65BkIKy1eCE9pP1wdc8ROUtkHLF2PfAqYdyYBz6EA=
AllowedIPs = 10.10.10.230/32

客户端计算机可能具有以下更简单的配置:

[Interface]
PrivateKey = gI6EdUSYvn8ugXOt8QQD6Yc+JyiZxIhp3GInSWRfWGE=
ListenPort = 21841

[Peer]
PublicKey = HIgo9xNzJMWLKASShiTqIybxZ0U3wGLiUeJ1PKf8ykw=
Endpoint = 192.95.5.69:51820
AllowedIPs = 0.0.0.0/0

在服务器配置中,每个对等体(客户端)将能够将数据包发送到网络接口,其源 IP 与其相应的允许 IP 列表相匹配。例如,当服务器从对等体收到数据包时gN65BkIK...,在解密和验证后,如果其源 IP 为 10.10.10.230,则允许其进入接口;否则将被丢弃。

在服务器配置中,当网络接口想要将数据包发送到对等方(客户端)时,它会查看该数据包的目标 IP,并将其与每个对等方的允许 IP 列表进行比较,以确定将其发送到哪个对等方。例如,如果要求网络接口发送目标 IP 为 10.10.10.230 的数据包,它将使用对等方的公钥对其进行加密gN65BkIK...,然后将其发送到该对等方最近的 Internet 端点。

在客户端配置中,其单个对等端(服务器)将能够使用任何源IP 向网络接口发送数据包(因为 0.0.0.0/0 是通配符)。例如,当从对等端收到数据包时HIgo9xNz...,如果数据包使用任何源 IP 正确解密和验证,则允许其进入接口;否则将被丢弃。

在客户端配置中,当网络接口想要向其单个对等体(服务器)发送数据包时,它将为具有任何目标 IP 地址的单个对等体加密数据包(因为 0.0.0.0/0 是通配符)。例如,如果要求网络接口发送具有任何目标 IP 的数据包,它将使用单个对等体的公钥对其进行加密HIgo9xNz...,然后将其发送到单个对等体最近的 Internet 端点。

换句话说,当发送数据包时,允许的 IP 列表表现为一种路由表,而当接收数据包时,允许的 IP 列表表现为一种访问控制列表。

这就是我们所说的加密密钥路由表:公钥和允许的 IP 的简单关联。

对于任何字段,都可以使用 IPv4 和 IPv6 的任意组合。如有必要,WireGuard 完全有能力将一个封装在另一个内。

由于在 WireGuard 接口上发送的所有数据包都经过加密和验证,并且对等方的身份与对等方允许的 IP 地址之间存在紧密的联系,因此系统管理员不需要复杂的防火墙扩展(例如 IPsec 的情况),而是只需匹配“它来自这个 IP 吗?在这个接口上?”,并确保它是一个安全且真实的数据包。这大大简化了网络管理和访问控制,并提供了更大的保证,确保您的 iptables 规则确实在执行您希望它们执行的操作。

标签:公钥,IP,接口,工作,WireGuard,原理,数据包,网络接口
From: https://www.cnblogs.com/goding/p/18550227

相关文章

  • 工作学习笔记(十)Java 中 “<” 运算符不能应用于BigDecimal和double
    一、问题描述在Java编程过程中,尝试使用“<”运算符对java.math.BigDecimal和double类型的数据进行比较时,出现了编译错误:“Theoperator<isundefinedfortheargumenttype(s)java.math.BigDecimal,double”。二、问题分析Java中的基本数据类型(如int、double等)......
  • 2024强化学习的结构化剪枝原理及实践
    [2024]RL-Pruner:StructuredPruningUsingReinforcementLearningforCNNCompressionandAcceleration目录[2024]RL-Pruner:StructuredPruningUsingReinforcementLearningforCNNCompressionandAcceleration一、论文说明二、原理三、实验与分析1、环境......
  • ARP欺骗技术:DNS欺骗与HTTP重定向_(2).ARP欺骗原理与机制
    ARP欺骗原理与机制1.ARP协议简介ARP(AddressResolutionProtocol)协议是用于将IP地址解析为物理地址(通常是MAC地址)的协议。在网络中,计算机之间进行通信时,需要知道对方的MAC地址来构建数据帧。ARP协议通过广播请求和单播响应的方式,实现了从IP地址到MAC地址的动态映射。ARP......
  • 轻松理解操作系统 - Linux文件系统模块完结!又可以快速了解原理了
    在前面的7期中,我们了解了Linux文件系统的模块和它们相互之间是如何配合并形成一个完整的、可以将所有的所有都抽象成文件的体系。这样的体系主要是为了帮助大家在使用或编程的时候更加的简化,从而更简单的使用以及提升效率。本篇文章则提升深入理解Linux文件系统的效率,......
  • Cocos2d-x渲染系统多线程优化原理探索
    Cocos2d-x的渲染系统通过深度优先遍历场景树来实现高效的渲染,而将渲染过程进行Job化是提升性能的有效策略。你提到的两种策略都具有一定的合理性,但也存在各自的局限性。以下是对这两种策略的详细分析,以及如何进一步优化整个渲染过程的建议。策略1:Job化RenderCommand生成方......
  • Cocos2sx渲染原理
    Cocos2dx的场景渲染是对场景树的深度优先遍历过程。具体的复杂性体现在以下两个方面:一方面,需要严格按照树的前序遍历完成每个Node刷新,这里的刷新工作通常包含矩阵运算,RenderFlag更新,子Node排序等;另一方面,每个Node有可能产生对应的RenderCommand,这些RenderCommand又是按照中......
  • 一文带你了解防火墙的三种工作模式:路由模式、透明模式(网桥)、混合模式。网络安全零基础
    防火墙作为网络安全的核心设备之一,扮演着至关重要的角色。它不仅能够有效防御外部网络的攻击,还能保护内部网络的安全。在如今复杂多样的网络环境下,防火墙的部署和工作模式直接影响着网络安全策略的实施效果。防火墙通常可以工作在三种模式下:路由模式、透明模式(网桥模式)以及......
  • 一分钟教你社工原理:shodan暗黑搜索引擎使用方法,黑客技术零基础入门到精通教程!
    简介Shodan是个啥?之前没听说过吗?那可要小声说你是做安全的,会被人笑话。如果说百度、谷歌是名门正派,那Shodan就是典型的魔教一般的存在;如果百度、谷歌是一招一式都遵规守矩的江湖大侠,那Shodan就是专踢人裤裆的市井混混。和百度、谷歌干的事儿类似,但Shodan专搜各家各户IT系......
  • RAG原理、应用与开发实战指南
    RAG概述为了更好的解决大模型幻觉的问题,业界提出了基于知识检索与大模型生成相结合的技术:RAG(Retrieval-AugmentedGeneration)即检索增强生成。在当前大模型应用开发中,RAG为解决通用大模型知识有限和知识更新不及时等问题提供了有效方案,也得到了广泛的应用。RAG的工作原......
  • Redis7.x安装系列教程(二)主从部署&原理详解
    Redis7.x安装系列教程(二)主从部署&原理详解1、什么是主从复制主从复制是指将一台Redis服务器的数据,复制到其他的Redis服务器上。前者称为主节点(master),后者是从节点(slave),数据的复制是单向的,只能是从主节点到从节点。每台Redis服务器未修改配置前都是主节点,一个主节点可以0~N......