WireGuard 组网教程:快速构建安全高效的私密网络并实现内网穿透_wire guar ...

打印 上一主题 下一主题

主题 916|帖子 916|积分 2748

WireGuard ® 是一款极其简单但快速且当代的 VPN,采用开始进的加密技术。它的目的是比 IPsec 更快、更简单、更精简、更有用,同时避免令人头疼的问题。它的性能远高于 OpenVPN。
  WireGuard 被设计为通用 VPN,可在嵌入式接口和超等盘算机上运行,适合许多不同的情况。它最初针对 Linux 内核发布,现在已跨平台(Windows、macOS、BSD、iOS、Android)且可广泛摆设。它目前正在鼎力大举开发中,但它可能已被视为业内最安全、最易于利用且最简单的 VPN 解决方案。
  我们可以用一句话概括它:
WGuard是一款可以组建虚拟私人局域网(VPN)的软件,答应用户通过公共网络(如互联网)安全地传输数据,同时保持数据的机密性和完备性。
WireGuard有如下优势


  • 更轻便:以Linux内核模块的情势运行,资源占用小。
  • 更高效:相比目前主流的IPSec、OpenVPN等协议,WireGuard的服从要更高。
  • 更快速:比目前主流的VPN协议,毗连速度要更快。
  • 更安全:利用了更先进的加密技术。
  • 更易搭建:摆设难度相对更低。
  • 更隐蔽:以UDP协议举行数据传输,比TCP协议更低调。
  • 不易被封锁:TCP阻断对WireGuard无效,IP被墙的情况下仍然可用。
  • 更省电:不利用时不举行数据传输,移动端更省电。
1.2 WireGuard可以用来做什么


  • 建立VPN(不限设备范例)
WireGuard支持多种平台,包罗电脑、智能手机和路由器。这一特性使其成为构建虚拟私有网络(VPN)的理想选择,能在这些设备上实现安全毗连。无论是用于远程工作、保护数据隐私,还是绕过地理限制,WireGuard都能提供稳定且安全的网络毗连。
2. 实现内网穿透
   内网穿透,即NAT(Network Address Translator)穿透,是指盘算机在内网(局域网)内利用私有IP地址,在毗连外网(互联网)时利用全局IP地址的技术。该技术被普遍利用在有多台主机但只通过一个公有IP地址访问的私有网络中。
  举个例子:好比我在实验室配置了一个服务器 Server A,当我在实验室的时间,就可以通过自己的条记本利用SSH毗连【由于我和服务器处于一个局域网】,当我回宿舍以后,就没有办法直接利用SSH毗连了【由于我和服务器不在一个局域网】,这个时间就必要举行NAT穿透,让我在宿舍也可以利用SSH毗连Server A。
    通过Wireguard可以将广域网上的主机毗连起来,形成一个局域网。只必要有一台具有固定公网IP的服务器,就可以将其作为我们搭建的局域网的中心节点,让其他的主机(岂论是否有公网IP,岂论是否在NAT内),都通过这个中心节点和相相互连。由此就构建了一个中心辐射型的局域网,实现了内网穿透等功能。
  

  • Docker容器通讯
WireGuard还可用于Docker容器之间的通讯。在Docker环境中,容器之间的网络通讯是一个重要的问题。WireGuard通过提供一种安全的通讯方式,可以或许在不同容器之间建立一个加密的网络毗连,从而保障数据的安全传输。这对于必要在不同容器间安全共享数据的应用尤为重要。
1.3 WireGuard原理

