
Bastillion v5.2.0
Bastillionは、すべてのシステムにおけるSSHアクセスを管理するためのクリーンでブラウザベースの方法を提供します—フレンドリーなダッシュボードを備えた踏み台ホストのようなものです。
Bastillion
モダンなWebベースのSSHコンソールおよびSSH鍵管理ツール。
Bastillionは、すべてのシステムにわたるSSHアクセスを、ブラウザベースのクリーンな方法で管理できるようにします。まるで使いやすいダッシュボードを備えた踏み台ホスト(bastion host)のようなものです。できることは2つあります:
-
WebベースのSSHターミナル — ホストが登録されれば、認可されたユーザーはブラウザから直接、そのホストへの1つ以上のライブターミナルセッションを開くことができ、コマンドを開いているすべてのセッションに一斉にブロードキャストすることもできます(tmuxの同期ペインのようなものですが、ローカルペインではなくリモートホストの群れが対象です)。
-
SSH鍵管理 — Bastillionは自身のSSH鍵ペアを保持し、登録したホスト群に公開鍵をプッシュ/ローテーションします。これにより、個々のユーザーがそれらのシステムに対して長期間有効な鍵を保持したり管理したりする必要がなくなります。
- 2要素認証(AuthyまたはGoogle Authenticator)でログイン
- SSH公開鍵の管理と配布、および中央からの無効化/ローテーション
- 安全なマルチセッションWebシェルを起動し、セッション間でコマンドを共有
- すべてのセッションを記録し、オンデマンドで再生 — あらゆるコンプライアンスフレームワークに対応する監査可能な証跡
- システムをプロファイルにグループ化し、誰が何にアクセスできるかを正確に制御
- 複合スクリプトを保存し、フリート全体で一斉に再実行
- 追加の保護のためにSSH上のTLS/SSLを重ねて使用

既存のWebおよびアプリケーションのサンプルホストへの2つのライブSSHセッション。
目次
仕組み
Bastillionは、ユーザーとユーザーがアクセスする必要のあるシステムの間に位置し、単なるパスワード保管庫ではなく、信頼できる第三者として機能します。ここでは、ライフサイクル全体を最初から最後まで説明します。
1. Bastillionが自身のSSH鍵ペアを生成
初回起動時、何よりも先に、Bastillionは自身用のEd25519鍵ペアを生成します。これが、あなたのホストにプッシュされる唯一の鍵です。これはコンソール出力に表示され、常に設定の下で確認できます。
2. システムを登録
管理者は管理 → システムの下でホストを追加します(ユーザー、ホスト、ポート、およびそのホストのauthorized_keysファイルへのパス)。Bastillionは、あなたが提供するパスワードまたはパスフレーズで一度だけ認証し、自身の公開鍵をそのホストのauthorized_keysにプッシュします。以降はその鍵を使って接続します — パスワードが保存されることは一切ありません。鍵が配置された瞬間にステータスが成功に変わります。

3. システムをプロファイルにグループ化し、ユーザーを割り当て
システムは名前付きのプロファイルにグループ化されます — 「本番」「ステージング」「データベース層」のようなものです。その後、ユーザーは管理 → ユーザーの下でプロファイルにリンクされます。これが誰が何にアクセスできるかを制御する唯一の手段です。プロファイルの割り当てを取り消せば、そのアクセスは即座に失われ、鍵のローテーションは不要です。

4. ターミナルを開く — そしてすべてに一斉送信
割り当てられたユーザーは Secure Shell → Terminals を開き、1つ以上のシステムを選択すると、ブラウザ上でライブの、サイズ変更可能な、xtermベースのターミナルが並んで表示されます。一度入力すれば、アクティブとマークされたすべてのターミナルに送信されます — 同じキーストローク、同じコマンド、同じ出力形式が、選択したホストの数だけ広がります。

5. 鍵のローテーションと失効を一元管理
すべてのホストが同じアプリケーション鍵を信頼するため(ユーザーごとに1つの鍵ではありません)、Manage SSH Keys で一度無効化すれば、すべての場所で即座にアクセスが失効します — 対象システムを手作業で触る必要も、どのサーバーにどの古い鍵があるかを探し回る必要もありません。

