8.17. wg-quick サービスを使用した WireGuard クライアントの設定
/etc/wireguard/
ディレクトリーに設定ファイルを作成することで、WireGuard クライアントを設定できます。この方法を使用して、NetworkManager からサービスを独立して設定します。
この手順では、次の設定を前提としています。
クライアント:
-
秘密鍵:
aPUcp5vHz8yMLrzk8SsDyYnV33IhE/k20e52iKJFV0A=
-
トンネル IPv4 アドレス:
192.0.2.2/24
-
トンネル IPv6 アドレス:
2001:db8:1::2/32
-
秘密鍵:
サーバー
-
公開鍵:
UtjqCJ57DeAscYKRfp7cFGiQqdONRn69u249Fa4O6BE=
-
トンネル IPv4 アドレス:
192.0.2.1/24
-
トンネル IPv6 アドレス:
2001:db8:1::1/32
-
公開鍵:
前提条件
- サーバーとクライアントの両方に公開鍵と秘密鍵を生成している。
以下の情報を把握している。
- クライアントの秘密鍵
- クライアントの静的トンネルの IP アドレスとサブネットマスク
- サーバーの公開鍵
- サーバーの静的トンネル IP アドレスおよびサブネットマスク
手順
wireguard-tools
パッケージをインストールします。# dnf install wireguard-tools
以下の内容で
/etc/wireguard/wg0.conf
ファイルを作成します。[Interface] Address = 192.0.2.2/24, 2001:db8:1::2/32 PrivateKey = aPUcp5vHz8yMLrzk8SsDyYnV33IhE/k20e52iKJFV0A= [Peer] PublicKey = UtjqCJ57DeAscYKRfp7cFGiQqdONRn69u249Fa4O6BE= AllowedIPs = 192.0.2.1, 2001:db8:1::1 Endpoint = server.example.com:51820 PersistentKeepalive = 20
[Interface]
セクションでは、クライアントのインターフェイスの WireGuard 設定を説明します。-
Address
:クライアントのトンネル IP アドレスをコンマで区切ったリストです。 -
PrivateKey
:クライアントの秘密鍵。
-
[Peer]
セクションでは、サーバーの設定を説明します。-
PublicKey
:サーバーの公開鍵。 AllowedIPs
:このクライアントにデータを送信できる IP アドレス。たとえば、このパラメーターを次のように設定します。- サーバーのトンネル IP アドレスに設定すると、そのサーバーのみがこのクライアントと通信できるようになります。上記の例の値を使用すると、そのように設定されます。
-
リモートの IPv4 アドレスおよび IPv6 アドレスが、このクライアントと通信できるように許可する
0.0.0.0/0, ::/0
この設定を使用して、すべてのトラフィックをトンネル経由でルーティングし、WireGuard サーバーをデフォルトゲートウェイとして使用します。
-
Endpoint
:サーバーのホスト名または IP アドレスとポートを設定します。クライアントはこの情報を使用して接続を確立します。 -
オプションの
persistent-keepalive
パラメーターは、WireGuard がサーバーにキープアライブパケットを送信する間隔を秒単位で定義します。ネットワークアドレス変換 (NAT) を使用するネットワークでクライアントを使用する場合、またはしばらく非アクティブにした後にファイアウォールが UDP 接続を閉じる場合は、このパラメーターを設定します。
-
WireGuard 接続を有効にして起動します。
# systemctl enable --now wg-quick@wg0
systemd インスタンス名は、
/etc/wireguard/
ディレクトリーの設定ファイル名に、.conf
の接尾辞を付けずに、同じ名前にする必要があります。このサービスは、仮想ネットワークインターフェイスにもこの名前を使用します。
検証
サーバーの IP アドレスの ping を実行します。
# ping 192.0.2.1 # ping6 2001:db8:1::1
wg0
デバイスのインターフェイス設定を表示します。# wg show wg0 interface: wg0 public key: bnwfQcC8/g2i4vvEqcRUM2e6Hi3Nskk6G9t4r26nFVM= private key: (hidden) listening port: 51820 peer: UtjqCJ57DeAscYKRfp7cFGiQqdONRn69u249Fa4O6BE= endpoint: server.example.com:51820 allowed ips: 192.0.2.1/32, 2001:db8:1::1/128 latest handshake: 1 minute, 41 seconds ago transfer: 824 B received, 1.01 KiB sent persistent keepalive: every 20 seconds
出力に秘密鍵を表示するには、
WG_HIDE_KEYS=never wg show wg0
コマンドを使用します。VPN トンネルを介してトラフィックを送信している場合は、
latest handshake
エントリーとtransfer
エントリーのみが含まれることに注意してください。wg0
デバイスの IP 設定を表示します。# ip address show wg0 10: wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1000 link/none inet 192.0.2.2/24 scope global wg0 valid_lft forever preferred_lft forever inet6 2001:db8:1::2/32 scope global valid_lft forever preferred_lft forever
関連情報
-
man ページの
wg(8)
-
wg-quick(8)
の man ページ