GiulioSavini/wazuh-docker-monitoring-platform
GitHub: GiulioSavini/wazuh-docker-monitoring-platform
生产级 Docker 化 Wazuh 安全监控平台,集成 Ansible 自动化、多云环境检测规则和企业级运维工具链。
Stars: 0 | Forks: 0
# Wazuh Docker 监控平台
一个生产就绪、Docker 化的 Wazuh 部署方案,具备 Ansible 自动化功能,以及针对 Docker/VMware/AWS/GCP 的自定义检测规则和企业级网络发现能力。
## 架构
```
graph TB
subgraph "Wazuh Stack (Docker)"
NGINX["NGINX Reverse Proxy
(optional)"] DASH["Wazuh Dashboard
:5601"] MGR["Wazuh Manager
:1514 / :55000"] IDX["Wazuh Indexer
:9200"] NGINX --> DASH DASH --> IDX MGR --> IDX end subgraph "Monitored Assets" LNX["Linux Servers"] WIN["Windows Servers"] DOCK["Docker Hosts"] VMW["vCenter / ESXi"] end subgraph "Cloud Sources" AWS["AWS CloudTrail
VPC Flow Logs"] GCP["GCP Audit Logs
Compute Engine"] end subgraph "Automation" ANS["Ansible Controller"] DISC["Network Discovery"] end LNX -- "agent 1514" --> MGR WIN -- "agent 1514" --> MGR DOCK -- "syslog / agent" --> MGR VMW -- "syslog / API" --> MGR AWS -- "S3 / CloudTrail" --> MGR GCP -- "Pub/Sub / syslog" --> MGR ANS -- "deploy agents" --> LNX ANS -- "deploy agents (WinRM)" --> WIN DISC -- "generates inventory" --> ANS ``` ## 前置条件 | 组件 | 版本 | |-----------|---------| | Docker | 24.0+ | | Docker Compose | v2+ | | Ansible | 2.15+ | | Python | 3.10+ | | nmap | 7.90+ (用于发现) | 有关包括权限、防火墙规则、用户设置和目标主机准备在内的详细要求,请参阅 **[docs/prerequisites.md](docs/prerequisites.md)**。 ## 快速开始 ### 1. 克隆并配置 ``` git clone https://github.com/YOUR_USER/wazuh-docker-monitoring-platform.git cd wazuh-docker-monitoring-platform # 运行预检查(验证 Docker、内核参数、端口、磁盘...) make preflight cp .env.example .env # 编辑 .env — 设置所有 CHANGE_ME 密码 ``` ### 1b. 准备目标主机 ``` # Linux 目标(在每台主机上运行,或通过 SSH 分发) sudo bash scripts/utils/setup-target-linux.sh --ansible-user deploy --manager-ip 10.0.1.10 # Windows 目标(在每台主机上以管理员身份运行) .\scripts\utils\setup-target-windows.ps1 -ManagerIP 10.0.1.10 ``` ### 2. 生成 TLS 证书 ``` bash scripts/utils/generate-certs.sh ``` ### 3. 部署 Wazuh ``` # Core 栈 docker compose up -d # 使用 NGINX 反向代理 docker compose --profile with-nginx up -d # Lab 模式(资源占用较低) docker compose -f docker-compose.yml -f docker-compose.lab.yml up -d ``` ### 4. 验证 ``` # 所有容器运行正常 docker compose ps # Dashboard 可用 curl -sk https://localhost:5601 ``` Dashboard: `https://localhost:5601` API: `https://localhost:55000` ### 5. 使用 Ansible 部署 Agent ``` cd ansible # 编辑 inventory vim inventories/production/hosts.yml # 部署 Linux agents ansible-playbook -i inventories/production playbooks/deploy-linux-agent.yml # 部署 Windows agents ansible-playbook -i inventories/production playbooks/deploy-windows-agent.yml ``` ## 自定义规则与模板 预置的检测规则位于 `rules/`: | 目录 | 覆盖范围 | |---------------|----------| | `rules/linux/` | SSH 暴力破解、权限提升、持久化(cron/systemd/LD_PRELOAD/SSH 密钥)、可疑进程、凭证访问、内核模块、用户/组更改、auditd 集成 | | `rules/docker/` | 容器生命周期、exec 事件、特权容器、可疑挂载、端口暴露、主机 namespace 滥用、capabilities、加密挖矿、daemon 配置、网络/卷操作 | | `rules/vmware/` | VM 电源状态、快照、主机断开、警报、vMotion、vCenter 认证暴力破解 | | `rules/aws/` | CloudTrail 异常、IAM 更改、安全组开放至 0.0.0.0/0、EC2 生命周期、无 MFA 的控制台登录 | | `rules/gcp/` | 审计日志事件、防火墙更改、计算实例生命周期、IAM 策略更改、公共存储桶检测 | `rules/linux/` 目录还包含 `auditd_recommended.rules` —— 一个即插即用的 auditd 配置,用于将安全事件传输给 Wazuh。 ### 导入规则 规则通过 `docker-compose.yml` 卷绑定自动挂载到 Wazuh Manager 容器中。修改规则后: ``` docker exec wazuh-manager /var/ossec/bin/wazuh-control restart ``` ## 网络发现 运行企业级安全的资产发现以生成 Ansible 清单: ``` cd scripts/discovery python3 network_discovery.py --subnet 10.0.0.0/24 --output json ``` 完整的入驻流程(发现 → 清单 → Agent 部署 → 验证 → 标记)请参阅 [docs/agent-onboarding.md](docs/agent-onboarding.md)。 ## 云集成 ### AWS 1. 配置 CloudTrail 将日志发送到 S3 存储桶。 2. 将 AWS 凭证添加到 Wazuh Manager 配置中(参见 `examples/cloud-configs/aws-cloudtrail.xml`)。 3. `rules/aws/` 中的自定义规则将在 IAM 更改、安全组编辑和未授权 API 调用时触发。 ### GCP 1. 将审计日志导出到 Pub/Sub 主题或通过 syslog 转发。 2. 配置 Wazuh Manager syslog 收集器或使用 GCP 模块(参见 `examples/cloud-configs/gcp-pubsub.xml`)。 3. `rules/gcp/` 中的自定义规则可检测防火墙更改、实例创建和 IAM 修改。 有关详细的云和 VMware 设置,请参阅 **[docs/integrations.md](docs/integrations.md)**。 ## 文档 | 文档 | 内容 | |----------|---------| | [docs/prerequisites.md](docs/prerequisites.md) | 系统要求、权限、防火墙规则、用户设置 | | [docs/deployment.md](docs/deployment.md) | 分步部署与加固 | | [docs/agent-onboarding.md](docs/agent-onboarding.md) | Agent 部署、分组、验证 | | [docs/integrations.md](docs/integrations.md) | Docker, VMware, AWS, GCP 集成详情 | | [docs/operations.md](docs/operations.md) | Day-2 运维:备份/恢复、升级、告警、保留策略、故障排查 | | [docs/architecture.md](docs/architecture.md) | 组件图、数据流、安全模型 | ## 项目结构 ``` ├── ansible/ # Agent deployment automation │ ├── inventories/ # Production & lab inventories │ ├── group_vars/ # Shared variables │ ├── roles/ # Reusable Ansible roles │ └── playbooks/ # Deployment playbooks ├── docker/ # Container configurations │ ├── wazuh/ # Wazuh config & certs │ ├── nginx/ # Reverse proxy config │ └── traefik/ # Alternative reverse proxy ├── rules/ # Custom Wazuh rules │ ├── linux/ # Linux security + auditd rules │ ├── docker/ # Docker event detection (basic + advanced) │ ├── vmware/ # vCenter/ESXi monitoring │ ├── aws/ # AWS CloudTrail rules │ └── gcp/ # GCP audit log rules ├── scripts/ # Operational scripts │ ├── discovery/ # Network discovery │ ├── onboarding/ # Automated agent onboarding │ └── utils/ # Certs, backup, healthcheck, vCenter export ├── docs/ # Documentation ├── examples/ # Config examples + dashboard NDJSON ├── .github/workflows/ # CI/CD ├── docker-compose.yml # Main deployment manifest ├── docker-compose.lab.yml # Lab/demo resource overrides ├── Makefile # Single entry point for all operations └── .env.example # Environment template ``` ## Makefile 命令 运行 `make help` 获取完整列表。关键命令: ``` make init # First-time setup (env + certs) make deploy # Deploy Wazuh stack make status # Health check all components make deploy-agents-linux # Deploy agents via Ansible make discover SUBNET=10.0.0.0/24 # Network discovery make onboard SUBNET=10.0.0.0/24 # Full onboarding pipeline make backup # Backup Wazuh data make reload-rules # Reload custom rules make lint # Run all linters ``` ## 故障排查 | 症状 | 检查项 | |---------|-------| | Indexer 无法启动 | `vm.max_map_count` 必须 ≥ 262144:`sysctl -w vm.max_map_count=262144` | | Dashboard 显示 "no data" | 验证 manager → indexer 连通性:`docker logs wazuh-manager` | | Agent 无法连接 | 确认端口 1514/TCP 可达且证书匹配 | | 内存占用高 | 在 `.env` 中减少 `INDEXER_HEAP` 或扩展 indexer 资源 | | 证书错误 | 使用 `scripts/utils/generate-certs.sh` 重新生成 | ## 卸载 ``` # 停止并移除容器 docker compose down # 移除容器及持久化数据 docker compose down -v ``` ## 路线图 - [ ] Wazuh 集群模式(多节点 manager) - [ ] Kubernetes Helm chart - [ ] SOAR 集成(Shuffle / TheHive) - [ ] Sigma 规则自动导入 - [ ] 自动化合规仪表盘(PCI-DSS, CIS) - [ ] Slack/Teams 告警集成 - [ ] 用于云基础设施的 Terraform 模块 ## 许可证 MIT License — 详见 [LICENSE](LICENSE)。
(optional)"] DASH["Wazuh Dashboard
:5601"] MGR["Wazuh Manager
:1514 / :55000"] IDX["Wazuh Indexer
:9200"] NGINX --> DASH DASH --> IDX MGR --> IDX end subgraph "Monitored Assets" LNX["Linux Servers"] WIN["Windows Servers"] DOCK["Docker Hosts"] VMW["vCenter / ESXi"] end subgraph "Cloud Sources" AWS["AWS CloudTrail
VPC Flow Logs"] GCP["GCP Audit Logs
Compute Engine"] end subgraph "Automation" ANS["Ansible Controller"] DISC["Network Discovery"] end LNX -- "agent 1514" --> MGR WIN -- "agent 1514" --> MGR DOCK -- "syslog / agent" --> MGR VMW -- "syslog / API" --> MGR AWS -- "S3 / CloudTrail" --> MGR GCP -- "Pub/Sub / syslog" --> MGR ANS -- "deploy agents" --> LNX ANS -- "deploy agents (WinRM)" --> WIN DISC -- "generates inventory" --> ANS ``` ## 前置条件 | 组件 | 版本 | |-----------|---------| | Docker | 24.0+ | | Docker Compose | v2+ | | Ansible | 2.15+ | | Python | 3.10+ | | nmap | 7.90+ (用于发现) | 有关包括权限、防火墙规则、用户设置和目标主机准备在内的详细要求,请参阅 **[docs/prerequisites.md](docs/prerequisites.md)**。 ## 快速开始 ### 1. 克隆并配置 ``` git clone https://github.com/YOUR_USER/wazuh-docker-monitoring-platform.git cd wazuh-docker-monitoring-platform # 运行预检查(验证 Docker、内核参数、端口、磁盘...) make preflight cp .env.example .env # 编辑 .env — 设置所有 CHANGE_ME 密码 ``` ### 1b. 准备目标主机 ``` # Linux 目标(在每台主机上运行,或通过 SSH 分发) sudo bash scripts/utils/setup-target-linux.sh --ansible-user deploy --manager-ip 10.0.1.10 # Windows 目标(在每台主机上以管理员身份运行) .\scripts\utils\setup-target-windows.ps1 -ManagerIP 10.0.1.10 ``` ### 2. 生成 TLS 证书 ``` bash scripts/utils/generate-certs.sh ``` ### 3. 部署 Wazuh ``` # Core 栈 docker compose up -d # 使用 NGINX 反向代理 docker compose --profile with-nginx up -d # Lab 模式(资源占用较低) docker compose -f docker-compose.yml -f docker-compose.lab.yml up -d ``` ### 4. 验证 ``` # 所有容器运行正常 docker compose ps # Dashboard 可用 curl -sk https://localhost:5601 ``` Dashboard: `https://localhost:5601` API: `https://localhost:55000` ### 5. 使用 Ansible 部署 Agent ``` cd ansible # 编辑 inventory vim inventories/production/hosts.yml # 部署 Linux agents ansible-playbook -i inventories/production playbooks/deploy-linux-agent.yml # 部署 Windows agents ansible-playbook -i inventories/production playbooks/deploy-windows-agent.yml ``` ## 自定义规则与模板 预置的检测规则位于 `rules/`: | 目录 | 覆盖范围 | |---------------|----------| | `rules/linux/` | SSH 暴力破解、权限提升、持久化(cron/systemd/LD_PRELOAD/SSH 密钥)、可疑进程、凭证访问、内核模块、用户/组更改、auditd 集成 | | `rules/docker/` | 容器生命周期、exec 事件、特权容器、可疑挂载、端口暴露、主机 namespace 滥用、capabilities、加密挖矿、daemon 配置、网络/卷操作 | | `rules/vmware/` | VM 电源状态、快照、主机断开、警报、vMotion、vCenter 认证暴力破解 | | `rules/aws/` | CloudTrail 异常、IAM 更改、安全组开放至 0.0.0.0/0、EC2 生命周期、无 MFA 的控制台登录 | | `rules/gcp/` | 审计日志事件、防火墙更改、计算实例生命周期、IAM 策略更改、公共存储桶检测 | `rules/linux/` 目录还包含 `auditd_recommended.rules` —— 一个即插即用的 auditd 配置,用于将安全事件传输给 Wazuh。 ### 导入规则 规则通过 `docker-compose.yml` 卷绑定自动挂载到 Wazuh Manager 容器中。修改规则后: ``` docker exec wazuh-manager /var/ossec/bin/wazuh-control restart ``` ## 网络发现 运行企业级安全的资产发现以生成 Ansible 清单: ``` cd scripts/discovery python3 network_discovery.py --subnet 10.0.0.0/24 --output json ``` 完整的入驻流程(发现 → 清单 → Agent 部署 → 验证 → 标记)请参阅 [docs/agent-onboarding.md](docs/agent-onboarding.md)。 ## 云集成 ### AWS 1. 配置 CloudTrail 将日志发送到 S3 存储桶。 2. 将 AWS 凭证添加到 Wazuh Manager 配置中(参见 `examples/cloud-configs/aws-cloudtrail.xml`)。 3. `rules/aws/` 中的自定义规则将在 IAM 更改、安全组编辑和未授权 API 调用时触发。 ### GCP 1. 将审计日志导出到 Pub/Sub 主题或通过 syslog 转发。 2. 配置 Wazuh Manager syslog 收集器或使用 GCP 模块(参见 `examples/cloud-configs/gcp-pubsub.xml`)。 3. `rules/gcp/` 中的自定义规则可检测防火墙更改、实例创建和 IAM 修改。 有关详细的云和 VMware 设置,请参阅 **[docs/integrations.md](docs/integrations.md)**。 ## 文档 | 文档 | 内容 | |----------|---------| | [docs/prerequisites.md](docs/prerequisites.md) | 系统要求、权限、防火墙规则、用户设置 | | [docs/deployment.md](docs/deployment.md) | 分步部署与加固 | | [docs/agent-onboarding.md](docs/agent-onboarding.md) | Agent 部署、分组、验证 | | [docs/integrations.md](docs/integrations.md) | Docker, VMware, AWS, GCP 集成详情 | | [docs/operations.md](docs/operations.md) | Day-2 运维:备份/恢复、升级、告警、保留策略、故障排查 | | [docs/architecture.md](docs/architecture.md) | 组件图、数据流、安全模型 | ## 项目结构 ``` ├── ansible/ # Agent deployment automation │ ├── inventories/ # Production & lab inventories │ ├── group_vars/ # Shared variables │ ├── roles/ # Reusable Ansible roles │ └── playbooks/ # Deployment playbooks ├── docker/ # Container configurations │ ├── wazuh/ # Wazuh config & certs │ ├── nginx/ # Reverse proxy config │ └── traefik/ # Alternative reverse proxy ├── rules/ # Custom Wazuh rules │ ├── linux/ # Linux security + auditd rules │ ├── docker/ # Docker event detection (basic + advanced) │ ├── vmware/ # vCenter/ESXi monitoring │ ├── aws/ # AWS CloudTrail rules │ └── gcp/ # GCP audit log rules ├── scripts/ # Operational scripts │ ├── discovery/ # Network discovery │ ├── onboarding/ # Automated agent onboarding │ └── utils/ # Certs, backup, healthcheck, vCenter export ├── docs/ # Documentation ├── examples/ # Config examples + dashboard NDJSON ├── .github/workflows/ # CI/CD ├── docker-compose.yml # Main deployment manifest ├── docker-compose.lab.yml # Lab/demo resource overrides ├── Makefile # Single entry point for all operations └── .env.example # Environment template ``` ## Makefile 命令 运行 `make help` 获取完整列表。关键命令: ``` make init # First-time setup (env + certs) make deploy # Deploy Wazuh stack make status # Health check all components make deploy-agents-linux # Deploy agents via Ansible make discover SUBNET=10.0.0.0/24 # Network discovery make onboard SUBNET=10.0.0.0/24 # Full onboarding pipeline make backup # Backup Wazuh data make reload-rules # Reload custom rules make lint # Run all linters ``` ## 故障排查 | 症状 | 检查项 | |---------|-------| | Indexer 无法启动 | `vm.max_map_count` 必须 ≥ 262144:`sysctl -w vm.max_map_count=262144` | | Dashboard 显示 "no data" | 验证 manager → indexer 连通性:`docker logs wazuh-manager` | | Agent 无法连接 | 确认端口 1514/TCP 可达且证书匹配 | | 内存占用高 | 在 `.env` 中减少 `INDEXER_HEAP` 或扩展 indexer 资源 | | 证书错误 | 使用 `scripts/utils/generate-certs.sh` 重新生成 | ## 卸载 ``` # 停止并移除容器 docker compose down # 移除容器及持久化数据 docker compose down -v ``` ## 路线图 - [ ] Wazuh 集群模式(多节点 manager) - [ ] Kubernetes Helm chart - [ ] SOAR 集成(Shuffle / TheHive) - [ ] Sigma 规则自动导入 - [ ] 自动化合规仪表盘(PCI-DSS, CIS) - [ ] Slack/Teams 告警集成 - [ ] 用于云基础设施的 Terraform 模块 ## 许可证 MIT License — 详见 [LICENSE](LICENSE)。
标签:AMSI绕过, Ansible, AWS CloudTrail, Beacon Object File, CISA项目, Cutter, DevSecOps, Docker, Docker安全, EDR, ESXi, FTP漏洞扫描, GCP Audit Logs, HTTP/HTTPS抓包, Linux监控, Maven构建, NGINX反向代理, Nmap, Pub/Sub, S3日志收集, Syslog, vCenter, VMware监控, Wazuh, Windows监控, 上游代理, 企业级安全, 合规性监控, 威胁检测, 安全信息与事件管理, 安全编排, 安全防御评估, 容器化部署, 态势感知, 插件系统, 搜索引擎爬取, 无线安全, 生产就绪, 端点检测与响应, 系统提示词, 网络发现, 网络安全审计, 脆弱性评估, 脱壳工具, 自动化运维, 虚拟驱动器, 请求拦截, 负责任AI, 足迹分析, 逆向工具