MukenVault

クイックスタート (Founding 50 パートナー向け)

承認メールでお受け取りいただいたライセンスキーを使って、5 分で nginx のメモリ保護を有効化するガイドです。

0. はじめに

Founding 50 Technical Preview Program はパートナーに研究開発段階のソフトウェアを 評価環境で試していただくプログラムです。本ソフトウェアは 評価環境でのみご利用ください。本番環境・商用環境での利用は 想定していません (利用規約 §5.4)。


1. 動作要件 (preflight で自動チェックされます)

項目要件
OSUbuntu 22.04 LTS / 24.04 LTS (x86_64)
Kernel5.7 以上 (userfaultfd サポート)
CPUAES-NI 対応
nginxインストール済み (本ソフトウェアは nginx に LD_PRELOAD される)
OpenSSL3.x 推奨
権限root (sudo)

自前 KVM / libvirt / Proxmox で運用される場合: hypervisor 側で per-VM の SMBIOS UUID + serial を設定する必要があります (cloud VPS では自動)。 詳細は 自前 KVM partner ガイド を参照してください。


2. 環境チェック

インストール前に、要件が満たされているか確認します。

curl -fsSL https://install.mukenvault.com/preflight.sh | sudo bash

スクリプトは自身を実行するだけで、何もインストールも変更もしません。 OS、Kernel、CPU、nginx、OpenSSL、curl、systemd、mukenvault ホスト到達性を確認します。


2.5. 必要パッケージの一括インストール (preflight が FAIL したとき)

クリーンな Ubuntu VPS で nginx・gdb 等が入っていない場合の救援策です。 nginx 等が既に入っている場合はスキップして §3 へ。

2.5.1 ワンライナー (推奨)

curl -fsSL https://install.mukenvault.com/bootstrap.sh | sudo bash

apt update + apt install -y nginx curl openssl gdb libbpf1 ca-certificates + systemctl enable --now nginx を一括で実行し、nginx の動作確認まで行います。 Ubuntu 22.04 / 24.04 以外で実行すると停止します (パッケージ名が違うため)。

2.5.2 手動 apt

中身を確認してから実行したい場合:

sudo apt update
sudo apt install -y nginx curl openssl gdb libbpf1 ca-certificates
sudo systemctl enable --now nginx

パッケージ用途
nginx保護対象本体 (Founding 50 は nginx のみ対応)
curlheartbeat + setup.sh + preflight で使用
openssllibkeyless が OpenSSL 3.x をフック、CLI で証明書操作にも
gdbgcore 経由で §4 の verify スクリプトが使用
libbpf1BPF ランタイム (プロセス検出・メモリアクセス検知に使用)
ca-certificatesTLS 信頼ストア (fresh VPS で古い場合がある)

2.5.3 TLS 証明書 (別途必要、検証フェーズに影響)

verify スクリプトが「実際に TLS 鍵が保護されているか」を確認するには、 nginx で SSL listener が稼働している必要があります。Let's Encrypt なら:

sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d your-domain.example.com

ドメイン名を持っていない場合は self-signed でも構いません:

sudo openssl req -x509 -nodes -days 30 -newkey rsa:2048 \
  -keyout /etc/ssl/private/mukenvault-test.key \
  -out /etc/ssl/certs/mukenvault-test.crt \
  -subj "/CN=mukenvault-test.local"

§4 の検証は SSL listener が無くても install 自体は完了します (mukenvault statusFULL 表示可能)。本物の TLS 鍵が メモリ上にないので gcore 検索が「保護証明」を構造的にできない点だけご注意ください。


3. インストール

3.1 推奨: ワンライナー

受領メールに記載のライセンスキーを YOUR-KEY-HERE に置き換えてください。

curl -fsSL https://install.mukenvault.com/setup.sh | sudo bash -s -- --license YOUR-KEY-HERE

setup.sh が tarball をダウンロード → sha256 検証 → 展開 → インストーラー実行を行います。 全工程ログは標準出力に流れます。

3.2 慎重派: ダウンロードしてから検証

