天天看點

Fedora33下搭建WireGuard虛拟專用網

Fedora33下搭建WireGuard虛拟專用網
Fedora33下搭建WireGuard虛拟專用網

一、wireguard簡單介紹

什麼是 WireGuard? 

WireGuard 是一個易于配置、快速且安全的開源 Virtual Private Network,它利用了最新的加密技術。目的是提供一種更快、更簡單、更精簡的通用 Virtual Private Network,它可以輕松地在樹莓派這類低端裝置到高端伺服器上部署。

IPsec 和 OpenV*P*N 等大多數其他解決方案是幾十年前開發的。安全研究人員和核心開發人員 Jason Donenfeld 意識到它們速度慢且難以正确配置和管理。

這讓他建立了一個新的開源Virtual Private Network 協定和解決方案,它更加快速、安全、易于部署和管理。

WireGuard 最初是為 Linux 開發的,但現在可用于 Windows、macOS、BSD、iOS 和 Android。除了可以跨平台之外,WireGuard 的最大優點之一就是易于部署。配置和部署 WireGuard 就像配置和使用 SSH 一樣容易 

WireGuard 受到 Linus 本人的推薦,将整合到最新版Linux Kernel中,安裝部署更友善。WireGuard 總共幾千行代碼,隻需十分鐘就能搞定一台WireGuard伺服器。

Wireguard安全性高。極佳的Virtual Private Network 漫遊特性,裝置支援廣泛。核心級别的端對端隧道加密技術,擁有良好的加密特性。Wireguard配置檔案由兩部分組成:interface和peer。伺服器端、用戶端互為平等關系。支援預共享密鑰preshared key加密,防攻擊

當将 WireGuard 安裝為核心子產品時,基本上需要你自行修改 Linux 核心并向其添加代碼。從 5.6 核心開始,你無需手動添加核心子產品。預設情況下它将包含在核心中

Fedora33下搭建WireGuard虛拟專用網

是以下面使用Fedora Server 33版本來配置Wireguard 

(核心版本5.8.15,預設就支援wireguard)

參考如下連接配接完成

https://www.linode.com/docs/guides/set-up-wireguard-vpn-on-ubuntu/ 

拓撲如下 

Fedora33下搭建WireGuard虛拟專用網

(圖檔可放大檢視)

1) 左側内網A Fedora33機器的IP 192.168.233.128作為wireguard Server端 

2) 在左側出口路由器上映射192.168.233.128的TCP 22(SSH)和UDP 51820(WireGuard Server通信端口),映射後公網為10.20.90.193(模拟公網IP)

3) 右側内網B Fedora33機器的IP 192.168.198.131作為wireguard Client端

二、Wireguard Server端配置

1、Server端安裝wireguard

内網IP 192.168.233.128

dnf install wireguard-tools
           
Fedora33下搭建WireGuard虛拟專用網
Fedora33下搭建WireGuard虛拟專用網

2、建立密鑰對

1、服務端的私鑰
wg genkey | tee /etc/wireguard/server.key
yAQFm+E6gVBCG7c72lhRngaCZy+gVzCCpRbudPmuKms=

2、服務端的公鑰
cat /etc/wireguard/server.key | wg pubkey | tee /etc/wireguard/server.pub
BRPmId4mnGBfCgmniDf3Ar+1cvXcS85pntqYH1w0jlM=


3、用戶端的私鑰
wg genkey | tee /etc/wireguard/client.key
8F3bI2FydYhh8Ps9Xi2IenrdQrH9xXw6wzJaVrRSSHE=

4、用戶端的公鑰
cat /etc/wireguard/client.key | wg pubkey | tee /etc/wireguard/client.pub
hXhveUdRmz6uQEr+7fQOh1YQ1c56sTiIXfzHVTmeBGs=
           
Fedora33下搭建WireGuard虛拟專用網

3、建立wg0的接口配置檔案

ip addr或者ifconfig
           

先确認目前的網絡接口名稱 

如下圖所示網絡接口名稱 為ens33 

Fedora33下搭建WireGuard虛拟專用網

接下來編輯wg0.conf

vi /etc/wireguard/wg0.conf
#添加如下内容
[Interface]
# specify generated private key for server
PrivateKey = yAQFm+E6gVBCG7c72lhRngaCZy+gVzCCpRbudPmuKms=
# IP address for VPN interface
Address = 172.16.100.1
# UDP port WireGuard server listens
ListenPort = 51820

# possible to set any commands after WireGuard starts/stops
# set routing rules like follows to access to local network via VPN session
# [wg0] ⇒ VPN interface name
# [eth0] ⇒ Ethernet interface name
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o ens33 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o ens33 -j MASQUERADE

[Peer]
# specify public key for client
PublicKey = hXhveUdRmz6uQEr+7fQOh1YQ1c56sTiIXfzHVTmeBGs=
# clients' VPN IP addresses you allow to connect
# possible to specify subnet ⇒ [172.16.100.0/24]
AllowedIPs = 172.16.100.5           

4、核心開啟IPv4轉發

vi /etc/sysctl.conf
添加一行
net.ipv4.ip_forward=1

生效配置
sysctl -p
           
Fedora33下搭建WireGuard虛拟專用網

5、啟動wg-quick服務

systemctl enable wg-quick@wg0
systemctl start [email protected]
ip addr 
           
Fedora33下搭建WireGuard虛拟專用網

三、路由器端口映射配置

1)映射192.168.233.128的TCP 22(SSH)——友善調試

2)UDP 51820(WireGuard Server通信端口)

映射後公網為10.20.90.193(模拟公網IP)

由于是使用VMwareWorkstation虛拟機NAT模式搭建的環境,端口映射的配置方式如下

Fedora33下搭建WireGuard虛拟專用網
Fedora33下搭建WireGuard虛拟專用網
Fedora33下搭建WireGuard虛拟專用網

四、WireGuard用戶端配置

1、安裝wireguard-tools

dnf install wireguard-tools 
           
Fedora33下搭建WireGuard虛拟專用網
Fedora33下搭建WireGuard虛拟專用網

2、添加wg0.conf配置檔案

vi /etc/wireguard/wg0.conf

cat /etc/wireguard/wg0.conf
添加如下配置
[Interface]
# specify private key for client generated on WireGuard server
PrivateKey = 8F3bI2FydYhh8Ps9Xi2IenrdQrH9xXw6wzJaVrRSSHE=
# IP address for VPN interface
Address = 172.16.100.5

[Peer]
# specify public key for server generated on WireGuard server
PublicKey = BRPmId4mnGBfCgmniDf3Ar+1cvXcS85pntqYH1w0jlM=
# IP addresses you allow to connect
# on the example below, set WireGuard server's VPN IP address and real local network
AllowedIPs = 172.16.100.1, 192.168.233.0/24
# specify server's global IP address:port
# (acutually, example of IP below is for private range, replace to your own global IP)
EndPoint = 10.20.90.193:51820
           
Fedora33下搭建WireGuard虛拟專用網

3、nc探測端口是否通

nc -vuz 10.20.90.193 51820
           
Fedora33下搭建WireGuard虛拟專用網

4、若端口可通,啟動wg0接口

wg-quick up wg0
#關閉則用wg-quick down wg0           
Fedora33下搭建WireGuard虛拟專用網

5、wg show檢視連接配接狀況并測試是否可以通路到Server端的網絡

wg show
           
Fedora33下搭建WireGuard虛拟專用網

如下圖所示,測試OK,WireGuard虛拟專用網搭建成功

Fedora33下搭建WireGuard虛拟專用網

Tips

繼續閱讀