针对 VMware vCenter Server Appliance (VCSA) 的自动化零信任加固与取证审计工具。
一个针对 VMware vCenter Server Appliance (VCSA) 的自动化加固脚本,旨在实施零信任网络分段和深度取证审计。
此工具旨在缓解与高级持续性威胁(APT)及针对虚拟化基础设施的破坏性活动相关的关键风险。通过实施严格的 L3/L4 微隔离和取证命令日志记录,它能消除常见的攻击向量,例如横向移动、命令与控制(C2)信标通信以及反取证篡改。这可以防止攻击者利用 VCSA 作为跳板来入侵底层 ESXi 管理程序或执行大规模基础设施破坏。
执行前请仔细阅读: 本工具会在操作系统内核级别修改 VCSA 的 iptables 配置,绕过标准的 VAMI 界面。
VCSA 加固与日志记录工具 将 vCenter 服务器的安全态势从“默认允许”模型转变为“默认拒绝”(零信任)模型。它利用原生的 Linux 控制手段创建一个加固的管理平面,无需外部硬件防火墙。
它专为将 vCenter 设备视为第 0 层资产的高安全环境而设计。
bash 命令记录到 Syslog(例如 cmd="rm -rf /")。在确认以下事项之前,请勿继续:
使用文本编辑器打开 vcsa-hardening.sh。您必须修改 START CONFIGURATION 块。
编辑数组以定义允许入站的 IP。
# 谁可以 SSH 登录(端口 22)
TRUSTED_SSH_IPS=( "192.168.10.50" ) # 仅限管理员 PAW
# 谁可以访问 Web UI / API(端口 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(默认):阻止每分钟连接超过 6 次的 IP。ENABLE_RATE_LIMITING=false:如果使用“嘈杂”的自动化备份工具(如 NetWorker)打开大量并行流,可禁用此功能。通过切换以下布尔变量,选择以下配置中的一个。
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 或 Pull Request。
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。 |