Fayez-Alba/homelab-cybersecurity

GitHub: Fayez-Alba/homelab-cybersecurity

基于 Proxmox VE 的家庭网络安全实验室,通过 VLAN 隔离、pfSense 防火墙以及 Wazuh SIEM 和 Suricata IDS 的深度集成,模拟企业级 SOC 环境用于威胁检测与事件响应实战演练。

Stars: 0 | Forks: 0

# 🔒 家庭网络安全实验室 一个从零开始搭建在单台迷你主机上的分区家庭网络实验室——具备 VLAN 隔离、专用防火墙/路由器、IDS 监控和集中式 SIEM。旨在模拟企业 SOC 环境,以便进行实际的威胁检测和事件响应演练。 ## 🏗️ 架构 ![网络架构](https://raw.githubusercontent.com/Fayez-Alba/homelab-cybersecurity/main/docs/architecture-diagram.png) ``` ISP Gateway (Bridge Mode) │ [UGREEN USB NIC — Dedicated WAN] │ ┌────┴────┐ │ pfSense │──── VLAN 1 — Management │ 2.8.1 │──── VLAN 20 — Isolated Lab (attack/defend) │ │──── VLAN 40 — Guest WiFi (internet-only) │ │──── VLAN 50 — IoT (restricted) └────┬────┘ │ Suricata IDS monitoring LAN traffic │ ↓ EVE JSON alerts forwarded to Wazuh │ [TP-Link TL-SG108E — 802.1Q VLAN Trunking] │ ┌─────┴──────┐ │ Proxmox │──── Kali Linux (attack VM) │ VE │──── Ubuntu Server (target + Wazuh agent) │ M910q │──── Windows 11 (target + Wazuh agent) │ │──── Wazuh 4.14.2 (SIEM — manager/indexer/dashboard) └────────────┘ │ [TP-Link Omada EAP723 — 3 SSIDs mapped to VLANs] ``` ## 🛠️ 技术栈 | 层级 | 技术 | 作用 | |---|---|---| | Hypervisor | Proxmox VE 9.1.1 | 裸机 VM 托管 | | 防火墙 / 路由器 | pfSense 2.8.1 | VLAN 路由, NAT, DHCP, 防火墙规则 | | IDS | Suricata 7.0.11 (运行于 pfSense) | LAN 接口上的网络入侵检测 | | SIEM | Wazuh 4.14.2 | 日志收集、文件完整性监控、告警 | | 管理型交换机 | TP-Link TL-SG108E | 802.1Q VLAN trunking | | 无线 AP | TP-Link Omada EAP723 | 3 个由 VLAN 分段的 SSID | | WAN 适配器 | UGREEN USB NIC (ASIX AX88179) | pfSense 的专用 WAN 上行链路 | | 攻击 VM | Kali Linux 2025.4 | 进攻性安全测试 | | 目标 VM | Ubuntu Server, Windows 11 | 带有 Wazuh agent 的端点 | | 硬件 | 规格 | |---|---| | Lenovo ThinkCentre M910q | 32 GB 内存 · 1 TB NVMe | ## 🌐 网络设计 四个在交换机上强制执行并由 pfSense 路由的 VLAN,每个都有专用的 DHCP 作用域和防火墙规则集: | VLAN | 名称 | 用途 | 网关 | |---|---|---|---| | 1 | 管理网络 (Management) | Proxmox 管理,PC2 访问 | — | | 20 | 实验网络 (Lab) | 隔离的攻防网络 | pfSense LAN | | 40 | 访客网络 (Guest) | 仅供访客使用的 WiFi | pfSense GUEST | | 50 | IoT 网络 (IoT) | 受限的智能设备 | pfSense IOT | ISP 网关 (Rogers Ignite) 运行在桥接模式下,通过一个**专用 USB NIC** 为 pfSense 提供干净的 WAN 路径——让 WAN 流量完全脱离 VLAN trunk。 ## 📊 监控技术栈 ### Wazuh 4.14.2 (SIEM) Wazuh 作为专用 VM 运行,包含完整的技术栈(manager、indexer、dashboard)。所有三个目标 VM 上的 agent 都通过端口 1514 发送日志。Filebeat pipeline 将解析后的事件路由到 indexer 中进行仪表板可视化。 当前的监控范围包括文件完整性监控 (FIM)、安全事件关联以及 agent 健康状况追踪。pfSense 防火墙日志通过 syslog 接入。 ### Suricata 7.0.11 (网络 IDS) Suricata 作为 pfSense 软件包运行在 **LAN 接口 (VLAN 20)** 上,检查进出实验室网络的所有流量。它运行在 **IDS 模式**(检测和记录,而不是阻断)下,并启用了 EVE JSON 输出以进行 SIEM 集成。 **规则来源:** Emerging Threats Open (ET Open) —— 拥有 26,000+ 条规则,涵盖扫描检测、漏洞利用特征、恶意软件通信、DNS 滥用和攻击响应模式。 **为什么选择 LAN 而不是 WAN:** 在 WAN 接口上运行 Suricata 基本上会重复 pfSense 默认的“拒绝所有”入站策略。而在 LAN 接口上,它能捕获真正重要的流量——出站的命令与控制 (C2)、横向移动模式以及对攻击工具的响应。 ### Suricata → Wazuh 集成 Suricata 的 EVE JSON 告警日志通过自定义的 UDP 转发器脚本从 pfSense 转发到 Wazuh manager。Wazuh 内置的 Suricata 解码器(规则组 `suricata`,规则 ID `86601`)会自动解析传入的告警,并使用 MITRE ATT&CK 分类对其进行扩充。 这使得实验室拥有了一个**单一管理平台**视图:来自 Wazuh agent 的端点安全事件与来自 Suricata 的网络入侵告警并排显示在同一个仪表板中。 ## 🧠 经验教训 该 PDF 记录了*什么出现了故障以及我是如何修复它的*。本节涵盖了*这些问题真正教会了我什么*——故障排除背后的思考过程。 ### 每一层都会影响其他每一层 这是最重要的一课。当 Proxmox 防火墙标志悄悄阻断了 VM 之间的 ARP 通信时,我花了几个小时怀疑是 pfSense 规则,然后是交换机 trunk 配置的问题,最后才将其定位到一个我原以为不会影响 Layer 2 的 Hypervisor 级别设置。这教会了我要挑战关于问题属于哪一层的假设——答案往往是你没有关注的那一层。 ### “能用”并不等于“配置正确” TL-SG108E 似乎保存了 VLAN 配置,但在重启后又悄悄恢复了原状。Ubuntu VM 获取了正确的静态 IP,直到 cloud-init 在下次启动时悄悄覆盖了它。这两者在测试期间都能正常工作,但在实际运行中却失败了。我现在将“重启后依然存活”视为真正的测试,而不是“现在能用”。 ### 安全工具本身也会带来安全问题 SELinux 阻止了 Wazuh agent 在端口 1514 上的通信。快速的解决方法是使用 permissive mode(宽容模式)——我使用了它,并将其记录了下来。但我也记录了这是一种权衡:在生产环境中,正确的做法是编写自定义的 SELinux 策略,而不是禁用强制访问控制。既知道捷径,又知道为什么它是捷径,这就是实验室练习与真正的工程判断之间的区别。 ### 变通方法是可行的——未记录在案的变通方法就是债务 让 Rogers 网关进入桥接模式本身就是一次故障排除的实践——它最初很不稳定,需要多次尝试才能可靠配置。tap 接口在每次 Proxmox 重启后都需要 post-up 脚本。这些都不是失败——它们是约束条件。但如果我没有把它们记录下来,下一个人(或者未来的我)就会浪费几个小时去重新发现它们。将其写下来也是修复的一部分。 ### 没有遥测数据的工具仅仅是装饰品 搭建 Wazuh 是最简单的部分。困难的部分是 Filebeat pipeline——尽管 agent 正在报告,但仪表板显示零告警。它看起来已经部署了,但它并没有*正常工作*。这种“已安装”和“生成可操作数据”之间的差距是大多数家庭实验室停滞不前的地方。克服这个瓶颈,才能使其成为一个真正的监控技术栈,而不仅仅是为了完成任务的复选框。 ### 虚拟环境打破了关于网络行为的假设 在 Proxmox VM 中的 pfSense 上部署 Suricata 揭示了一个问题:标准校验和验证会在虚拟化环境中悄悄丢弃数据包——因为 Hypervisor 在 guest OS 看不到的层级处理了校验和。Suricata 加载了 26,000+ 条规则并处理了流量,但在正确配置校验和验证之前没有产生任何告警。结论是:当一个检测工具能看到流量但没有产生告警时,问题往往出在该工具与环境的交互方式上,而不是规则本身。 ### 默认的集成路径并不总是正确的路径 将 Suricata 与 Wazuh 集成看似简单——启用 syslog 转发并让 Wazuh 解析即可。但在实际操作中,pfSense 的 syslog 守护进程会将消息截断为 480 字节,从而悄悄地破坏了 JSON 告警数据。Wazuh agent 无法安装在 pfSense 上(FreeBSD 软件包不可用)。最终的解决方案是一个自定义的 EVE JSON 转发器脚本,它通过 UDP 将告警事件直接输送到 Wazuh。有时候,“官方文档”上的集成路径行不通,真正的技能在于找到切实可行的替代方案。 ## 📸 截图 | 视图 | 截图 | |---|---| | Proxmox VM 仪表板 | ![Proxmox](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/323ada7bbc042707.png) | | pfSense 接口分配 | ![pfSense](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/0b82bcb911042714.png) | | pfSense 防火墙规则 | ![pfSense](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/584557d04e042720.png) | | Wazuh 告警仪表板 | ![Wazuh](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/24f94db5b8042727.png) | | Suricata IDS 告警 | ![Suricata](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/31a0826a76042734.png) | | Wazuh SIEM 中的 Suricata 告警 | ![Suricata-Wazuh](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/1b9a0beabd042740.png) | | 交换机 VLAN 配置 | ![VLANs](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/576b590b80042747.png) | ## 📁 仓库结构 ``` homelab-cybersecurity/ ├── README.md ├── LICENSE ├── .gitignore ├── docs/ │ ├── full-lab-writeup.pdf │ ├── architecture-diagram.png │ └── screenshots/ │ ├── proxmox-dashboard.png │ ├── pfsense-interfaces.png │ ├── pfsense-rules.png │ ├── wazuh-alerts.png │ ├── suricata-alert.png │ ├── suricata-wazuh-integration.png │ └── vlan-config.png ├── configs/ │ ├── pfsense/ │ │ └── firewall-rules-summary.md │ ├── wazuh/ │ │ ├── ossec.conf.example │ │ └── filebeat.yml.example │ ├── proxmox/ │ │ └── interfaces.example │ └── switch/ │ └── vlan-assignments.md └── scripts/ ├── post-up-tap.sh └── suricata-fwd.sh ``` ## 🗺️ 路线图 - [x] 部署 Suricata IDS 以进行网络级威胁检测 - [x] 将 Suricata 告警与 Wazuh SIEM 仪表板集成 - [ ] 集成 TheHive 用于事件案例管理 - [ ] 添加 Shuffle SOAR 以实现自动化的响应剧本 - [ ] 通过 MISP 接入威胁情报 - [ ] 使用 Atomic Red Team / Caldera 运行 MITRE ATT&CK 模拟 - [ ] 使用 OpenVAS 添加漏洞扫描 ## 🎓 认证 - CompTIA Security+ - Google Cybersecurity Analyst Certificate ## 📄 许可证 该项目基于 [MIT 许可证](LICENSE) 授权。
标签:Metaprompt, pfSense, Proxmox VE, Wazuh, x64dbg, 家庭实验室, 应用安全, 网络安全, 网络隔离, 隐私保护