WireGuard源码地址
WireGuard 是一种在第 3 层(网络层)运行的安全网络隧道,与传统的 VPN 解决方案(如 IPsec 和 OpenVPN)相比,它的设计更安全、性能更高且更易于利用。它是作为 Linux 内核虚拟网络接口实现的,基于安全隧道的基本原理:将peer的公钥与隧道源 IP 地址关联。
相干术语:
   

  • Peer/Node/Device
  毗连到VPN 并为自己注册一个VPN子网地址(如 192.0.2.3)的主机。还可以通过利用逗号分隔的 CIDR 指定子网范围,为其自身地址以外的 IP 地址选择路由。
  

  • 中继服务器(Bounce Server)
  一个公网可达的peer,可以将流量中继到 NAT 后面的其他peer。Bounce Server 并不是特殊的节点,它和其他peer一样,唯一的区别是它有公网 IP,并且开启了内核级别的 IP 转发,可以将 威屁恩 的流量转发到其他客户端。
  

  • 子网(Subnet)
  一组私有 IP,比方 192.0.2.1-255 或 192.168.1.1/24,一般在 NAT 后面,比方办公室局域网或家庭网络。
  

  • CIDR 表示法
  CIDR,即无类域间路由(Classless Inter-Domain Routing),是一种用于对IP地址举行灵活表示和分配的尺度。
  

  • NAT
  子网的私有 IP 地址由路由器提供,通过公网无法直接访问私有子网设备,必要通过 NAT 做网络地址转换。路由器会跟踪发出的毗连,并将响应转发到精确的内部 IP。
  

  • 公开端点(Public Endpoint)
  节点的公网 IP 地址:端口,比方 123.124.125.126:1234,大概直接利用域名 some.domain.tld:1234。如果peer节点不在同一子网中,那么节点的公开端点必须利用公网 IP 地址。
  

  • 私钥(Private key)
  单个节点的 WireGuard 私钥,生成方法是:wg genkey > example.key。
  

  • 公钥(Public key)
  单个节点的 WireGuard 公钥,生成方式为:wg pubkey < example.key > example.key.pub。
  

  • DNS
  域名服务器,用于将域名解析为 VPN 客户端的 IP,不让 DNS请求泄漏到 VPN 之外。
  重要功能和原理如下
   WireGuard 通过添加一个(或多个)网络接口来工作,比方 eth0 或 wlan0 ,称为 wg0 (或 wg1 、 wg2 、 wg3 等)。然后可以利用 ifconfig(8) 或 ip-address(8) 正常配置该网络接口,并利用 route(8) 或 ip-route(8) 添加和删除其路由,以及所有平凡网络实用程序都是云云。接口的特定 WireGuard 方面利用 wg(8) 工具举行配置。该接口充当隧道接口。
  WireGuard 将隧道 IP 地址与公钥和远程端点相干联。当接口向peer发送数据包时,它会实行以下操作:
  

  • 该数据包适用于 192.168.30.8。那是哪位peer啊?让我看看…好吧,这是给peer ABCDEFGH 的。 (大概,如果它不适合任何已配置的peer,则抛弃该数据包。)
  • 利用peer ABCDEFGH 的公钥加密整个 IP 数据包。
  • Peer ABCDEFGH 的远程端点是什么?让我看看…好的,端点是主机 216.58.211.110 上的 UDP 端口 53133。
  • 利用 UDP 通过 Internet 将步骤 2 中的加密字节发送到 216.58.211.110:53133。
  当接口收到数据包时,会发生以下情况:
  

  • 我刚刚从主机 98.139.183.24 上的 UDP 端口 7361 收到一个数据包。让我们来解密吧!
  • 它为peer LMNOPQRS 精确解密和验证。好的,让我们记住,peer LMNOPQRS 的最新 Internet 端点是利用 UDP 的 98.139.183.24:7361。
  • 解密后,明文数据包来自 192.168.43.89。是否答应peer LMNOPQRS 以 192.168.43.89 向我们发送数据包?
  • 如果是,则在接口上接受数据包。如果没有,就放弃它。
  WireGuard 的核心是一个称为加密密钥路由的概念,它的工作原理是将公钥与隧道内答应的隧道 IP 地址列表相干联。每个网络接口都有一个私钥和一个peer点列表。每个peer都有一个公钥。公钥短小且简单,由peer用来相互验证。它们可以通过任何带外方法传递以在配置文件中利用,雷同于将 SSH 公钥发送给朋友以访问 shell 服务器的方式。
  1.4 WireGuard安装

wireGuard官方安装教程
2 WireGuard组网实现内网穿透

2.1 条件条件


  • 公网服务器: 必须拥有一台具有公网IP地址的服务器,这是内网穿透的关键。该服务器充当中转站,负责将外部请求传递到内部网络。
  • 网络设备配置权限: 必要对内部网络的路由器或防火墙有一定的配置权限,以便举行端口映射或其他必要的网络设置。这确保了从公网服务器到内网的毗连是有效的。
  • 安装WireGuard: 在公网服务器和内网设备上都必要安装和配置WireGuard软件。确保两端的WireGuard配置一致,包罗公私钥的生成和网络接口的配置。
  • 开启相应端口: 在公网服务器的防火墙配置中,必要打开WireGuard所利用的端口(默认是51820/UDP),以确保可以或许吸收来自内网设备的毗连请求。
  • 符合的网络拓扑: 确保了解内部网络的拓扑布局,以便精确设置WireGuard配置,包罗答应流量通过的子网、路由等。
2.2 网络拓扑布局


2.3 具体步骤

