文書の表示以前のリビジョンバックリンク文書の先頭へ この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。 ====== WireGuard - SoftEther VPN ====== {{:linux:logo_of_wireguard.svg?400|WireGuard Logo}}\\ <WRAP minfont>[[https://commons.wikimedia.org/wiki/File:Logo_of_WireGuard.svg|File:Logo of WireGuard.svg - Wikimedia Commons]]</WRAP>\\ 本家: [[https://www.wireguard.com|WireGuard: fast, modern, secure VPN tunnel]]\\ ソースコード: [[https://www.wireguard.com/repositories/|Repositories - WireGuard]]\\ **WireGuard** は、フリーかつオープンソースのルーティング又はブリッジで安全なポイント・ツー・ポイント接続を作成するための技術である Virtual Private Network (VPN) の実装であり、アプリケーション及び通信プロトコルである。Linux カーネル内のモジュールとして実行され、IPsecやOpenVPNよりも優れた性能を目指している。WireGuardはJason A. Donenfeldによって書かれ、GNU GPL v2の下で配布されている。 ===== SoftEther VPN + WireGuard🤤 ===== <html><style>div.group div.wrap_plus { margin: 1em 1.7em 1em 0; }</style></html> <WRAP group> <WRAP left>{{linux:softether_logo.jpg?200|SoftEther VPN Logo}}</WRAP> <WRAP left plus>**+**</WRAP> <WRAP left>{{:linux:logo_of_wireguard.svg?200|WireGuard Logo}}</WRAP> </WRAP> SoftEther VPN の WireGuard サポートは **2021/03/01** に [[https://github.com/SoftEtherVPN/SoftEtherVPN|SoftEther VPN (開発版)]] に取り込まれました。\\ **2022/02/04 現在**も、SoftEther VPN の WireGuard サポートは <wrap em>__Softether VPN (開発版) でのみの機能__</wrap>になります🤔\\ この機能を試すためには [[.:build|SoftEther VPN のビルド]] の手順で開発版の最新をビルドする必要がある😅\\ {{:linux:softether_vpn_and_wireguard_001.png?800|Commits 2021/03/01 · SoftEtherVPN/SoftEtherVPN}}\\ [[git>SoftEtherVPN/SoftEtherVPN/commits/master?before=1e604407af729fed3ba1cec1ac80ec99d8f26255+245&branch=master|Commits · SoftEtherVPN/SoftEtherVPN]]\\ [[git>SoftEtherVPN/SoftEtherVPN/issues/604|SoftEtherVPN - WireGuard integration. Possible? · Issue #604 · SoftEtherVPN/SoftEtherVPN]]\\ [[git>SoftEtherVPN/SoftEtherVPN/pull/1200|Implement support for WireGuard by davidebeatrici · Pull Request #1200 · SoftEtherVPN/SoftEtherVPN]]\\ ==== WireGuard Tools のインストール ==== WireGuard Tools には **wg**、**wg-quick** が含まれていますが、公開鍵/秘密鍵を作成する場合は **wg** コマンドがクライアント、サーバーの何れかにインストールされていれば作業できる🤔\\ 作業するマシンにインストールされていれば問題ないので、両方にインストールしておいても良い🤤\\ === サーバー上 (Linux) で WireGuard コマンドを使う === **wireguard-tools** をインストールする😉\\ <WRAP color_term> <WRAP color_command><code> $ sudo dnf install wireguard-tools </code></WRAP> <WRAP color_result_long><html><pre> メタデータの期限切れの最終確認: 2:48:27 時間前の 2022年06月21日 08時42分26秒 に実施しました。 依存関係が解決しました。 ======================================================================================================================== パッケージ アーキテクチャー バージョン リポジトリー サイズ ======================================================================================================================== インストール: wireguard-tools x86_64 1.0.20210914-2.fc36 fedora 118 k トランザクションの概要 ======================================================================================================================== インストール 1 パッケージ ダウンロードサイズの合計: 118 k インストール後のサイズ: 290 k これでよろしいですか? [y/N]: y パッケージのダウンロード: wireguard-tools-1.0.20210914-2.fc36.x86_64.rpm 1.1 MB/s | 118 kB 00:00 ------------------------------------------------------------------------------------------------------------------------ 合計 258 kB/s | 118 kB 00:00 トランザクションの確認を実行中 トランザクションの確認に成功しました。 トランザクションのテストを実行中 トランザクションのテストに成功しました。 トランザクションを実行中 準備 : 1/1 インストール中 : wireguard-tools-1.0.20210914-2.fc36.x86_64 1/1 scriptletの実行中: wireguard-tools-1.0.20210914-2.fc36.x86_64 1/1 検証 : wireguard-tools-1.0.20210914-2.fc36.x86_64 1/1 インストール済み: wireguard-tools-1.0.20210914-2.fc36.x86_64 完了しました! </pre></html></WRAP> </WRAP> <WRAP color_term> <WRAP color_command><code> $ wg --help </code></WRAP> <WRAP color_result><html><pre> Usage: wg <cmd> [<args>] Available subcommands: show: Shows the current configuration and device information showconf: Shows the current configuration of a given WireGuard interface, for use with `setconf' set: Change the current configuration, add peers, remove peers, or change peers setconf: Applies a configuration file to a WireGuard interface addconf: Appends a configuration file to a WireGuard interface syncconf: Synchronizes a configuration file to a WireGuard interface genkey: Generates a new private key and writes it to stdout genpsk: Generates a new preshared key and writes it to stdout pubkey: Reads a private key from stdin and writes a public key to stdout You may pass `--help' to any of these subcommands to view usage. </pre></html></WRAP> </WRAP> === Windows で WireGuard コマンドを使う === [[:windows:scoop|Scoop]] によるインストール\\ **nonportable バケットの追加**\\ <WRAP color_term> <WRAP color_command><html><pre> <b class=GRN>$</b> <b class=HIY>scoop</b> bucket add nonportable </pre></html></WRAP> <WRAP color_result><html><pre> Checking repo... ok <b class=GRN>The nonportable bucket was added successfully.</b> </pre></html></WRAP> </WRAP> **wireguard-np のインストール**\\ <WRAP color_term> <WRAP color_command><html><pre> <b class=GRN>$</b> <b class=HIY>sudo</b> scoop install wireguard-np </pre></html></WRAP> <WRAP color_result><html><pre> Installing 'wireguard-np' (0.5.3) [64bit] wireguard-amd64-0.5.3.msi (2.7 MB) [==========================================================================] 100% Checking hash of <b class=CYN>wireguard-amd64-0.5.3.msi</b> ... <b class=GRN>ok.</b> Running installer script... Linking ~\scoop\apps\wireguard-np\current => ~\scoop\apps\wireguard-np\0.5.3 <b class=GRN>'wireguard-np' (0.5.3) was installed successfully!</b> </pre></html></WRAP> </WRAP> インストーラによりシステム環境変数の Path に WireGuard のインストール先が追加されて wg コマンドにパスが通されている。\\ ※ 再起動なしで最新 Path を PowerShell の $env:Path に反映させる。\\ <WRAP color_term> <WRAP color_command><html><pre> <b class=GRN>$</b> $env:Path = [Environment]::SetEnvironmentVariable("Path", $env:Path + ";" + $env:ProgramW6432 + "\WireGuard", "User") </pre></html></WRAP> または <WRAP color_command><html><pre> <b class=GRN>$</b> $env:Path = [System.Environment]::GetEnvironmentVariable("Path", "Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path", "User") </pre></html></WRAP> </WRAP> wg コマンドの動作確認。\\ <WRAP color_term> <WRAP color_command><html><pre> <b class=GRN>$</b> <b class=HIY>wg</b> <b class=HIK>--help</b> </pre></html></WRAP> <WRAP color_result><html><pre> Usage: C:\Program Files\WireGuard\wg.exe <cmd> [<args>] Available subcommands: show: Shows the current configuration and device information showconf: Shows the current configuration of a given WireGuard interface, for use with `setconf' set: Change the current configuration, add peers, remove peers, or change peers setconf: Applies a configuration file to a WireGuard interface addconf: Appends a configuration file to a WireGuard interface syncconf: Synchronizes a configuration file to a WireGuard interface genkey: Generates a new private key and writes it to stdout genpsk: Generates a new preshared key and writes it to stdout pubkey: Reads a private key from stdin and writes a public key to stdout You may pass `--help' to any of these subcommands to view usage. </pre></html></WRAP> </WRAP> ==== vpncmd が WireGuard に対応していることを確認する ==== <WRAP color_term> <WRAP color_command><code> $ vpncmd localhost:5555 /server </code></WRAP> <WRAP color_result_long><html><pre> vpncmd コマンド - SoftEther VPN Developer Edition コマンドライン管理ユーティリティ SoftEther VPN コマンドライン管理ユーティリティ (vpncmd コマンド) Developer Edition Version 5.02 Build 5180 (Japanese) Compiled 2022/06/20 20:24:15 by tomoyan at skv001.monsters-g.com Copyright (c) all contributors on SoftEther VPN project in GitHub. Copyright (c) Daiyuu Nobori, SoftEther Project at University of Tsukuba, and SoftEther Corporation. All rights reserved. パスワード: ******************** <b class=YEL><- 管理パスワードを入力</b> VPN Server "localhost" (ポート 5555) に接続しました。 VPN Server 全体の管理権限があります。 VPN Server>help <b class=YEL><- コマンドを入力</b> 下記の 215 個のコマンドが使用できます: About - バージョン情報の表示 AcAdd - 接続元 IP 制限リストにルールを追加 (IPv4) AcAdd6 - 接続元 IP 制限リストにルールを追加 (IPv6) AcDel - 接続元 IP 制限リスト内のルールの削除 AcList - 接続元 IP 制限リストのルール一覧の取得 AccessAdd - アクセスリストへのルールの追加 (IPv4) AccessAdd6 - アクセスリストへのルールの追加 (IPv6) AccessAddEx - アクセスリストへのルールの追加 (IPv4, 遅延・ジッタ・パケットロス設定可能) AccessAddEx6 - アクセスリストへのルールの追加 (IPv6, 遅延・ジッタ・パケットロス設定可能) AccessDelete - アクセスリストからルールを削除 AccessDisable - アクセスリストのルールの無効化 AccessEnable - アクセスリストのルールの有効化 AccessList - アクセスリストのルール一覧の取得 AdminOptionList - 仮想 HUB 管理オプションの一覧の取得 AdminOptionSet - 仮想 HUB 管理オプションの値の設定 BridgeCreate - ローカルブリッジ接続の作成 BridgeDelete - ローカルブリッジ接続の削除 BridgeDeviceList - ローカルブリッジに使用できる LAN カード一覧の取得 BridgeList - ローカルブリッジ接続の一覧の取得 CAAdd - 信頼する証明機関の証明書の追加 CADelete - 信頼する証明機関の証明書の削除 CAGet - 信頼する証明機関の証明書の取得 CAList - 信頼する証明機関の証明書一覧の取得 Caps - サーバーの機能・能力一覧の取得 CascadeAnonymousSet - カスケード接続のユーザー認証の種類を匿名認証に設定 CascadeCertGet - カスケード接続に用いるクライアント証明書の取得 CascadeCertSet - カスケード接続のユーザー認証の種類をクライアント証明書認証に設定 CascadeCompressDisable - カスケード接続の通信時のデータ圧縮の無効化 CascadeCompressEnable - カスケード接続の通信時のデータ圧縮の有効化 CascadeCreate - 新しいカスケード接続の作成 CascadeDefaultCADisable - システム証明書ストアからの証明書の信頼を無効化 CascadeDefaultCAEnable - システム証明書ストアからの証明書の信頼を有効化 CascadeDelete - カスケード接続の削除 CascadeDetailSet - カスケード接続の高度な通信設定の設定 CascadeEncryptDisable - カスケード接続の通信時の暗号化の無効化 CascadeEncryptEnable - カスケード接続の通信時の暗号化の有効化 CascadeGet - カスケード接続の設定の取得 CascadeHttpHeaderAdd - プロキシサーバー経由で接続する際のカスタム HTTP ヘッダーを追加 CascadeHttpHeaderDelete - プロキシサーバー経由で接続する際のカスタム HTTP ヘッダーを削除 CascadeHttpHeaderGet - プロキシサーバー経由で接続する際のカスタム HTTP ヘッダー一覧を取得 CascadeList - カスケード接続一覧の取得 CascadeOffline - カスケード接続のオフライン状態への設定 CascadeOnline - カスケード接続のオンライン状態への設定 CascadePasswordSet - カスケード接続のユーザー認証の種類をパスワード認証に設定 CascadePolicySet - カスケード接続セッションのセキュリティポリシーの設定 CascadeProxyHttp - カスケード接続の接続方法を HTTP プロキシサーバー経由接続に設定 CascadeProxyNone - カスケード接続の接続方法を直接 TCP/IP 接続に設定 CascadeProxySocks - カスケード接続の接続方法を SOCKS4 プロキシサーバー経由接続に設定 CascadeProxySocks5 - カスケード接続の接続方法を SOCKS4 プロキシサーバー経由接続に設定 CascadeRename - カスケード接続の名前の変更 CascadeServerCertDelete - カスケード接続のサーバー固有証明書の削除 CascadeServerCertDisable - カスケード接続のサーバー証明書の検証オプションの無効化 CascadeServerCertEnable - カスケード接続のサーバー証明書の検証オプションの有効化 CascadeServerCertGet - カスケード接続のサーバー固有証明書の取得 CascadeServerCertSet - カスケード接続のサーバー固有証明書の設定 CascadeSet - カスケード接続の接続先の設定 CascadeStatusGet - カスケード接続の現在の状態の取得 CascadeUsernameSet - カスケード接続の接続に使用するユーザー名の設定 Check - SoftEther VPN の動作が可能かどうかチェックする ClusterConnectionStatusGet - クラスタコントローラへの接続状態の取得 ClusterMemberCertGet - クラスタメンバの証明書の取得 ClusterMemberInfoGet - クラスタメンバの情報の取得 ClusterMemberList - クラスタメンバの一覧の取得 ClusterSettingController - VPN Server の種類をクラスタコントローラに設定 ClusterSettingGet - 現在の VPN Server のクラスタリング構成の取得 ClusterSettingMember - VPN Server の種類をクラスタメンバに設定 ClusterSettingStandalone - VPN Server の種類をスタンドアロンに設定 ConfigGet - VPN Server の現在のコンフィグレーションの取得 ConfigSet - VPN Server へのコンフィグレーションの書き込み ConnectionDisconnect - VPN Server に接続中の TCP コネクションの切断 ConnectionGet - VPN Server に接続中の TCP コネクションの情報の取得 ConnectionList - VPN Server に接続中の TCP コネクション一覧の取得 Crash - VPN Server / Bridge プロセスでエラーを発生させプロセスを強制終了する CrlAdd - 無効な証明書の追加 CrlDel - 無効な証明書の削除 CrlGet - 無効な証明書の取得 CrlList - 無効な証明書リストの一覧の取得 Debug - デバッグコマンドの実行 DhcpDisable - SecureNAT 機能の仮想 DHCP サーバー機能の無効化 DhcpEnable - SecureNAT 機能の仮想 DHCP サーバー機能の有効化 DhcpGet - SecureNAT 機能の仮想 DHCP サーバー機能の設定の取得 DhcpSet - SecureNAT 機能の仮想 DHCP サーバー機能の設定の変更 DhcpTable - SecureNAT 機能の仮想 DHCP サーバー機能のリーステーブルの取得 DynamicDnsGetStatus - ダイナミック DNS 機能の現在の状態の取得 DynamicDnsSetHostname - ダイナミック DNS ホスト名の設定 EtherIpClientAdd - EtherIP / L2TPv3 over IPsec サーバー機能のクライアントデバイスからの接続を受付けるための 接続設定の追加 EtherIpClientDelete - EtherIP / L2TPv3 over IPsec サーバー機能のクライアントデバイスからの接続を受付けるための 接続設定の削除 EtherIpClientList - EtherIP / L2TPv3 over IPsec サーバー機能のクライアントデバイスからの接続を受付けるための 接続設定の一覧表示 ExtOptionList - 仮想 HUB 拡張オプションの一覧の取得 ExtOptionSet - 仮想 HUB 管理オプションの値の設定 Flush - VPN Server / Bridge の未保存の設定データを設定ファイルに強制保存する GroupCreate - グループの作成 GroupDelete - グループの削除 GroupGet - グループ情報と所属しているユーザー一覧の取得 GroupJoin - グループにユーザーを追加 GroupList - グループ一覧の取得 GroupPolicyRemove - グループのセキュリティポリシーの削除 GroupPolicySet - グループのセキュリティポリシーの設定 GroupSet - グループ情報の設定 GroupUnjoin - グループからユーザーを削除 Hub - 管理する仮想 HUB の選択 HubCreate - 新しい仮想 HUB の作成 HubCreateDynamic - 新しいダイナミック仮想 HUB の作成 (クラスタリング用) HubCreateStatic - 新しいスタティック仮想 HUB の作成 (クラスタリング用) HubDelete - 仮想 HUB の削除 HubList - 仮想 HUB の一覧の取得 HubSetDynamic - 仮想 HUB の種類をダイナミック仮想 HUB に変更 HubSetStatic - 仮想 HUB の種類をスタティック仮想 HUB に変更 IPsecEnable - IPsec VPN サーバー機能の有効化 / 無効化 IPsecGet - IPsec VPN サーバー機能の現在の設定の取得 IpDelete - IP アドレステーブルエントリの削除 IpTable - IP アドレステーブルデータベースの取得 KeepDisable - インターネット接続の維持機能の無効化 KeepEnable - インターネット接続の維持機能の有効化 KeepGet - インターネット接続の維持機能の取得 KeepSet - インターネット接続の維持機能の設定 LicenseAdd - 新しいライセンスキーの登録 LicenseDel - 登録されているライセンスの削除 LicenseList - 登録されているライセンス一覧の取得 LicenseStatus - 現在の VPN Server のライセンス状態の取得 ListenerCreate - TCP リスナーの追加 ListenerDelete - TCP リスナーの削除 ListenerDisable - TCP リスナーの動作停止 ListenerEnable - TCP リスナーの動作開始 ListenerList - TCP リスナー一覧の取得 LogDisable - セキュリティログまたはパケットログの無効化 LogEnable - セキュリティログまたはパケットログの有効化 LogFileGet - ログファイルのダウンロード LogFileList - ログファイル一覧の取得 LogGet - 仮想 HUB のログ保存設定の取得 LogPacketSaveType - パケットログに保存するパケットの種類と保存内容の設定 LogSwitchSet - ログファイルの切り替え周期の設定 MacDelete - MAC アドレステーブルエントリの削除 MacTable - MAC アドレステーブルデータベースの取得 MakeCert - 新しい X.509 証明書と秘密鍵の作成 (1024 bit) MakeCert2048 - 新しい X.509 証明書と秘密鍵の作成 (2048 bit) NatDisable - SecureNAT 機能の仮想 NAT 機能の無効化 NatEnable - SecureNAT 機能の仮想 NAT 機能の有効化 NatGet - SecureNAT 機能の仮想 NAT 機能の設定の取得 NatSet - SecureNAT 機能の仮想 NAT 機能の設定の変更 NatTable - SecureNAT 機能の仮想 NAT 機能のセッションテーブルの取得 Offline - 仮想 HUB をオフラインにする Online - 仮想 HUB をオンラインにする OpenVpnMakeConfig - OpenVPN 互換サーバー機能に接続可能なサンプルの OpenVPN 設定ファイルの生成 OptionsGet - 仮想 HUB のオプション設定の取得 PolicyList - セキュリティポリシーの種類と設定可能値の一覧を表示 PortsUDPGet - サーバーにおける着信 UDP ポートの一覧を表示します。 PortsUDPSet - サーバーが着信を受付ける UDP ポート番号の一覧を設定します。 ProtoOptionsGet - 指定されたプロトコル固有のオプション値を表示します。 ProtoOptionsSet - 特定のプロトコル固有のオプション値を設定します。 RadiusServerDelete - ユーザー認証に使用する RADIUS サーバー設定の削除 RadiusServerGet - ユーザー認証に使用する RADIUS サーバー設定の取得 RadiusServerSet - ユーザー認証に使用する RADIUS サーバーの設定 Reboot - VPN Server サービスの再起動 RouterAdd - 新しい仮想レイヤ 3 スイッチの定義 RouterDelete - 仮想レイヤ 3 スイッチの削除 RouterIfAdd - 仮想レイヤ 3 スイッチへの仮想インターフェイスの追加 RouterIfDel - 仮想レイヤ 3 スイッチの仮想インターフェイスの削除 RouterIfList - 仮想レイヤ 3 スイッチに登録されているインターフェイス一覧の取得 RouterList - 仮想レイヤ 3 スイッチ一覧の取得 RouterStart - 仮想レイヤ 3 スイッチの動作の開始 RouterStop - 仮想レイヤ 3 スイッチの動作の停止 RouterTableAdd - 仮想レイヤ 3 スイッチへのルーティングテーブルエントリの追加 RouterTableDel - 仮想レイヤ 3 スイッチのルーティングテーブルエントリの削除 RouterTableList - 仮想レイヤ 3 スイッチのルーティングテーブル一覧の取得 SecureNatDisable - 仮想 NAT および DHCP サーバー機能 (SecureNAT 機能) の無効化 SecureNatEnable - 仮想 NAT および DHCP サーバー機能 (SecureNAT 機能) の有効化 SecureNatHostGet - SecureNAT 機能の仮想ホストのネットワークインターフェイス設定の取得 SecureNatHostSet - SecureNAT 機能の仮想ホストのネットワークインターフェイス設定の変更 SecureNatStatusGet - 仮想 NAT および DHCP サーバー機能 (SecureNAT 機能) の動作状況の取得 ServerCertGet - VPN Server の SSL 証明書の取得 ServerCertRegenerate - 指定された CN (Common Name) を持つ自己署名証明書を新たに作成し VPN Server に登録 ServerCertSet - VPN Server の SSL 証明書と秘密鍵の設定 ServerCipherGet - VPN 通信で使用される暗号化アルゴリズムの取得 ServerCipherSet - VPN 通信で使用される暗号化アルゴリズムの設定 ServerInfoGet - サーバー情報の取得 ServerKeyGet - VPN Server の SSL 証明書の秘密鍵の取得 ServerPasswordSet - VPN Server の管理者パスワードの設定 ServerStatusGet - サーバーの現在の状態の取得 SessionDisconnect - セッションの切断 SessionGet - セッション情報の取得 SessionList - 接続中のセッション一覧の取得 SetEnumAllow - 仮想 HUB の匿名ユーザーへの列挙の許可設定 SetEnumDeny - 仮想 HUB の匿名ユーザーへの列挙の禁止設定 SetHubPassword - 仮想 HUB の管理パスワードを設定する SetMaxSession - 仮想 HUB の最大同時接続セッション数を設定する SetStaticNetwork - 仮想 HUB のスタティック IPv4 ネットワークパラメータを設定する StatusGet - 仮想 HUB の現在の状況の取得 SyslogDisable - syslog 送信機能の無効化 SyslogEnable - syslog 送信機能の設定 SyslogGet - syslog 送信機能の取得 TrafficClient - 通信スループット測定ツールクライアントの実行 TrafficServer - 通信スループット測定ツールサーバーの実行 UserAnonymousSet - ユーザーの認証方法を匿名認証に設定 UserCertGet - 固有証明書認証のユーザーの登録されている証明書の取得 UserCertSet - ユーザーの認証方法を固有証明書認証に設定し証明書を設定 UserCreate - ユーザーの作成 UserDelete - ユーザーの削除 UserExpiresSet - ユーザーの有効期限の設定 UserGet - ユーザー情報の取得 UserList - ユーザー一覧の取得 UserNTLMSet - ユーザーの認証方法を NT ドメイン認証に設定 UserPasswordSet - ユーザーの認証方法をパスワード認証に設定しパスワードを設定 UserPolicyRemove - ユーザーのセキュリティポリシーの削除 UserPolicySet - ユーザーのセキュリティポリシーの設定 UserRadiusSet - ユーザーの認証方法を RADIUS 認証に設定 UserSet - ユーザー情報の変更 UserSignedSet - ユーザーの認証方法を署名済み証明書認証に設定 VpnAzureGetStatus - VPN Azure 機能の現在の状態の取得 VpnAzureSetEnable - VPN Azure 機能の有効化 / 無効化 VpnOverIcmpDnsEnable - VPN over ICMP / VPN over DNS サーバー機能を有効化 / 無効化 VpnOverIcmpDnsGet - 現在の VPN over ICMP / VPN over DNS サーバー機能の設定を取得 WgkAdd - WireGuard 公開鍵の追加 WgkDelete - WireGuard 公開鍵の削除 WgkEnum - Wireguard 公開鍵一覧の取得 それぞれのコマンドの使用方法については、"コマンド名 ?" と入力するとヘルプが表示されます。 コマンドは正常に終了しました。 VPN Server> </pre></html></WRAP> 以下のコマンドが追加されていることを確認する🤤\\ <WRAP color_result><html><pre> ... SetStaticNetwork - 仮想 HUB のスタティック IPv4 ネットワークパラメータを設定す る ... WgkAdd - WireGuard 公開鍵の追加 WgkDelete - WireGuard 公開鍵の削除 WgkEnum - Wireguard 公開鍵一覧の取得 </pre></html></WRAP> </WRAP> ==== クライアント公開鍵・秘密鍵の生成 ==== 秘密鍵は表示せずに **wgclient.key** ファイルに保存し、公開鍵は表示しつつ **wgclient.pub** ファイルにも保存する。\\ <WRAP color_term> <WRAP color_command><code> $ wg genkey | tee wgclient.key | wg pubkey | tee wgclient.pub </code></WRAP> <WRAP color_result><html><pre> kOHhTudkiKHHG/6x57FQD5cjft8IjeE773rferdP2iE= </pre></html></WRAP> 説明① - **wg genkey** コマンドは秘密鍵を生成する。\\ <WRAP color_command><code> $ wg genkey </code></WRAP> <WRAP color_result><html><pre> UJPyUEods1vy/d58w5M0YYB8yza0sBWTC+QUBH6TKVo= </pre></html></WRAP> 説明② - **tee wgclient.key** コマンドは標準出力に出力しつつ **wgclient.key** ファイルにも保存する。\\ <WRAP color_command><code> $ wg genkey | tee wgclient.key </code></WRAP> <WRAP color_result><html><pre> UJPyUEods1vy/d58w5M0YYB8yza0sBWTC+QUBH6TKVo= </pre></html></WRAP> 説明③ - **wg pubkey** コマンドはリダイレクト(秘密鍵は表示されない)で入力された秘密鍵から公開鍵を生成して標準出力に出力する。\\ <WRAP color_command><code> $ wg genkey | tee wgclient.key | wg pubkey </code></WRAP> <WRAP color_result><html><pre> kOHhTudkiKHHG/6x57FQD5cjft8IjeE773rferdP2iE= </pre></html></WRAP> 説明④ - **tee wgclient.pub** コマンドは標準出力に公開鍵を表示しつつ **wgclient.pub** ファイルにも保存する。\\ <WRAP color_command><code> $ wg genkey | tee wgclient.key | wg pubkey | tee wgclient.pub </code></WRAP> <WRAP color_result><html><pre> kOHhTudkiKHHG/6x57FQD5cjft8IjeE773rferdP2iE= </pre></html></WRAP> </WRAP> ==== クライアント公開鍵をサーバーに登録(WgkAdd) ==== <WRAP color_term> <WRAP color_command><code> $ vpncmd localhost:5555 /server /cmd WgkAdd --help </code></WRAP> <WRAP color_result><html><pre> vpncmd コマンド - SoftEther VPN Developer Edition コマンドライン管理ユーティリティ SoftEther VPN コマンドライン管理ユーティリティ (vpncmd コマンド) Developer Edition Version 5.02 Build 5180 (Japanese) Compiled 2022/06/20 20:24:15 by tomoyan at skv001.monsters-g.com Copyright (c) all contributors on SoftEther VPN project in GitHub. Copyright (c) Daiyuu Nobori, SoftEther Project at University of Tsukuba, and SoftEther Corporation. All rights reserved. パスワード: ******************** VPN Server "localhost" (ポート 5555) に接続しました。 VPN Server 全体の管理権限があります。 VPN Server>WgkAdd --help WgkAdd コマンド - WireGuard 公開鍵の追加 コマンド "WgkAdd" のヘルプ [目的] WireGuard 公開鍵の追加 [説明] 新しい WireGuard 公開鍵をサーバーに追加します。 公開鍵を追加すると、関連付けたユーザーとして仮想 HUB に WireGuard クライアントが接続できるようになります。 このコマンドを実行するには、VPN Server の管理者権限が必要です。 [使用方法] WgkAdd [key] [/HUB:hub] [/USER:user] [パラメータ] key - 新しく追加する WireGuard 公開鍵を指定します。追加しようとしている鍵が公開鍵であることを確認してください。 /HUB - 公開鍵に関連付ける仮想ハブを指定します。 /USER - 指定された仮想 HUB 内で公開鍵に関連付けるユーザー名を指定します。 </pre></html></WRAP> </WRAP> <WRAP color_term> <WRAP color_command><code> $ vpncmd localhost:5555 /server /cmd WgkAdd kOHhTudkiKHHG/6x57FQD5cjft8IjeE773rferdP2iE= /HUB:VPN /USER:tomoyan </code></WRAP> <WRAP color_result><html><pre> vpncmd コマンド - SoftEther VPN Developer Edition コマンドライン管理ユーティリティ SoftEther VPN コマンドライン管理ユーティリティ (vpncmd コマンド) Developer Edition Version 5.02 Build 5180 (Japanese) Compiled 2022/06/20 20:24:15 by tomoyan at skv001.monsters-g.com Copyright (c) all contributors on SoftEther VPN project in GitHub. Copyright (c) Daiyuu Nobori, SoftEther Project at University of Tsukuba, and SoftEther Corporation. All rights reserved. パスワード: ******************** VPN Server "localhost" (ポート 5555) に接続しました。 VPN Server 全体の管理権限があります。 VPN Server>WgkAdd kOHhTudkiKHHG/6x57FQD5cjft8IjeE773rferdP2iE= /HUB:VPN /USER:tomoyan WgkAdd コマンド - WireGuard 公開鍵の追加 コマンドは正常に終了しました。 </pre></html></WRAP> もしくは...\\ <WRAP color_command><code> $ vpncmd localhost:5555 /server </code></WRAP> <WRAP color_result><html><pre> vpncmd コマンド - SoftEther VPN Developer Edition コマンドライン管理ユーティリティ SoftEther VPN コマンドライン管理ユーティリティ (vpncmd コマンド) Developer Edition Version 5.02 Build 5180 (Japanese) Compiled 2022/06/20 20:24:15 by tomoyan at skv001.monsters-g.com Copyright (c) all contributors on SoftEther VPN project in GitHub. Copyright (c) Daiyuu Nobori, SoftEther Project at University of Tsukuba, and SoftEther Corporation. All rights reserved. パスワード: ******************** VPN Server "localhost" (ポート 5555) に接続しました。 VPN Server 全体の管理権限があります。 VPN Server>WgkAdd WgkAdd コマンド - WireGuard 公開鍵の追加 公開鍵: kOHhTudkiKHHG/6x57FQD5cjft8IjeE773rferdP2iE= 関連付ける仮想 HUB の名前: VPN ユーザー名: tomoyan コマンドは正常に終了しました。 VPN Server>exit </pre></html></WRAP> </WRAP> ==== クライアント公開鍵一覧(WgkEnum) ==== <WRAP color_term> <WRAP color_command><code> $ vpncmd localhost:5555 /server /cmd WgkEnum --help </code></WRAP> <WRAP color_result><html><pre> vpncmd コマンド - SoftEther VPN Developer Edition コマンドライン管理ユーティリティ SoftEther VPN コマンドライン管理ユーティリティ (vpncmd コマンド) Developer Edition Version 5.02 Build 5180 (Japanese) Compiled 2022/06/20 20:24:15 by tomoyan at skv001.monsters-g.com Copyright (c) all contributors on SoftEther VPN project in GitHub. Copyright (c) Daiyuu Nobori, SoftEther Project at University of Tsukuba, and SoftEther Corporation. All rights reserved. パスワード: ******************** VPN Server "localhost" (ポート 5555) に接続しました。 VPN Server 全体の管理権限があります。 VPN Server>WgkEnum --help WgkEnum コマンド - Wireguard 公開鍵一覧の取得 コマンド "WgkEnum" のヘルプ [目的] Wireguard 公開鍵一覧の取得 [説明] 現在サーバーに登録されている WireGuard 公開鍵の一覧を取得します。 WgkAdd コマンドで公開鍵の追加を、WgkDelete コマンドで公開鍵の削除を行うことができます。 このコマンドを実行するには、VPN Server の管理者権限が必要です。 [使用方法] WgkEnum </pre></html></WRAP> </WRAP> <WRAP color_term> <WRAP color_command><code> $ vpncmd localhost:5555 /server /cmd WgkEnum </code></WRAP> <WRAP color_result><html><pre> vpncmd コマンド - SoftEther VPN Developer Edition コマンドライン管理ユーティリティ SoftEther VPN コマンドライン管理ユーティリティ (vpncmd コマンド) Developer Edition Version 5.02 Build 5180 (Japanese) Compiled 2022/06/20 20:24:15 by tomoyan at skv001.monsters-g.com Copyright (c) all contributors on SoftEther VPN project in GitHub. Copyright (c) Daiyuu Nobori, SoftEther Project at University of Tsukuba, and SoftEther Corporation. All rights reserved. パスワード: ******************** VPN Server "localhost" (ポート 5555) に接続しました。 VPN Server 全体の管理権限があります。 VPN Server>WgkEnum WgkEnum コマンド - Wireguard 公開鍵一覧の取得 公開鍵 |仮想 HUB 名|ユーザー名 --------------------------------------------+-----------+---------- kOHhTudkiKHHG/6x57FQD5cjft8IjeE773rferdP2iE=|VPN |tomoyan コマンドは正常に終了しました。 </pre></html></WRAP> </WRAP> ==== クライアント公開鍵をサーバーから削除(WgkDelete) ==== <WRAP color_term> <WRAP color_command><code> $ vpncmd localhost:5555 /server /cmd WgkDelete --help </code></WRAP> <WRAP color_result><html><pre> vpncmd コマンド - SoftEther VPN Developer Edition コマンドライン管理ユーティリティ SoftEther VPN コマンドライン管理ユーティリティ (vpncmd コマンド) Developer Edition Version 5.02 Build 5180 (Japanese) Compiled 2022/06/20 20:24:15 by tomoyan at skv001.monsters-g.com Copyright (c) all contributors on SoftEther VPN project in GitHub. Copyright (c) Daiyuu Nobori, SoftEther Project at University of Tsukuba, and SoftEther Corporation. All rights reserved. パスワード: ******************** VPN Server "localhost" (ポート 5555) に接続しました。 VPN Server 全体の管理権限があります。 VPN Server>WgkDelete --help WgkDelete コマンド - WireGuard 公開鍵の削除 コマンド "WgkDelete" のヘルプ [目的] WireGuard 公開鍵の削除 [説明] サーバーに登録された WireGuard 公開鍵を削除します。 公開鍵を削除すると WireGuard クライアントは仮想 HUB に接続できなくなります。 このコマンドを実行するには、VPN Server の管理者権限が必要です。 [使用方法] WgkDelete [key] [パラメータ] key - 削除する WireGuard 公開鍵を指定します。 </pre></html></WRAP> </WRAP> <WRAP color_term> <WRAP color_command><code> $ vpncmd localhost:5555 /server /cmd WgkDelete kOHhTudkiKHHG/6x57FQD5cjft8IjeE773rferdP2iE= </code></WRAP> <WRAP color_result><html><pre> vpncmd コマンド - SoftEther VPN Developer Edition コマンドライン管理ユーティリティ SoftEther VPN コマンドライン管理ユーティリティ (vpncmd コマンド) Developer Edition Version 5.02 Build 5180 (Japanese) Compiled 2022/06/20 20:24:15 by tomoyan at skv001.monsters-g.com Copyright (c) all contributors on SoftEther VPN project in GitHub. Copyright (c) Daiyuu Nobori, SoftEther Project at University of Tsukuba, and SoftEther Corporation. All rights reserved. パスワード: ******************** VPN Server "localhost" (ポート 5555) に接続しました。 VPN Server 全体の管理権限があります。 VPN Server>WgkDel kOHhTudkiKHHG/6x57FQD5cjft8IjeE773rferdP2iE= WgkDelete コマンド - WireGuard 公開鍵の削除 コマンドは正常に終了しました。 </pre></html></WRAP> </WRAP> ==== クライアントの接続に必要なサーバーの公開鍵・事前共通鍵 ==== サーバーの WireGuard の設定を調べる。\\ <WRAP color_term> <WRAP color_command><code> $ sudo grep -3 -P "PresharedKey" /usr/local/libexec/softether/vpnserver/vpn_server.config </code></WRAP> <WRAP color_result><html><pre> declare WireGuard { bool Enabled true string PresharedKey LejepJw9wyHqewP6UYIFJLeR+TMgvMKbMQ/THZ3i0gg= string <b class=RED>PrivateKey</b> <b class=DiYE>YK7GR6jznS7nVtOaEldrr6iAMjrREKzWOn6NBcprHmc=</b> } } </pre></html></WRAP> </WRAP> 公開鍵は秘密鍵(PrivateKey)から **wg pubkey** コマンドで生成する。\\ <WRAP color_term> <WRAP color_command><html><pre> $ echo <b class=DiYE>YK7GR6jznS7nVtOaEldrr6iAMjrREKzWOn6NBcprHmc=</b> | wg pubkey </pre></html></WRAP> <WRAP color_result><html><pre> BwXr25M3RARwvEWkFkzyHwd4hmhJ4qv7+w+YUrLV0XU= </pre></html></WRAP> </WRAP> 事前共通鍵(PresharedKey)はサーバーの WireGuard の設定をそのまま利用する。\\ <WRAP color_term> <WRAP color_result><html><pre> LejepJw9wyHqewP6UYIFJLeR+TMgvMKbMQ/THZ3i0gg= </pre></html></WRAP> </WRAP> ==== qrencode ==== <WRAP color_term> <WRAP color_command><code> $ sudo dnf install qrencode </code></WRAP> <WRAP color_result><html><pre> メタデータの期限切れの最終確認: 0:49:40 時間前の 2022年06月21日 12時12分23秒 に実施しました。 依存関係が解決しました。 ======================================================================================================================== パッケージ アーキテクチャー バージョン リポジトリー サイズ ======================================================================================================================== インストール: <b class=GRN>qrencode</b> x86_64 4.1.1-2.fc36 fedora 25 k トランザクションの概要 ======================================================================================================================== インストール 1 パッケージ ダウンロードサイズの合計: 25 k インストール後のサイズ: 42 k これでよろしいですか? [y/N]: y パッケージのダウンロード: qrencode-4.1.1-2.fc36.x86_64.rpm 247 kB/s | 25 kB 00:00 ------------------------------------------------------------------------------------------------------------------------ 合計 53 kB/s | 25 kB 00:00 トランザクションの確認を実行中 トランザクションの確認に成功しました。 トランザクションのテストを実行中 トランザクションのテストに成功しました。 トランザクションを実行中 準備 : 1/1 インストール中 : qrencode-4.1.1-2.fc36.x86_64 1/1 scriptletの実行中: qrencode-4.1.1-2.fc36.x86_64 1/1 検証 : qrencode-4.1.1-2.fc36.x86_64 1/1 インストール済み: qrencode-4.1.1-2.fc36.x86_64 完了しました! </pre></html></WRAP> <WRAP color_command><code> $ qrencode -h </code></WRAP> <WRAP color_result><html><pre> qrencode version 4.1.1 Copyright (C) 2006-2017 Kentaro Fukuchi Usage: qrencode [-o FILENAME] [OPTION]... [STRING] Encode input data in a QR Code and save as a PNG or EPS image. -h display this message. --help display the usage of long options. -o FILENAME write image to FILENAME. If '-' is specified, the result will be output to standard output. If -S is given, structured symbols are written to FILENAME-01.png, FILENAME-02.png, ... (suffix is removed from FILENAME, if specified) -r FILENAME read input data from FILENAME. -s NUMBER specify module size in dots (pixels). (default=3) -l {LMQH} specify error correction level from L (lowest) to H (highest). (default=L) -v NUMBER specify the minimum version of the symbol. (default=auto) -m NUMBER specify the width of the margins. (default=4 (2 for Micro)) -d NUMBER specify the DPI of the generated PNG. (default=72) -t {PNG,PNG32,EPS,SVG,XPM,ANSI,ANSI256,ASCII,ASCIIi,UTF8,UTF8i,ANSIUTF8,ANSIUTF8i,ANSI256UTF8} specify the type of the generated image. (default=PNG) -S make structured symbols. Version number must be specified with '-v'. -k assume that the input text contains kanji (shift-jis). -c encode lower-case alphabet characters in 8-bit mode. (default) -i ignore case distinctions and use only upper-case characters. -8 encode entire data in 8-bit mode. -k, -c and -i will be ignored. -M encode in a Micro QR Code. -V display the version number and copyrights of the qrencode. [STRING] input data. If it is not specified, data will be taken from standard input. Try "qrencode --help" for more options. </pre></html></WRAP> </WRAP> ===== WireGuard の技術資料 ===== ==== NDSS 2017: WireGuard: Next Generation Kernel Network Tunnel ==== [[https://www.ndss-symposium.org/ndss2017/ndss-2017-programme/wireguard-next-generation-kernel-network-tunnel/|WireGuard: Next Generation Kernel Network Tunnel – NDSS Symposium]]\\ 訳: WireGuard:次世代カーネルネットワークトンネル - NDSSシンポジウム\\ **Slide**\\ [[https://www.ndss-symposium.org/wp-content/uploads/2017/09/ndss2017-04a_3-donenfeld_slides.pdf|WireGuard - Fast, Modern, Secure VPN Tunnel - NDSS 2017 Presentation]](PDF)\\ **Video**\\ <WRAP youtube><html> <iframe width="560" height="315" src="https://www.youtube.com/embed/hSKp4FBok_Q" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe> </html></WRAP>\\ ===== 参考文献 ===== [[https://w.vmeta.jp/tdiary/20210327.html|SoftEtherVPNがWireGuardプロトコルに対応したので試してみた - meta‘s blog(2021-03-27)]]\\ [[https://ja.softether.org/5-download/history|バージョン更新履歴 (ChangeLog) - SoftEther VPN プロジェクト]]\\ [[https://tech-mmmm.blogspot.com/2021/11/wireguardvpn.html|WireGuardを使って自宅にVPN接続する方法]]\\ [[so>questions/17794507/powershell-reload-the-path-in-powershell|console - Powershell: Reload the path in PowerShell - Stack Overflow]]\\ [[https://zenn.dev/hiroe_orz17/articles/f8f35075dea4cf|WireGuard概要まとめ]]\\ linux/softether_vpn/wireguard.txt 最終更新: 2023/03/14 06:17by ともやん