tarball を一度ファイルに落として、目視確認してから実行する場合:

  1. wget https://install.mukenvault.com/mukenvault-v5.0.0-entry.tar.gz
  2. wget https://install.mukenvault.com/mukenvault-v5.0.0-entry.tar.gz.sha256
  3. sha256sum -c mukenvault-v5.0.0-entry.tar.gz.sha256 (OK が表示されること)
  4. tar xzf mukenvault-v5.0.0-entry.tar.gz && cd mukenvault-v5.0.0-entry
  5. sudo bash installer/nginx-entry-install.sh --license YOUR-KEY-HERE

インストーラーが行うこと:

各 phase に失敗すると自動 rollback されます。インストールが完了すると mukenvault statusStatus: FULL を返します。


4. 動作確認

sudo mukenvault status

期待される出力:

項目期待値
StatusFULL (exit code 0)
Targetnginx (PID xxx, workers: N)
ProtectionTLS key memory protection
Licensevalid (expires YYYY-MM-DD…)
Heartbeat初回 boot 後 5 分以内に最初の heartbeat が走ります

保護効果の検証 (推奨)

保護が実際に効いていることを確認するには、インストール後に以下を実行します:

sudo mukenvault verify

nginx worker プロセスをコアダンプし、メモリ上に TLS 秘密鍵パターンが 0 件であることを確認します (verdict=protected)。

verify を実行するには nginx で SSL listener が稼働している必要があります (§2.5.3 参照)。 SSL listener が無い場合、verify は verdict=skip を返します (保護自体は有効です)。


5. 運用

5.1 heartbeat

ライセンスは mukenvault-heartbeat.timer によって 6 時間ごとに 自動更新されます。最初の heartbeat は boot 後 5 分前後に実行されます。 手動実行は sudo mukenvault heartbeat

5.2 ライセンス期限

Founding 50 Preview ライセンスは発行から 91 日間有効です。 期限が近づくと当社からメールでご連絡いたします。何もご返信がない場合、 期限切れ後の heartbeat で License: UNLICENSED に遷移し、 nginx の動作は継続しますが新規アクティベーションは停止します。

5.3 失敗通知 (オプション)

Slack incoming-webhook を /etc/mukenvault/nginx-entry.env に 設定すると、heartbeat 失敗時に当該チャネルへ通知が飛びます。

KEYLESS_SLACK_WEBHOOK_URL=https://hooks.slack.com/services/XXX/YYY/ZZZ

設定後、sudo systemctl daemon-reload

5.4 DNA 認証モード

Founding 50 では default で observe モードです。 各 heartbeat で MukenVault サーバーが端末のハードウェア指紋を検証しますが、 失敗してもログのみで運用継続します。プログラム成熟後に enforce モードへの 切替をご案内する予定です (詳細は受領メールに同封)。


6. アンインストール

CLI コマンドで完全に除去できます:

sudo mukenvault uninstall

libkeyless.so / mukenvault CLI / systemd ユニット / ライセンスキャッシュが除去され、nginx は LD_PRELOAD なしの素の状態に戻ります。


7. トラブルシュート

症状確認 / 対処
preflight FAIL: Kernel … (need >= 5.7)OS をアップグレードするか、新しい kernel package を導入してください。
preflight FAIL: AES-NI missing本ソフトウェアは AES-NI 必須です。別 VPS / 別ホストでお試しください。
libbpf runtime missingsudo apt install -y libbpf1 を実行してからインストールを再実行してください。
activate: HTTP 422 / 404ライセンスキーの誤入力。受領メール記載のキーを再確認してください。
MACHINE_LIMIT_EXCEEDED同一キーの登録台数上限に到達。旧マシンで sudo mukenvault deactivate を実行してから再試行してください。
mukenvault statusUNLICENSED有効期限切れ、または license suspend の可能性。当社にご連絡ください。
nginx が起動しないjournalctl -u nginx --since "5 minutes ago" をご共有ください。sudo mukenvault uninstall で素の状態に戻せます。

8. お問い合わせ

← インストールページに戻る