「WireGuard」:修訂間差異

出自Gea-Suan Lin's Wiki
跳至導覽 跳至搜尋
本頁面具有訪問限制。如果您看見此訊息,這代表您沒有訪問本頁面的權限。
 
(未顯示同一使用者於中間所作的 2 次修訂)
行 20: 行 20:
* VPN B的內網在<code>192.168.1.0/24</code>,對外IP是<code>5.6.7.8</code>。
* VPN B的內網在<code>192.168.1.0/24</code>,對外IP是<code>5.6.7.8</code>。


 先設定系統,允許IP forwarding:
 先設定系統, 先在<code>/etc/sysctl.d/99-net.conf</code>內設定 允許IP forwarding:


<syntaxhighlight lang="ini">
<syntaxhighlight lang="ini">
net.ipv4.ip_forward=1
net.ipv4.ip_forward=1
net.ipv6.conf.all.forwarding=1
net.ipv6.conf.all.forwarding=1
</syntaxhighlight>
接著執行生效:
<syntaxhighlight lang="bash">
sudo sysctl -p /etc/sysctl.d/99-net.conf
</syntaxhighlight>
</syntaxhighlight>


行 67: 行 73:
</syntaxhighlight>
</syntaxhighlight>


 接著就可以測試是否通了:
 接著就可以 用ping 測試 跨網段時 是否通了 (先在wireguard主機上面測,再到其他機器上面測試):
 
<syntaxhighlight lang="bash">
ping 192.168.0.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>


== 外部連結 ==
== 外部連結 ==

於 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

外部連結