
VMware vCenter Server Appliance (VCSA)向けの自動化されたゼロトラストハードニングとフォレンジック監査
VMware vCenter Server Appliance(VCSA)向けの自動堅牢化スクリプト。ゼロトラストネットワークセグメンテーションと高度なフォレンジック監査を強制します。
このツールは、仮想化インフラを標的とする高度な持続的脅威(APT)や破壊的なキャンペーンに関連する重大なリスクを軽減するように設計されています。厳格なレイヤ3/4マイクロセグメンテーションとフォレンジックコマンドログを強制することで、横移動、コマンド&コントロール(C2)ビーコン、フォレンジック対策の改ざんといった一般的な攻撃ベクトルを無効化します。これにより、攻撃者がVCSAを足場にして基盤となるESXiハイパーバイザを侵害したり、広範囲にわたるインフラ破壊を実行したりするのを防ぎます。
実行前にお読みください: このツールは、標準のVAMIインターフェースをバイパスして、OSカーネルレベルでVCSAのiptables構成を変更します。
VCSA Hardening & Logging Toolは、vCenterサーバーのセキュリティポスチャを「デフォルト許可」モデルから「デフォルト拒否」(ゼロトラスト)モデルに移行します。ネイティブのLinux制御を利用して、外部のハードウェアファイアウォールを必要とせずに堅牢化された管理プレーンを作成します。
これは、vCenterアプライアンスをTier-0資産とみなす高セキュリティ環境向けに設計されています。
bashコマンドをSyslogに記録します(例: cmd="rm -rf /")。以下の事項が確認されるまで続行しないでください:
vcsa-hardening.shをテキストエディタで開きます。START CONFIGURATIONブロックを変更する必要があります。
配列を編集して、INを許可するIPを定義します。
# SSHログインを許可するIP(ポート22)
TRUSTED_SSH_IPS=( "192.168.10.50" ) # 管理PAWのみ
# Web UI / APIへのアクセスを許可するIP(ポート443)
# 管理者、ESXiホスト、バックアップサーバーを含める必要があります
TRUSTED_WEB_IPS=(
"192.168.10.50" # 管理PAW
"10.20.0.0/24" # ESXi管理サブネット
"10.50.1.100" # Veeamサーバー
)
ファイアウォールが接続頻度を追跡してブルートフォース攻撃を停止するかどうかを制御します。
ENABLE_RATE_LIMITING=true(デフォルト): 1分間に6回以上の接続を試みるIPをブロックします。ENABLE_RATE_LIMITING=false: 「ノイズの多い」自動バックアップツール(例: NetWorker)など、多数のパラレルストリームを開くツールを使用する場合は無効にします。以下のポスチャから1つを選択し、対応するブール変数を切り替えます。
scp vcsa-hardening.sh root@<VCSA_IP>:/root/
ssh root@<VCSA_IP>
chmod +x vcsa-hardening.sh
常に最初に実行してください。変更を適用せずにロジックをシミュレートします。
./vcsa-hardening.sh --dry-run
./vcsa-hardening.sh
スクリプトは、ルールを適用する前に現在のSSH IPが信頼済みリストにあることを確認するセーフティチェックを実行します。
適用後、スクリプトはログを標準のVMware Syslogストリームにブリッジします。
コマンドを実行し、SHELL_COMMANDタグが付いてログに表示されることを確認します。
# 1. テストコマンドを実行
echo "test_audit_logging"
# 2. ログを確認(正しいタグはSHELL_COMMAND)
journalctl -f | grep SHELL_COMMAND
出力例: vcsa-01 logger: CMD user=root host=vcsa pwd=/root pid=1234 exit=0 cmd="echo test_audit_logging"
信頼されていないIP(例: モバイルホットスポット)からSSHを試行し、ログを確認します:
journalctl -f | grep BLOCKED
出力例: kernel: SSH_BLOCKED_NEW: IN=eth0 OUT= MAC=... SRC=1.2.3.4 ...
SSH経由でロックアウトされた場合、以下の手順でVCSAをデフォルトに戻します:
rootとしてログインします。shellと入力してBashに入ります。# 手動ロールバック
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -F
rm /etc/systemd/scripts/ip4save
問題、アイデア、フィードバックがあれば、Issueを開くかPRを送信してください。
Copyright 2026 Google LLC
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
| モード | 設定 | 説明 |
|---|
| 標準的な堅牢化 | 両方false | (デフォルト) 厳格な受信ホワイトリスト。発信トラフィックは許可。一般的な使用に最適。 |
| インターネット遮断 | BLOCK_INTERNET_ACCESS=true | (推奨) 内部トラフィック(RFC1918)を許可するが、すべてのパブリックインターネットアクセスをブロックします。 |
| ゼロトラスト | ENABLE_ZERO_TRUST_MODE=true | (最も厳格) 明示的にリストされていないすべての受信/発信トラフィックをドロップします。ADDITIONAL_PRIVATE_RANGESの完全な設定が必要。 |