★ 管理者強制Exit Node & CLIロック
リモートワークのセキュリティにおいて、「従業員が通信速度を優先して勝手にVPNを切断してしまう」「ユーザーが勝手にExit Nodeを解除してノーガードでWeb閲覧してしまう」 という問題は、シャドーITや情報漏洩の温床となっています。
AegisMesh は、管理者の統制力を担保する 「管理者強制Exit Node」 および 「CLI改ざん防止ロック」 を独自実装しています。
機構 1: 管理者強制 Exit Node (EnforcedExitNodes)
管理者がアカウントまたはグループに対して「強制Exit Nodeポリシー」を有効化すると、クライアント端末が起動した際に自動的に最適なExit Nodeへロックオンされます。
sequenceDiagram autonumber participant Client as クライアント端末 (PC) participant Mgmt as AegisMesh 管理サーバー participant NodeA as Exit Node 東京 (15ms) participant NodeB as Exit Node 大阪 (32ms)
Client->>Mgmt: 端末チェックイン (gRPC) Mgmt-->>Client: Settings: EnforcedExitNodes = [東京, 大阪] Note over Client: 各Exit NodeへのPingレイテンシを自動測定 Client->>NodeA: Ping測定 -> 15ms Client->>NodeB: Ping測定 -> 32ms Note over Client: 最短遅延の「東京ノード」を自動選定 Client->>NodeA: WireGuard 暗号化トンネル確立 (常時強制接続)- 最短レイテンシの自動測定: 複数のExit Node(東京、大阪、福岡、クラウド等)が指定されている場合、クライアントエージェントが自動でICMP Pingを送信し、最も応答速度が速いノードを自動選択して接続します。
- 自動フェイルオーバー: 接続中のExit Nodeがメンテナンスや障害でダウンした場合、即座に次にレイテンシの低いノードへ自動でフェイルオーバーします。
機構 2: CLI改ざん防止ロック (PermissionDenied)
管理者が強制Exit Nodeポリシーを有効にしている場合、ユーザーがローカルのコマンドライン(CLI)やGUIから手動でExit Nodeを解除・変更しようとする操作は、クライアントデーモン内部で厳密に遮断されます。
# ユーザーが勝手にExit Nodeを解除しようとした場合$ netbird up --exit-node ""Error: rpc error: code = PermissionDenied desc = manual exit node modification is blocked by administrator policy (enforced exit node active)
# ユーザーが勝手に別のノードを指定しようとした場合$ netbird up --exit-node 100.64.0.99Error: rpc error: code = PermissionDenied desc = manual exit node modification is blocked by administrator policy (enforced exit node active)実装アーキテクチャ (enforced_exit_node.go)
- 管理サーバーからの gRPC 設定ストリームで
Settings.EnforcedExitNodesフラグがクライアントのprofilemanagerに同期されます。 - クライアントデーモンのローカル gRPC サーバー(
client/server/server.go)において、Upリクエスト受信時に管理者強制フラグを照合。 - 管理者ポリシーに反するパラメーター変更を検知した場合、システムエラーではなく
codes.PermissionDeniedを返却し、トンネル設定の書き換えを拒絶します。 - これにより、端末のローカル管理者権限を持つユーザーであっても、社内セキュリティポリシーを逸脱することができなくなります。