8.9. wg-quick サービスを使用した WireGuard サーバーの設定
/etc/wireguard/
ディレクトリーに設定ファイルを作成することで、WireGuard サーバーを設定できます。この方法を使用して、NetworkManager からサービスを独立して設定します。
この手順では、次の設定を前提としています。
サーバー
-
秘密鍵:
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 アドレスおよびサブネットマスク
手順
wireguard-tools
パッケージをインストールします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow dnf install wireguard-tools
# dnf install wireguard-tools
以下の内容で
/etc/wireguard/wg0.conf
ファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow [Interface] Address = 192.0.2.1/24, 2001:db8:1::1/32 ListenPort = 51820 PrivateKey = YFAnE0psgIdiAF7XR4abxiwVRnlMfeltxu10s/c4JXg= [Peer] PublicKey = bnwfQcC8/g2i4vvEqcRUM2e6Hi3Nskk6G9t4r26nFVM= AllowedIPs = 192.0.2.2, 2001:db8:1::2
[Interface] Address = 192.0.2.1/24, 2001:db8:1::1/32 ListenPort = 51820 PrivateKey = YFAnE0psgIdiAF7XR4abxiwVRnlMfeltxu10s/c4JXg= [Peer] PublicKey = bnwfQcC8/g2i4vvEqcRUM2e6Hi3Nskk6G9t4r26nFVM= AllowedIPs = 192.0.2.2, 2001:db8:1::2
[Interface]
セクションでは、サーバー上のインターフェイスの WireGuard 設定を説明します。-
Address
: サーバーのトンネル IP アドレスをコンマで区切ったリスト。 -
PrivateKey
: サーバーの秘密鍵。 ListenPort
: WireGuard が着信 UDP 接続をリッスンするポート。着信 WireGuard 接続を受信するホストでは、常に固定ポート番号を設定してください。ポートを設定しないと、WireGuard は
wg0
インターフェイスをアクティブにするたびにランダムに空きポートを使用します。
-
各
[Peer]
セクションでは、1 つのクライアントの設定を説明します。-
PublicKey
: クライアントの公開鍵。 -
AllowedIPs
: このサーバーにデータを送信できるクライアントのトンネル IP アドレス。
-
WireGuard 接続を有効にして起動します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow systemctl enable --now wg-quick@wg0
# systemctl enable --now wg-quick@wg0
systemd インスタンス名は、
.conf
接尾辞のない/etc/wireguard/
ディレクトリー内の設定ファイルの名前と一致する必要があります。このサービスは、仮想ネットワークインターフェイスにもこの名前を使用します。- DHCP またはステートレスアドレス自動設定 (SLAAC) が設定されたネットワークでこのホストを使用すると、接続がリダイレクトされる危険性があります。詳細と軽減策については、接続がトンネルを回避しないように VPN 接続を専用ルーティングテーブルに割り当てる を参照してください。
検証
wg0
デバイスのインターフェイス設定を表示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow wg show wg0
# wg show wg0 interface: wg0 public key: UtjqCJ57DeAscYKRfp7cFGiQqdONRn69u249Fa4O6BE= private key: (hidden) listening port: 51820 peer: bnwfQcC8/g2i4vvEqcRUM2e6Hi3Nskk6G9t4r26nFVM= allowed ips: 192.0.2.2/32, 2001:db8:1::2/128
出力に秘密鍵を表示するには、
WG_HIDE_KEYS=never wg show wg0
コマンドを使用します。wg0
デバイスの IP 設定を表示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow ip address show wg0
# ip address show wg0 20: wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1000 link/none inet 192.0.2.1/24 scope global wg0 valid_lft forever preferred_lft forever inet6 2001:db8:1::1/32 scope global valid_lft forever preferred_lft forever
関連情報
-
システム上の
wg(8)
およびwg-quick(8)
man ページ