6. ホストが名乗るとおりの相手であることを検証
すべての接続は、対象システムが提示するホスト鍵を、Bastillionがそのシステムについて記録した鍵と照合します。ホストが初めて見られたとき、その鍵が記録され信頼されます。その後その鍵が変更された場合、接続は拒否され、そのシステムは Manage → Host Keys にchanged — blocked として表示され、承認済みのフィンガープリントと提示されたフィンガープリントが並べて表示されるため、再構築されたホストと傍受された接続を見分けることができます。新しい鍵を信頼することは、意図的で記録される行為です。
これはラップトップよりも踏み台(bastion)にとって重要です。Bastillionは対象システムに秘密鍵を渡し、認証フォールバック時にはあなたが提供したパスワードまたはパスフレーズを渡します — つまり、管理対象システムのアドレスに応答できるものは何であれ、そのシステムの認証情報を収集できてしまいます。このチェックが存在するまで、その鍵を何かと比較するものはありませんでした。
hostKeyVerification=strict を設定すると、新しく検出された各ホストへの最初の接続前に管理者の承認を必須にできます。off にすると以前の動作に戻ります — Configuration を参照してください。
7. すべてのセッションが記録される — 監査と再生
これらのターミナルで入力されたすべての内容と返されたすべてのバイトが自動的に記録されます。管理者は Audit Sessions を開き、ユーザーまたはシステムでフィルタリングして、任意のセッションを再生できます — 複数のホストにまたがるセッションは並べて表示され、テキストフィルターで重要な行へ直接ジャンプできます。出力は読み込みに合わせてページにストリーミングされるため、数百メガバイトのログを吐き出したセッションでも苦もなく再生できます。
誰が何を、どこで、いつ実行したかを監査人に示す必要があるなら — これがその証拠であり、標準で取得されます。実質的にすべてのコンプライアンスフレームワークには、どこかに特権アクセスの監査証跡要件があります(PCI DSS、HIPAA、SOC 2、ISO 27001 — どれでも構いません)。これは商用のPAM製品なしでその要件を満たします。セッションはデフォルトで90日間保持され(deleteAuditLogAfter)、記録は ENABLE_INTERNAL_AUDIT=false で無効化できます — Auditing を参照してください。

🚀 新機能
- SSH ホスト鍵検証 — 管理対象システムが提示する鍵は初回接続時に記録され、以降のすべての接続で照合されます。鍵が変更された場合は接続がブロックされ、Manage → Host Keys に表示されて管理者が解決できます。デフォルトで有効 (
hostKeyVerification=accept-new) — 詳細は 動作の仕組み を参照 - SSH 証明書認証 (オプション) — Bastillion は各ホストの
authorized_keysに自身の公開鍵が登録されていることに依存する代わりに、接続ごとに短命な証明書を発行できます。これにより Bastillion のユーザー名が接続先ホスト自身の認証ログにも記録されます。デフォルトでは無効。各ホストが CA を信頼するよう設定する必要があります — 詳細は 設定 を参照 - SAML 2.0 SSO — エンタープライズ IdP (Entra ID、Okta、ADFS など) 経由でサインイン — 詳細は 設定 を参照
- ライセンス — 最大 8 システムまで無料、有料プランは loophole.company/pricing.html で提供 (下記の ライセンス を参照)
- セッション監査とリプレイ、デフォルトで有効 — すべてのターミナルセッションが記録され、Audit Sessions でリプレイできます。ブラウザへストリーミングされるため、巨大なセッションでも即座に読み込まれます
- 自己完結型 jar (
java -jar) として動作し、HTTPS を標準でサポート — 詳細は ダウンロードと実行 を参照 - Java 21、Jetty 12、Jakarta EE 10 にアップグレード
- Ed25519 (デフォルト) および Ed448 SSH 鍵を完全サポート
- v4 移行ツール — 既存の v4 インスタンスからユーザー、システム、鍵、監査ログを引き継ぎます。中間の 5.x インストールを経ることなく 6.x へ直接インポートできます — 詳細は
tools/migrateを参照 - CSRF フィルターとアプリ全体のセキュリティヘッダーで強化
ライセンス
Bastillion は最大 8 台の登録システムまでライセンスなしで動作します — 購入前に実際に試すのに十分な数です。ライセンスを購入するとこの上限が引き上げられます。
- loophole.company/pricing.html でライセンスを購入します
(Starter/Team/Business — システム数に応じた価格設定)。支払い後にリダイレクトされ、
.licファイルが自動的にダウンロードされます。 .licファイルを開き、その内容 (1 行) をコピーします。LICENSE_KEY環境変数で設定します:
または、export LICENSE_KEY=<paste license file contents here>BastillionConfig.propertiesのlicenseKeyに貼り付けてください。両方が設定されている場合は環境変数が優先されます。- Bastillion を再起動します。Settings にライセンシー、システム上限、有効期限が表示され、有効期限の 90 日前から警告が表示されます。
ライセンスは年間契約で、自動更新はありません。カード情報は保存されません。有効期限の警告が表示されたら、同じ料金ページから再度購入してください。
インストールオプション
無料: https://github.com/Loophole-LLC/Bastillion/releases
前提条件
Java 21 (OpenJDK)
apt-get install openjdk-21-jdk