APP β

Simple ZTA

アウトバウンド接続だけで成立する、監査証跡付きのゼロトラスト・リモートアクセス基盤。

スタンダードプラン会員特典として提供中 (追加料金 0 円)

GoReact + VitePostgreSQLgRPC (outbound)Cloudflare TunnelOIDC / Entra IDGuacamole (RDP)xterm.js (SSH)Wails (Desktop)

概要

Simple ZTA (SZTA) は、Cisco Secure Equipment Access (SEA) の小規模・低価格版を目指した、自作のゼロトラスト・リモートアクセス基盤です。

  • 対象: Windows / macOS / Linux / VM 上のエージェントを遠隔から安全に操作
  • 方式: アウトバウンド接続のみ (顧客ネットワーク側でのポート開放は不要)
  • 運用: 1顧客 = 1ポータル VM (セキュリティ境界が明確、コードが単純)
  • 将来: Control Plane / Data Plane 分離で IaaS 移行可能な設計

できること

ブラウザ接続 (エージェントレス)

プロトコル方式備考
SSHxterm.js + WebSocketブラウザでターミナル
RDPGuacamole 経由Windows 画面をブラウザで操作
Telnetxterm.jsネットワーク機器向け
HTTP / HTTPS プロキシポータル経由のリバースプロキシ内部 Web UI へブラウザから直接アクセス

ネイティブクライアント (szta-client)

PuTTY / TeraTerm / mstsc など既存ツールと連携するローカル TCP プロキシモード。

  • CLI: szta-client ssh <host> / szta-client rdp <host>
  • GUI (Wails): Windows/macOS 向け、ワンクリックで RDP/SSH セッション確立
  • SSH proxy 方式: 鍵認証不要、ポータル発行の短期証明書で接続

セキュリティ・認証

  • OIDC / SAML 連携 (Microsoft Entra ID 等の IdP)
  • ローカル PIN + TOTP (IdP を使わない場合)
  • RBAC (Admin / Operator / Viewer)
  • AES-256-GCM 暗号化された認証情報ストア (内蔵 Vault)
  • mTLS 相互認証 (Portal ↔ Agent の gRPC)
  • JWT + h2c (Phase 7 で mTLS から移行、Cloudflare Tunnel との相性改善)

監査・ログ・録画

  • 全セッション録画(SSH: asciinema 形式 / RDP: mp4 変換後ダウンロード可)
  • コマンドログ (SSH / Telnet のキー入力履歴)
  • 監査ログ (ログイン / セッション作成 / 管理操作)
  • 録画・ログは NAS 保存 + 7 日自動削除 (β版ポリシー)

Phase A 提供範囲(β版・1 会員あたり)

項目上限
Agent 台数1 台
ユーザーアカウント1 アカウント
認証情報 (Vault)3 件
録画・コマンドログ・監査ログ保持期間7 日(自動削除)

詳細は Simple ZTA 利用特約 を参照してください。


アーキテクチャ

Simple ZTA のアーキテクチャ全体図(ブラウザ → Portal → 踏み台 Agent → 顧客NW機器)

Agent は Portal にアウトバウンド gRPC で常時接続し、Portal 側からの指示でその逆経路上に SSH/RDP の中継セッションを作成します。Agent 導入先のルーターでポート開放は不要です。


使い方

1. スタンダードプラン会員になる

会員プラン から月額 980 円のスタンダードプラン以上に加入します。SZTA の追加料金はかかりません。

2. 利用申請(会員ポータル → 規約同意 → 招待メール受領)

加入後、会員ポータルの SZTA 申請ページ にアクセスします。

  1. ページに表示される Simple ZTA 利用特約 を確認
  2. 同意のチェックを入れて「利用申請する」ボタンを押下
  3. 同意ログが保存され、運営者に申請メールが自動送信されます
  4. 運営者がテナントとアカウントを作成すると、SZTA ポータルからセットアップ用メールが届きます
  5. メール内のリンクで PIN・TOTP の初期設定を行ってログイン

申請ステータスは members.chillarin39.com/szta/ でいつでも確認できます。

