Show HN: WireGuard向け Wag 多要素認証および登録システム
(github.com/NHAS)WagWagの主な機能
- Wireguard に MFA、経路制限、デバイス登録機能を追加
- MFA 認証が必要な経路や、常に公開アクセス可能な経路を定義可能
- 新しいクライアントを登録するためのシンプルな API を提供
- 高可用性をサポート
- Webauthn、OIDC など多様な MFA オプションを提供
- Aura Information Security の支援を受けて開発
要件
iptablesとlibpamがインストールされている必要あり- Wag は
iptablesとwireguardデバイスを管理するため root で実行する必要あり sysctlでフォワーディングが有効化されている必要ありsysctl -w net.ipv4.ip_forward=1- Wag はカーネルが wireguard をサポートしていれば
wg-quickなどを必要としない
インストール方法
バイナリリリース(glibc 2.31+ が必要)
curl -L $(curl -s https://api.github.com/repos/NHAS/wag/releases/latest | jq -M -r '.assets[0].browser_download_url') -o wag
sudo ./wag gen-config
sudo ./wag start -config <generated_config_name>
ソースからインストール(go1.19, npm, gulp, clang, llvm-strip, libbpf が必要)
git clone git@github.com:NHAS/wag.git
cd wag
make
cp example_config.json config.json
sudo ./wag start
- リバースプロキシの背後で実行中なら
X-Forwarded-Forを設定する必要あり
管理
root ユーザーは以下のコマンドで wag サーバーを管理可能:
wag subcommand [-options]
- サポートされるサブコマンド:
start,cleanup,reload,version,firewall,registration,devices,users,webadmin,gen-config - 各コマンドの使い方説明を提供
ユーザーガイド
Wag のインストール
wag,config.jsonを/opt/wagにコピーwg genkeyで wireguard 秘密鍵を生成し、サンプル設定のPrivateKeyに設定wag.serviceを/etc/systemd/system/にコピー(またはリンク)し、サービスを起動・有効化
新しい登録トークンの作成
# ./wag registration -add -username tester
token,username
e83253fd9962c68f73aa5088604f3f425d58a963bfb5c0889cca54d63a34b2e3,tester
トークンを curl する:
curl http://public.server.address/register_device/…
サービスは完全な形式のレスポンスを返し、これを config ファイルとして保存できる。
MFA の実行
ユーザーは VPN アドレス(例: 192.168.1.1:8080)に接続して 2FA コードを入力する。設定ファイルでセッション寿命を指定可能。
管理コンソールにログイン
ManagementUI.Enabled を true に設定し、以下のコマンドを実行:
sudo ./wag webadmin -add -username <your_username> -password <your-password-here>
管理用リッスンアドレスに接続して認証情報を入力する。Web インターフェースからは管理ユーザーを追加できない。
GN⁺ の意見
-
クラスタリング機能により高可用性をサポートしている点が印象的だ。災害復旧や無停止サービスに役立ちそうだ。
-
多様な認証方式をサポートしているのも良い点だ。TOTP、WebAuth、OIDC などを通じて企業の認証基盤と容易に統合できそうだ。
-
ACL ルールを柔軟に定義できるため、きめ細かなアクセス制御が可能に見える。ユーザー/グループごとにアクセス可能な IP、ポート、プロトコルを制限できる。
-
IPv6 をサポートしていないのは惜しい。最近は IPv6 への移行が活発なので、早めの対応が必要に見える。
-
Linux に特化した VPN ソリューションを探しているなら、良い選択肢になりそうだ。カーネル 5.9 以上の最新システムで動作する。
1件のコメント
Hacker Newsのコメント
要約: