mandiant/vcsa-hardening-tool
GitHub: mandiant/vcsa-hardening-tool
一款针对 VMware vCenter Server Appliance 的自动化加固脚本,利用 iptables 实现零信任网络分段与 Shell 命令取证审计。
Stars: 4 | Forks: 0
# VCSA 加固与日志工具
   
**一款用于 VMware vCenter Server Appliance (VCSA) 的自动化加固脚本,旨在强制执行零信任网络分段和深度取证审计。**
该工具旨在缓解与针对虚拟化基础设施的高级持续性威胁 (APT) 和破坏性攻击活动相关的严重风险。通过强制执行严格的第 3/4 层微分段和取证命令日志记录,它消除了诸如横向移动、命令与控制 (C2) 信标以及反取证篡改等常见攻击媒介。这可以防止攻击者将 VCSA 作为跳板来破坏底层的 ESXi Hypervisor 或执行大规模的基础设施破坏。
## 严重免责声明
**执行前必读:** 此工具在 OS 内核级别修改 VCSA 的 `iptables` 配置,绕过了标准的 VAMI 接口。
1. **支持:** 这些更改偏离了默认状态,可能会影响您的 VMware 支持协议。
2. **锁定风险:** 不正确的配置**将**导致立即的网络隔离。如果错误配置了 IP 允许列表,您必须拥有物理/控制台访问权限 (ESXi/iDRAC) 才能进行恢复。
3. **备份:** 在运行此脚本之前,请确保已存在文件级备份或快照。
## 概述
**VCSA 加固与日志工具** 将 vCenter 服务器的安全态势从“默认允许”模型转变为“默认拒绝”(零信任)模型。它利用原生的 Linux 控件来创建强化的管理平面,而无需外部硬件防火墙。
它专为高安全环境而设计,在这些环境中,vCenter 设备被视为 Tier-0 级别的核心资产。
### 主要特性
* **第 3/4 层微分段:** 丢弃所有连入管理端口 (SSH/22, Web/443, VAMI/5480) 的连接,除非明确列入白名单。
* **取证命令审计:** 修补 root shell 配置文件,将管理员输入的每个特定 `bash` 命令记录到 Syslog(例如,`cmd="rm -rf /"`)。
* **防止横向移动:** 阻止 VCSA 与非必要的内部网络通信(阻止“枢轴”攻击)。
* **出站控制:** 提供阻止 Internet 访问或强制执行严格的出站白名单的选项,以防止数据泄露。
* **速率限制:** 智能暴力破解保护,禁止每分钟尝试超过 6 次连接的 IP。
## 预检清单
在确认以下各项之前,**请勿继续**:
- [ ] **控制台访问:** 您已确认可以通过 ESXi Web 控制台访问 VCSA(即“打破玻璃”的应急恢复方法)。
- [ ] **已配置 Syslog:** 必须在 VAMI (端口 5480) 中配置远程 Syslog。此脚本将内部防火墙日志*桥接*到您现有的 VAMI Syslog 配置中。
- [ ] **IP 清单:** 您拥有以下特定 IP 地址:
- 管理员工作站 / 跳板机 (PAW)
- ESXi 管理子网
- 备份服务器 (Veeam, NetWorker, Commvault)
- 核心服务 (DNS, NTP, AD)
## 配置
在文本编辑器中打开 `vcsa-hardening.sh`。您**必须**修改 `START CONFIGURATION` 块。
### 1. 定义受信任的 IP (必填)
编辑数组以定义允许**连入**的 IP。
```
# 谁能 SSH 登录 (Port 22)
TRUSTED_SSH_IPS=( "192.168.10.50" ) # Admin PAW only
# 谁能访问 Web UI / API (Port 443)
# 必须包括:Admins, ESXi Hosts, 和 Backup Servers
TRUSTED_WEB_IPS=(
"192.168.10.50" # Admin PAW
"10.20.0.0/24" # ESXi Management Subnet
"10.50.1.100" # Veeam Server
)
```
### 2. 配置速率限制
控制防火墙是否跟踪连接频率以阻止暴力破解攻击。
* `ENABLE_RATE_LIMITING=true` (默认):阻止每分钟尝试超过 6 次连接的 IP。
* `ENABLE_RATE_LIMITING=false`:如果您使用会打开许多并行流的“嘈杂”自动备份工具(例如 NetWorker),请禁用此选项。
### 3. 选择安全模式
通过切换布尔变量,选择以下**一种**安全态势。
| 模式 | 配置 | 描述 |
| :--- | :--- | :--- |
| **标准加固** | 两者均为 `false` | **(默认)** 严格的入站白名单。允许出站流量。最适合通用场景。 |
| **阻止互联网** | `BLOCK_INTERNET_ACCESS=true` | **(推荐)** 允许内部流量 (RFC1918) 但阻止所有公共 Internet 访问。 |
| **零信任** | `ENABLE_ZERO_TRUST_MODE=true` | **(最严格)** 丢弃所有未明确列出的**所有**入站/出站流量。*需要完美配置 `ADDITIONAL_PRIVATE_RANGES`。* |
## 使用方法
### 1. 上传与赋权
```
scp vcsa-hardening.sh root@:/root/
ssh root@
chmod +x vcsa-hardening.sh
```
### 2. 试运行 (验证)
务必先运行此命令。它将模拟逻辑而不应用更改。
```
./vcsa-hardening.sh --dry-run
```
### 3. 执行
```
./vcsa-hardening.sh
```
*该脚本将在应用规则之前执行安全检查,以确保您当前的 SSH IP 位于受信任列表中。*
## 验证与日志分析
应用后,该脚本会将日志桥接到标准的 VMware Syslog 流中。
### 验证 Shell 审计
执行一条命令,并确保它带有 `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 恢复为默认状态:
1. 登录到 **ESXi Host Web Client** 或 **iDRAC**。
2. 打开 VCSA 虚拟机的 **Web 控制台**。
3. 以 `root` 身份登录。
4. 键入 `shell` 进入 Bash。
5. 运行回滚脚本或手动命令:
```
# 手动回滚
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](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.
标签:APT防护, ESXi, Hypervisor安全, Iptables, IP 地址批量处理, JSONLines, Linux内核安全, PE 加载器, Photon OS, vCenter, VCSA, VMware, 人工智能安全, 侧移防御, 入侵防御, 合规性, 命令行控制, 子域名变形, 应用安全, 微隔离, 快照备份, 系统加固, 网络分段, 虚拟化安全, 防火墙, 零信任