WireGuard:修订间差异

来自Gea-Suan Lin's Wiki
跳到导航 跳到搜索
此页面具有访问限制。如果您看见此消息,则说明您没有权限访问此页面。
 
第78行: 第78行:
ping 192.168.0.1
ping 192.168.0.1
ping 192.168.1.1
ping 192.168.1.1
</syntaxhighlight>
再來設定[[iptables]]防火牆,預設阻擋,後續再開放對應的連線:
<syntaxhighlight lang="bash">
sudo iptables -A FORWARD -i wg -j DROP
</syntaxhighlight>
然後可以用iptables-persistent把這組iptables設定在開機時自動套用:
<syntaxhighlight lang="bash">
sudo apt install -y iptables-persistent
</syntaxhighlight>
</syntaxhighlight>



2023年6月26日 (一) 09:22的最新版本

WireGuard是一套VPN软体。

安装

Ubuntu 22.04上可以直接安装:

sudo apt install -y wireguard

设定

设定档都在/etc/wireguard下。

Site-to-site

这边假设的环境是:

  • VPN A的内网在192.168.0.0/24,对外IP是1.2.3.4
  • VPN B的内网在192.168.1.0/24,对外IP是5.6.7.8

先设定系统,先在/etc/sysctl.d/99-net.conf内设定允许IP forwarding:

net.ipv4.ip_forward=1
net.ipv6.conf.all.forwarding=1

接著执行生效:

sudo sysctl -p /etc/sysctl.d/99-net.conf

先产生对应的Private Key与Public Key:

wg genkey | sudo tee /etc/wireguard/wg.key | wg pubkey | sudo tee /etc/wireguard/wg.pub; sudo chmod 600 /etc/wireguard/wg.key

接下是/etc/wireguard/wg.conf,在Interface这段都是放自己的资讯,Peer这段都是放对方的资讯(PublicKey可以从对方机器上的/etc/wireguard/wg.pub取得):

[Interface]
PostUp = wg set %i private-key /etc/wireguard/%i.key
Address = 192.168.0.200
ListenPort = 51820

[Peer]
PublicKey = G9colAlX0xdAO+v8Nme4JobfprXWB442WEOChvQjx3c=
AllowedIPs = 192.168.1.0/24
Endpoint = 5.6.7.8:51820

另外一边则会是:

[Interface]
PostUp = wg set %i private-key /etc/wireguard/%i.key
Address = 192.168.1.200
ListenPort = 51820

[Peer]
PublicKey = yTC1O+ckZ9tcKAsDpDnx0XQmTg06rJa3z8xk8mEFUy0=
AllowedIPs = 192.168.0.0/24
Endpoint = 1.2.3.4:51820

然后设定开机跑起来并且设定启动,两台机器都要跑:

sudo systemctl enable --now wg-quick@wg

接著就可以用ping测试跨网段时是否通了(先在wireguard主机上面测,再到其他机器上面测试):

ping 192.168.0.1
ping 192.168.1.1

再来设定iptables防火墙,预设阻挡,后续再开放对应的连线:

sudo iptables -A FORWARD -i wg -j DROP

然后可以用iptables-persistent把这组iptables设定在开机时自动套用:

sudo apt install -y iptables-persistent

外部连结