2.3.1 中继服务器配置


  • 创建密钥对
   wg genkey | tee server_privatekey | wg pubkey > server_publickey
  实行以上两条下令后,会在实行下令的当前文件夹自动生成2个文件:
  

  

  • 开启IP地址转发
   sudo sysctl net.ipv4.ip_forward
  如果显示1则阐明已开启,否则则未开启。
  1. echo "net.ipv4.ip\_forward = 1" >> /etc/sysctl.conf
  2. echo "net.ipv4.conf.all.proxy\_arp = 1" >> /etc/sysctl.conf
  3. sysctl -p /etc/sysctl.conf
复制代码


  • 设置IP地址伪装
  1. # 允许防火墙伪装IP
  2. firewall-cmd --add-masquerade
  3. # 检查是否允许伪装IP
  4. firewall-cmd --query-masquerade
  5. # 禁止防火墙伪装IP
  6. firewall-cmd --remove-masquerade
复制代码


  • 配置wireguard虚拟网卡(不推荐,只是让读者直观了解过程)
  1. sudo ip link add wg0 type wireguard # 添加一块叫 wg0 的虚拟 wireguard 网卡
  2. sudo ip addr add 192.168.71.1/24 dev wg0 # 给 wg0 网卡添加 ip 地址 192.168.71.1,子网掩码 255.255.255.0
  3. sudo wg set wg0 private-key ./server-privatekey # wireguard 设置密钥
  4. sudo ip link set wg0 up # 启用刚刚添加的网卡
复制代码
  我们可以通过ip addr下令检察到wg0网卡的状态
  

    可以看到网卡wg0 接口是已启用的,具有 IPv4 地址 192.168.71.1
  输入wg下令则可以看到配置信息,配置文件通常在/etc/wireguard/目次中
  

  有想继续实验这种方式的可以看一下官方教程


  • 编写配置文件配置网卡(推荐,应该wg set下令必要提供很多参数,很容易堕落)
   我们在/etc/wireguard目次中创建wg0.conf并编写配置,配置项请看2.4 配置项阐明
  1. [Interface]
  2. # 本机密钥
  3. PrivateKey = KIDTljv66CgVYBNlrSD13Au6qfUdIcFJkTBkuErhTEk=
  4. # 本机地址
  5. Address = 192.168.71.1/24
  6. # 监听端口
  7. ListenPort = 51820
  8. [Peer]
  9. # 对端的publickey
  10. PublicKey = iWy57DmR6wVXcVzMDOa2WyywO0WT5JRAGYIlh0v/nW8=
  11. # 对端地址
  12. AllowedIPs = 192.168.71.2/24
复制代码


  • 重新启动网卡
  1. sudo wg-quick down wg0
  2. sudo wg-quick up wg0
复制代码
2.3.2 其他peer

我这里只枚举MacOS的操作方式(其他都同理,就是要配置私钥和公钥)

操作完之后,它会给出密钥对,我们只必要添加好其他信息即可。

配置文件如下:
  1. [Interface]
  2. # 本机密钥
  3. PrivateKey = kDUqWzkbaB1EU5C2ADoId1TXtZF89xxn0VV45EcjFHs=
  4. # 本机地址
  5. Address = 192.168.71.2/24
  6. [Peer]
  7. # 对端公钥,即公网服务器公钥
  8. PublicKey = bEm1p736FQySfKlTTUCeHmiwTmna5umZWOWLGWqioSk=
  9. # 允许此对等方的传入流量并指定传出流量的目标。
  10. AllowedIPs = 192.168.71.0/24
  11. # 公网IP+监听端口号
  12. Endpoint = 1.1.1.1:51820
  13. PersistentKeepalive = 25
复制代码
2.3.3 测试

MacOS端:

服务器Ping 主机:

2.4 WireGuard配置文件阐明



  • interface部分

    • PrivateKey: 由 wg genkey 生成的 Base64 编码的私钥。必须配置。
    • ListenPort: 用于监听的 16 位端口。可选,如果未指定,则随机选择端口。
    • DNS: 指定 DNS 服务器的 IP 地址。
    • FwMark: 用于传出数据包的 32 位 fwmark。如果设置为 0 或 “off”,则禁用此选项。可选。可以以十六进制情势指定,比方,以 “0x” 开头。可选。

  • Peer 部分:

    • PublicKey: 由 wg pubkey 根据私钥盘算的 Base64 编码的公钥。必须配置。
    • PresharedKey: 由 wg genpsk 生成的 Base64 编码的预共享密钥。可选,可以省略。此选项为现有的公钥加密提供了额外的对称密钥加密层,以增强对抗后量子盘算的能力。

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数网络安全工程师,想要提升技能,往往是自己摸索发展,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此网络整理了一份《2024年网络安全全套学习资料》,初衷也很简单,就是渴望可以或许资助到想自学提升又不知道该从何学起的朋友。






