ユーザ用ツール

サイト用ツール


wireguard

文書の過去の版を表示しています。


Wire Guard

概要

様々な実装のあるVPNのなかで比較的後発のもの。 実装サイズは小さく軽量高速であるとされている。 Ubuntuのパッケージもあり、デスクトップにも統合されるので、導入が簡単である。

クライアントとして、Windows, Android, iOSなどもサポートされている。

設定

サーバをLinux(Ubuntu)に乗せて、外部から、Windows, Android, Ubuntuで接続する想定で説明する。 家庭内のLANは 192.168.1.0/24で構成されており、VPNは 192.168.10.0/24で構成されるものとする。 LAN内のDNSは192.168.1.1に、Wire Guardのサーバは192.168.10.1を持ち、192.168.1.2で動作しているものとする。

サーバ

インストール

パッケージがあるのでそれをインストールすればよい。

$ sudo apt install -y wireguard

設定

最初に行うべきは鍵の生成である。 鍵はwgコマンドで生成する。 鍵は画面に表示されるだけだが、ファイルに保存しておいた方が後々便利なのでそのようにする。

$ sudo wg genkey | sudo tee /etc/wireguard/server.key
$ sudo cat /etc/wireguard/server.key | wg pubkey | sudo tee /etc/wireguard/server.pub
$ sudo chmod 600 /etc/wireguard/server.{key,pub}

別にどこに保存してもいいですが、ばらけるとめんどくさいのでとりあえず/etc/wireguard に置きます。 一応中身を見られないように600にしておきます。

次に、設定ファイルを作りますが、これはVPNのインターフェイスごとに作ります。 仮に wg0 がインターフェイスだとしたら、/etc/wireguard/wg0.conf というファイルになります。 これも600で作成します。

wg0.conf
[Interface]
Address = 192.168.10.1/24
SaveConfig = true
PostUp = iptables -A INPUT -i wg0 -j ACCEPT; iptables -A FORWARD -i wg0 -j ACCEPT; iptables -A FORWARD -o wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D INPUT -i wg0 -j ACCEPT; iptables -D FORWARD -i wg0 -j ACCEPT; iptables -D FORWARD -o wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
ListenPort = 51800
PrivateKey = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX=
 
[Peer]
PublicKey = YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY=
AllowedIPs = 192.168.10.2/32
 
[Peer]
PublicKey = ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ=
AllowedIPs = 192.168.10.3/32
 
[Peer]
PublicKey = UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU=
AllowedIPs = 192.168.10.4/32
 
[Peer]
PublicKey = WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW=
AllowedIPs = 192.168.10.5/32

Peerは接続してくるクライアントごとに持たせることができる。 DHCP機能はないので、IPはここで設定されたものが渡される。 クライアント側で生成されたPublicKeyに従って割り当てが行われる。

外部に対して、192.168.1.2:51800/UDP を公開して、サービスを起動すればVPN接続を待ち受ける。

$ sudo systemctl enable wg-quick@wg0
$ sudu systemctl start wg-quick@wg0

クライアント

wireguard.1765434529.txt.gz · 最終更新: by araki