3. Agent を対象ホストにインストール

ポータル画面から テナント固有のインストーラをダウンロードし、Agent を導入する PC / サーバーに展開します。

  • Windows: コード署名済み .exe + --install サービス登録 (再起動後も自動起動)
  • Linux: systemd ユニットで常駐
  • macOS: launchd 経由 (実験的)

インストーラ内に必要な証明書と設定が埋め込まれているので、追加設定は不要です。

4. ブラウザから接続

Portal の https://<your-portal>/hosts から対象ホストを選び:

  • SSH → その場でターミナルが開きます
  • RDP → Guacamole 経由で Windows 画面が表示されます
  • Telnet → ネットワーク機器用
  • HTTP / HTTPS → 内部 Web UI へリバースプロキシ経由で直接アクセス

5. ネイティブツールを使う場合

デスクトップ版 szta-client-gui.exe をポータルからダウンロード → ログイン → ワンクリックで:

  • SSH: TeraTerm / PuTTY がローカル TCP ポートに接続できるトンネルを張る
  • RDP: mstsc を自動起動

対応環境

項目対応
Agent OSWindows 10/11 / Linux (systemd) / macOS (experimental)
PortalProxmox VM (単一テナント)、Debian / Ubuntu LTS
認証OIDC (Entra ID 等) / SAML / ローカル PIN + TOTP
ブラウザ最新 Chrome / Edge / Firefox / Safari

制限事項 (β 版)


ロードマップ

フェーズ内容状態
Phase 0設計✅ 完了
Phase 1MVP (SSH 接続)✅ 完了
Phase 2RDP 対応 / 証明書ローテーション / マルチテナント✅ 完了
Phase 5RDP 実動作確認 (guacd 経由)✅ 完了
Phase 6HTTP/S プロキシ・クリップボード/ファイル転送ポリシー制御✅ 完了
Phase 7mTLS → JWT + h2c 移行 / 自己アンインストール / 保留削除✅ 完了 (2026-04-21)
Phase 8gRPC マルチテナント セキュリティ強化✅ 完了
Phase 8-aOIDC / Entra ID 連携 + tenant admin スコープ化✅ 完了 (2026-04-22)
Phase 9暗号化鍵本番有効化 (TOTP/Vault) + 横断セッション impersonation 必須化 + seat 管理スキーマ✅ 完了 (2026-04-22)
Phase 10ブランドトークン化 (renewal/v2 体系・ダーク/ライト両モード・全 14 ページ)✅ 完了 (2026-04-23)
Phase 11メンバーポータル申請導線 (規約 NAS canonical + Postfix 通知 + szta_applications テーブル)✅ 完了 (2026-04-26)
Phase 12 (予定)承認 admin UI / 解約連動 / OIDC auto-provision設計中
Phase 13 (予定)録画再生 UI の改善 / 検索インデックス検討中
将来規模拡大時は電気通信事業届出を実施未定

よくある質問

Q. VPN との違いは? VPN は LAN 全体への経路を提供しますが、SZTA はホスト単位・プロトコル単位のアクセス制御です。特定の SSH/RDP ポートにだけ、認可されたユーザーが期間限定で到達できます。

Q. Cloudflare Access との違いは? Cloudflare Access は Web アプリへの認証レイヤーです。SZTA はその思想を SSH/RDP/Telnet まで広げ、コマンドログ・セッション録画を含む監査機能を提供します。

Q. 自分のネットワーク(顧客 LAN) に Portal を立てたい Phase 12 以降で対応予定です。現状は β 版として、ちらりんのホームラボ上の Portal を共有利用する形です。

Q. Agent をアンインストールしたい 推奨は ポータル UI からの削除 です。ポータルでエージェントを削除すると、対象端末上の Agent に uninstall コマンドが送信され、サービス停止 → バイナリ・設定の自動削除まで完結します(オフライン時は次回オンライン復帰時に自動実行される「保留削除」にも対応)。 手動でも削除可能: Windows は szta-agent --uninstall で Windows サービス解除、Linux は systemd ユニットを無効化 → バイナリ削除。