文書の過去の版を表示しています。
WireGuard
本家: WireGuard: fast, modern, secure VPN tunnel
ソースコード: Repositories - WireGuard
WireGuard は、フリーかつオープンソースのルーティング又はブリッジで安全なポイント・ツー・ポイント接続を作成するための技術である Virtual Private Network (VPN) の実装であり、アプリケーション及び通信プロトコルである。Linux カーネル内のモジュールとして実行され、IPsecやOpenVPNよりも優れた性能を目指している。WireGuardはJason A. Donenfeldによって書かれ、GNU GPL v2の下で配布されている。
SoftEther VPN + WireGuard🤤
SoftEther VPN の WireGuard サポートは 2021/03/01 に SoftEther VPN (開発版) に取り込まれました。
2022/02/04 現在も、SoftEther VPN の WireGuard サポートは Softether VPN (開発版) でのみの機能になります🤔
この機能を試すためには SoftEther VPN のビルド の手順で開発版の最新をビルドする必要がある😅
Commits · SoftEtherVPN/SoftEtherVPN
SoftEtherVPN - WireGuard integration. Possible? · Issue #604 · SoftEtherVPN/SoftEtherVPN
Implement support for WireGuard by davidebeatrici · Pull Request #1200 · SoftEtherVPN/SoftEtherVPN
WireGuard コマンドのインストール
サーバー上で WireGuard コマンドを使う
wireguard-tools をインストールする😉
$ sudo dnf install wireguard-tools
メタデータの期限切れの最終確認: 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 完了しました!
$ wg --help
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.
Windows で WireGuard コマンドを使う
Scoop によるインストール
nonportable バケットの追加
$ scoop bucket add nonportable
Checking repo... ok The nonportable bucket was added successfully.
wireguard-np のインストール
$ sudo scoop install wireguard-np
Installing 'wireguard-np' (0.5.3) [64bit] wireguard-amd64-0.5.3.msi (2.7 MB) [==========================================================================] 100% Checking hash of wireguard-amd64-0.5.3.msi ... ok. Running installer script... Linking ~\scoop\apps\wireguard-np\current => ~\scoop\apps\wireguard-np\0.5.3 'wireguard-np' (0.5.3) was installed successfully!
インストーラによりシステム環境変数の Path に WireGuard のインストール先が追加されて wg コマンドにパスが通されている。
※ 再起動なしで最新 Path を PowerShell の $env:Path に反映させる。
$ $env:Path = [Environment]::SetEnvironmentVariable("Path", $env:Path + ";" + $env:ProgramW6432 + "\WireGuard", "User")
または
$ $env:Path = [System.Environment]::GetEnvironmentVariable("Path", "Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path", "User")
wg コマンドの動作確認。
$ wg --help
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.
vpncmd が WireGuard に対応していることを確認する
$ vpncmd localhost:5555 /server
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>help <- コマンドを入力 下記の 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>
以下のコマンドが追加されていることを確認する🤤
... SetStaticNetwork - 仮想 HUB のスタティック IPv4 ネットワークパラメータを設定す る ... WgkAdd - WireGuard 公開鍵の追加 WgkDelete - WireGuard 公開鍵の削除 WgkEnum - Wireguard 公開鍵一覧の取得
クライアント公開鍵・秘密鍵の生成
秘密鍵は表示せずに wgclient.key ファイルに保存し、公開鍵は表示しつつ wgclient.pub ファイルにも保存する。
$ wg genkey | tee wgclient.key | wg pubkey | tee wgclient.pub
kOHhTudkiKHHG/6x57FQD5cjft8IjeE773rferdP2iE=
説明① - wg genkey コマンドは秘密鍵を生成する。
$ wg genkey
UJPyUEods1vy/d58w5M0YYB8yza0sBWTC+QUBH6TKVo=
説明② - tee wgclient.key コマンドは標準出力に出力しつつ wgclient.key ファイルにも保存する。
$ wg genkey | tee wgclient.key
UJPyUEods1vy/d58w5M0YYB8yza0sBWTC+QUBH6TKVo=
説明③ - wg pubkey コマンドはリダイレクト(秘密鍵は表示されない)で入力された秘密鍵から公開鍵を生成して標準出力に出力する。
$ wg genkey | tee wgclient.key | wg pubkey
kOHhTudkiKHHG/6x57FQD5cjft8IjeE773rferdP2iE=
説明④ - tee wgclient.pub コマンドは標準出力に公開鍵を表示しつつ wgclient.pub ファイルにも保存する。
$ wg genkey | tee wgclient.key | wg pubkey | tee wgclient.pub
kOHhTudkiKHHG/6x57FQD5cjft8IjeE773rferdP2iE=
クライアント公開鍵をサーバーに登録
$ vpncmd localhost:5555 /server /cmd WgkAdd --help
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 内で公開鍵に関連付けるユーザー名を指定します。
$ vpncmd localhost:5555 /server /cmd WgkAdd kOHhTudkiKHHG/6x57FQD5cjft8IjeE773rferdP2iE= /HUB:VPN /USER:tomoyan
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 公開鍵の追加 コマンドは正常に終了しました。
もしくは…
$ vpncmd localhost:5555 /server
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
クライアント公開鍵をサーバーから削除
$ vpncmd localhost:5555 /server /cmd WgkDelete --help
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 公開鍵を指定します。
$ vpncmd localhost:5555 /server /cmd WgkDelete kOHhTudkiKHHG/6x57FQD5cjft8IjeE773rferdP2iE=
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 公開鍵の削除 コマンドは正常に終了しました。
クライアントの接続に必要なサーバーの公開鍵・事前共通鍵
サーバーの WireGuard の設定を調べる。
$ sudo grep -3 -P "PresharedKey" /usr/local/libexec/softether/vpnserver/vpn_server.config
declare WireGuard { bool Enabled true string PresharedKey LejepJw9wyHqewP6UYIFJLeR+TMgvMKbMQ/THZ3i0gg= string PrivateKey YK7GR6jznS7nVtOaEldrr6iAMjrREKzWOn6NBcprHmc= } }
公開鍵は秘密鍵(PrivateKey)から wg pubkey コマンドで生成する。
$ echo YK7GR6jznS7nVtOaEldrr6iAMjrREKzWOn6NBcprHmc= | wg pubkey
BwXr25M3RARwvEWkFkzyHwd4hmhJ4qv7+w+YUrLV0XU=
事前共通鍵(PresharedKey)はサーバーの WireGuard の設定をそのまま利用する。
LejepJw9wyHqewP6UYIFJLeR+TMgvMKbMQ/THZ3i0gg=
qrencode
$ sudo dnf install qrencode
メタデータの期限切れの最終確認: 0:49:40 時間前の 2022年06月21日 12時12分23秒 に実施しました。 依存関係が解決しました。 ======================================================================================================================== パッケージ アーキテクチャー バージョン リポジトリー サイズ ======================================================================================================================== インストール: qrencode 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 完了しました!
$ qrencode -h
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.