既有适合小白学习的零基础资料,也有适合3年以上经验的小同伴深入学习提升的进阶课程,基本涵盖了95%以上网络安全知识点,真正体系化!
由于文件比力大,这里只是将部分目次大纲截图出来,每个节点里面都包含大厂面经、学习条记、源码讲义、实战项目、讲授视频,并且后续会持续更新
如果你觉得这些内容对你有资助,可以添加VX:vip204888 (备注网络安全获取)

如何自学黑客&网络安全

黑客零基础入门学习门路&规划

初级黑客
1、网络安全理论知识(2天)
①了解行业相干配景,前景,确定发展方向。
②学习网络安全相干法律法规。
③网络安全运营的概念。
④等保简介、等保规定、流程和规范。(非常重要)
2、渗出测试基础(一周)
①渗出测试的流程、分类、尺度
②信息网络技术:自动/被动信息搜集、Nmap工具、Google Hacking
③漏洞扫描、漏洞利用、原理,利用方法、工具(MSF)、绕过IDS和反病毒侦察
④主机攻防演练:MS17-010、MS08-067、MS10-046、MS12-20等
3、操作体系基础(一周)
①Windows体系常见功能和下令
②Kali Linux体系常见功能和下令
③操作体系安全(体系入侵排查/体系加固基础)
4、盘算机网络基础(一周)
①盘算机网络基础、协媾和架构
②网络通讯原理、OSI模型、数据转发流程
③常见协议解析(HTTP、TCP/IP、ARP等)
④网络攻击技术与网络安全防御技术
⑤Web漏洞原理与防御:自动/被动攻击、DDOS攻击、CVE漏洞复现
5、数据库基础操作(2天)
①数据库基础
②SQL语言基础
③数据库安全加固
6、Web渗出(1周)
①HTML、CSS和JavaScript简介
②OWASP Top10
③Web漏洞扫描工具
④Web渗出工具:Nmap、BurpSuite、SQLMap、其他(菜刀、漏扫等)
恭喜你,如果学到这里,你基本可以从事一份网络安全相干的工作,好比渗出测试、Web 渗出、安全服务、安全分析等岗位;如果等保模块学的好,还可以从事等保工程师。薪资区间6k-15k
到此为止,大概1个月的时间。你已经成为了一名“脚本小子”。那么你还想往下探索吗?
如果你想要入坑黑客&网络安全,笔者给大家预备了一份:282G全网最全的网络安全资料包评论区留言即可领取!
7、脚本编程(初级/中级/高级)
在网络安全领域。是否具备编程能力是“脚本小子”和真正黑客的本质区别。在实际的渗出测试过程中,面对复杂多变的网络环境,当常用工具不能满足实际需求的时间,往往必要对现有工具举行扩展,大概编写符合我们要求的工具、自动化脚本,这个时间就必要具备一定的编程能力。在分秒必争的CTF竞赛中,想要高效地利用自制的脚本工具来实现各种目的,更是必要拥有编程能力.
如果你零基础入门,笔者建议选择脚本语言Python/PHP/Go/Java中的一种,对常用库举行编程学习;搭建开发环境和选择IDE,PHP环境推荐Wamp和XAMPP, IDE猛烈推荐Sublime;·Python编程学习,学习内容包含:语法、正则、文件、 网络、多线程等常用库,推荐《Python核心编程》,不要看完;·用Python编写漏洞的exp,然后写一个简单的网络爬虫;·PHP基本语法学习并誊写一个简单的博客体系;熟悉MVC架构,并试着学习一个PHP框架大概Python框架 (可选);·了解Bootstrap的布局大概CSS。
8、超等黑客
这部分内容对零基础的同学来说还比力遥远,就不展开细说了,附上学习门路。

网络安全工程师企业级学习门路


如图片过大被平台压缩导致看不清的话,评论区点赞和评论区留言获取吧。我都会复兴的
视频配套资料&国表里网安书籍、文档&工具
固然除了有配套的视频,同时也为大家整理了各种文档和书籍资料&工具,并且已经帮大家分好类了。

一些笔者自己买的、其他平台白嫖不到的视频教程。

一个人可以走的很快,但一群人才华走的更远。岂论你是正从事IT行业的老鸟或是对IT行业感爱好的新人,都接待扫码参加我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、口试辅导),让我们一起学习发展!

套的视频,同时也为大家整理了各种文档和书籍资料&工具,并且已经帮大家分好类了。

一些笔者自己买的、其他平台白嫖不到的视频教程。

一个人可以走的很快,但一群人才华走的更远。岂论你是正从事IT行业的老鸟或是对IT行业感爱好的新人,都接待扫码参加我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、口试辅导),让我们一起学习发展!
[外链图片转存中…(img-Dlg0WnWB-1712869550635)]

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

我可以不吃啊

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表