web-dev-qa-db-ja.com

Wireguardはどのように管理されますか?

プライマリVPNとしてWireguardを使用しています(サーバーを実行し、それに接続する複数のクライアントがあります)。これは正常に動作しますが、実際にはどのように管理されているのか理解していないことに気付きました。その実現に導いたのは、次の一連の出来事です。

  • クライアントAとクライアントBは/etc/wireguard/wg0.confで定義されています。どちらも正しく接続されています。
  • カーネルを変更するパッケージをいくつか追加しました。これにより、modprobeなどに関する通常のメッセージがトリガーされました。すべてが問題ないことを確認するメッセージであるため、これらのメッセージにはまったく注意を向けませんでした。
  • 上記の手順が完了すると、クライアントAは引き続き接続され、クライアントBは接続されなくなります。クライアントCで試行していますが、接続します。

次にwg showを確認しましたが、ピアBはnotでした。ピアB(=クライアントB)は/etc/wireguard/wg0.confその後、何かが間違っているに違いありません。解決策:再起動します。

再起動クライアントAが自動的に再接続した後も、クライアントBは接続しません(切断状態であってもwg showには表示されません)。

そもそもどうやってそれを接続することができるのでしょうか? (自分自身に問う)。

最後のアイデア:

wg-quick down wg0
wg-quick up wg0

すべてが正常に戻り、クライアントAとクライアントBが接続します。

これは1つのことを意味します。wireguardの最初の(ブート後またはapt-which-changed-kernel後の)起動では、別の構成ファイルを使用する必要があります。これは考えられることです-クライアントAはかなり前にセットアップされ、クライアントBは最近(/etc/wireguard/wg0に)追加されただけなので、どこにセットアップしたか忘れてしまった可能性があります。

私は過去に一度、上記の問題を抱えていました。覚えて、2つのwg-quickコマンドで修正しましたが、これ以上議論する時間はありませんでした(クライアントBが接続に成功した方法を説明しています)。

私の質問:Ubuntu 18.04では、実際にwireguardを開始するサービスは何ですか(wireguard PPAからインストールされます)、そのサービスで使用される構成ファイルはどこですか? ?

3
WoJ

最終的に別のアプローチを使用したため、別の回答を追加します。これは[email protected]テンプレートに基づいています。

私はsystemctl enable [email protected]を介してそれを有効化(および開始、停止など)し、構成は/etc/wireguardにあります。それはWireguardの古典的なフォーマットを持っています。

設定を管理するために、優れた Wg Gen Web インターフェイスを使用します。

0
WoJ

Wireguardはsystemd-networkdから起動します。インストールにより、新しいインターフェイスwg0も作成されます。

構成は2つのファイルを介して行われます(somenameは、wg0wireguardなど、任意の名前にすることができます)(1)

  1. /etc/systemd/network/somename.netdev

このファイルは interface および peers の構成を保持します。通常の[WireGuard][WireGuardPeer]の代わりに[Interface][Peer]を使用します(参照 (1)

[NetDev]
Name = wg0
Kind = wireguard
Description = Wireguard

[WireGuard]
ListenPort = 51820
PrivateKey = <your private key>

# laptop
[WireGuardPeer]
PublicKey = h/trC+5Z8qbGBJtroYITQGMNUn5XQZ/JRqVR3iIH5Ro=
AllowedIPs = 192.168.20.2/32
  1. /etc/systemd/network/somename.network

このファイルは、インターフェースのIP関連の構成を保持します(ここでは特にワイヤーガード関連のものはありません)。

[Match]
Name = wg0

[Network]
Address = 192.168.20.1/32

[Route]
Gateway = 192.168.20.1
Destination = 192.168.20.0/24

これらの構成ファイルはsystemctl [re]start systemd-networkdで読み取られます。


(1) さまざまなドキュメントで参照されている構成ファイル(/etc/wireguard/wg0)は、systemd-networkdでは使用されないことに注意してください。 wg-quickコマンドを実行した場合に使用されます。

@ Rinzwindsystemd-networkdとその構成ファイルを指しているおかげで、この回答はここにあります

2
WoJ