7.5. nmcli を使用した WireGuard サーバーの設定
NetworkManager で接続プロファイルを作成することで、WireGuard サーバーを設定できます。この方法を使用して、NetworkManager に WireGuard 接続を管理させます。
この手順では、次の設定を前提としています。
サーバー
-
秘密鍵:
YFAnE0psgIdiAF7XR4abxiwVRnlMfeltxu10s/c4JXg= -
トンネル IPv4 アドレス:
192.0.2.1/24 -
トンネル IPv6 アドレス:
2001:db8:1::1/32
-
秘密鍵:
クライアント:
-
Public key:
bnwfQcC8/g2i4vvEqcRUM2e6Hi3Nskk6G9t4r26nFVM= -
トンネル IPv4 アドレス:
192.0.2.2/24 -
トンネル IPv6 アドレス:
2001:db8:1::2/32
-
Public key:
前提条件
- サーバーとクライアントの両方に公開鍵と秘密鍵を生成している。
以下の情報を把握している。
- サーバーの秘密鍵
- クライアントの静的トンネルの IP アドレスとサブネットマスク
- クライアントの公開鍵
- サーバーの静的トンネル IP アドレスおよびサブネットマスク
手順
NetworkManager WireGuard 接続プロファイルを追加します。
nmcli connection add type wireguard con-name server-wg0 ifname wg0 autoconnect no
# nmcli connection add type wireguard con-name server-wg0 ifname wg0 autoconnect noCopy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドは、
server-wg0という名前のプロファイルを作成し、それに仮想インターフェイスwg0を割り当てます。設定を確定せずに接続を追加した後、接続が自動的に開始しないようにするには、autoconnectパラメーターを無効にします。サーバーのトンネル IPv4 アドレスおよびサブネットマスクを設定します。
nmcli connection modify server-wg0 ipv4.method manual ipv4.addresses 192.0.2.1/24
# nmcli connection modify server-wg0 ipv4.method manual ipv4.addresses 192.0.2.1/24Copy to Clipboard Copied! Toggle word wrap Toggle overflow サーバーのトンネル IPv6 アドレスおよびサブネットマスクを設定します。
nmcli connection modify server-wg0 ipv6.method manual ipv6.addresses 2001:db8:1::1/32
# nmcli connection modify server-wg0 ipv6.method manual ipv6.addresses 2001:db8:1::1/32Copy to Clipboard Copied! Toggle word wrap Toggle overflow サーバーの秘密鍵を接続プロファイルに追加します。
nmcli connection modify server-wg0 wireguard.private-key "YFAnE0psgIdiAF7XR4abxiwVRnlMfeltxu10s/c4JXg="
# nmcli connection modify server-wg0 wireguard.private-key "YFAnE0psgIdiAF7XR4abxiwVRnlMfeltxu10s/c4JXg="Copy to Clipboard Copied! Toggle word wrap Toggle overflow 着信 WireGuard 接続のポートを設定します。
nmcli connection modify server-wg0 wireguard.listen-port 51820
# nmcli connection modify server-wg0 wireguard.listen-port 51820Copy to Clipboard Copied! Toggle word wrap Toggle overflow 着信 WireGuard 接続を受信するホストでは、常に固定ポート番号を設定してください。ポートを設定しないと、WireGuard は
wg0インターフェイスをアクティブにするたびにランダムに空きポートを使用します。このサーバーとの通信を許可する各クライアントに、ピア設定を追加します。これらの設定は手動で追加する必要があります。
nmcliユーティリティーでは、対応する接続プロパティーの設定をサポートしていないためです。/etc/NetworkManager/system-connections/server-wg0.nmconnectionファイルを編集し、以下を追加します。[wireguard-peer.bnwfQcC8/g2i4vvEqcRUM2e6Hi3Nskk6G9t4r26nFVM=] allowed-ips=192.0.2.2;2001:db8:1::2;
[wireguard-peer.bnwfQcC8/g2i4vvEqcRUM2e6Hi3Nskk6G9t4r26nFVM=] allowed-ips=192.0.2.2;2001:db8:1::2;Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
[wireguard-peer.<public_key_of_the_client>]エントリーは、クライアントのピアセクションを定義し、セクション名にはクライアントの公開鍵が含まれます。 allowed-ipsパラメーターは、このサーバーへのデータ送信が許可されているクライアントのトンネル IP アドレスを設定します。各クライアントにセクションを追加します。
-
server-wg0接続プロファイルをリロードします。nmcli connection load /etc/NetworkManager/system-connections/server-wg0.nmconnection
# nmcli connection load /etc/NetworkManager/system-connections/server-wg0.nmconnectionCopy to Clipboard Copied! Toggle word wrap Toggle overflow
必要に応じて、自動的に起動するように接続を設定し、次のコマンドを実行します。
nmcli connection modify server-wg0 autoconnect yes
# nmcli connection modify server-wg0 autoconnect yesCopy to Clipboard Copied! Toggle word wrap Toggle overflow server-wg0接続を再アクティブ化します。nmcli connection up server-wg0
# nmcli connection up server-wg0Copy to Clipboard Copied! Toggle word wrap Toggle overflow - DHCP またはステートレスアドレス自動設定 (SLAAC) が設定されたネットワークでこのホストを使用すると、接続がリダイレクトされる危険性があります。詳細と軽減策は、接続がトンネルを回避しないように VPN 接続を専用ルーティングテーブルに割り当てる を参照してください。
検証
wg0デバイスのインターフェイス設定を表示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力に秘密鍵を表示するには、
WG_HIDE_KEYS=never wg show wg0コマンドを使用します。wg0デバイスの IP 設定を表示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow