BrandonRoos/Home-Lab

GitHub: BrandonRoos/Home-Lab

一个集 VLAN 网络分段、零信任远程访问与 Wazuh SIEM 检测工程于一体的虚拟化家庭安全实验室项目。

Stars: 0 | Forks: 0

# 🏠 家庭实验室 ### 网络工程 · 安全运营 · 检测工程 一个网络分段、安全优先的家庭网络,辅以虚拟化 SOC 实验室 —— 专为真实的检测工程而构建,而不仅仅是为了保持运行时间。
![pfSense](https://img.shields.io/badge/pfSense-212121?style=for-the-badge&logo=pfsense&logoColor=white) ![Proxmox](https://img.shields.io/badge/Proxmox_VE-E57000?style=for-the-badge&logo=proxmox&logoColor=white) ![Wazuh](https://img.shields.io/badge/Wazuh-005C99?style=for-the-badge) ![Linux](https://img.shields.io/badge/Linux-FCC624?style=for-the-badge&logo=linux&logoColor=black) ![Kali](https://img.shields.io/badge/Kali_Linux-557C94?style=for-the-badge&logo=kalilinux&logoColor=white) ![Atomic Red Team](https://img.shields.io/badge/Atomic_Red_Team-D62828?style=for-the-badge) ![MITRE ATT&CK](https://img.shields.io/badge/MITRE_ATT%26CK-C41E3A?style=for-the-badge)

## 目录 **第一部分 — 家庭网络** *(已部署)* - [网络概览](#network-overview) - [防火墙 — pfSense](#firewall-pfsense) - [VLAN 分段](#vlan-segmentation) - [DNS — Quad9](#dns-quad9) - [无线接入点](#wireless-access-point) - [远程访问 — Twingate 与旅行路由器](#remote-access) - [监控 — Wazuh](#monitoring-wazuh) **第二部分 — SOC 检测实验室** *(已完成 — [完整报告 ›](https://github.com/BrandonRoos/wazuh-detection-engineering-lab))* - [实验室概览](#lab-overview) - [硬件与 Hypervisor](#hardware-hypervisor) - [VM 架构](#vm-architecture) - [SIEM — Wazuh SOC 实例](#siem-wazuh-soc) - [攻击模拟与检测工程](#attack-simulation) - [本地 AI 日志分析](#local-ai)
# 第一部分 — 家庭网络 *生产网络。已部署并运行。*
## 🗺️ 网络概览 这个家庭实验室设置展示了我对高级网络管理和网络安全实践的掌握。通过利用 pfSense、VLAN、网管交换机、SIEM 集成,以及通过旅行路由器和 VPN 进行安全的远程访问,我构建了一个强大且安全的环境,支持广泛的网络活动,同时确保了最佳的性能和安全性。这个项目凸显了我设计、实施和管理复杂网络基础设施的能力,使我为网络管理和网络安全方面的角色做好了充分准备。 ## 🔥 防火墙 — pfSense [![pfSense](https://img.shields.io/badge/pfSense-Website-blue?style=flat-square)](https://www.pfsense.org/) 我的网络核心是一个 **pfSense 防火墙**,这是一个强大的开源解决方案,提供高级安全、路由和 VPN 功能。pfSense 设置与 VLAN 配置集成,以确保网络不同部分之间的通信是分段和安全的。这允许对流量进行精确控制,确保每个 VLAN 都在其指定的边界内运行,从而增强安全性。
## 🧩 VLAN 分段 网管交换机划分了三个独立的 VLAN,按功能隔离流量: | VLAN | 用途 | 隔离性 | |:----:|:--------|:----------| | **VLAN 1** | 默认网络 — 常规流量和设备通信 | 标准 | | **VLAN 2** | 网络媒体 — 位于优化分段上的流媒体和媒体设备 | 带宽隔离 | | **VLAN 3** | 测试台 — 实验和预发布 | **完全隔离** | **测试台 (VLAN 3)** 与其他网络设备完全隔离。这对于测试新配置、更新或软件而不影响网络的稳定性和安全性至关重要 —— 这是一个受控的实验环境,可在部署到更广泛的基础设施之前进行改进。 **网络媒体 (VLAN 2)** 防止媒体流干扰其他网络操作。这个专用 VLAN 优化了带宽使用,提供了流畅、不间断的体验,同时在其他 VLAN 上为关键任务保持高性能。
## 🛡️ DNS — Quad9 [![Quad9](https://img.shields.io/badge/Quad9-Website-blue?style=flat-square)](https://quad9.net/) 端口 53 上的 DNS 解析由 **Quad9** 处理,这是一个免费、专注于安全的解析器,利用来自网络安全合作伙伴的威胁情报来阻止已知的恶意域名。 ``` IPv4 9.9.9.9 · 149.112.112.112 IPv6 2620:fe::fe · 2620:fe::9 ``` **为什么选择 Quad9:** - **恶意软件拦截** — 自动拦截已知用于分发恶意软件、网络钓鱼和僵尸网络的域名,减少解析层面的攻击面 - **注重隐私** — 不存储个人身份信息 (PII) - **全球威胁情报** — 整合了来自 19 家以上网络安全机构的信息源,提供针对新出现威胁的实时保护 - **高弹性** — 全球分布式基础设施即使在重负载或网络中断的情况下也能提供高可用性和快速解析
## 📶 无线接入点 无线接入点将连接扩展到无线设备,同时保持安全性和性能标准。它支持 **多个 SSID,每个都映射到特定的 VLAN**,确保无线流量根据整体网络设计进行分段和管理 —— 无线客户端会落入正确的安全区域,而不是扁平的无线网络。
## 🔐 远程访问 — Twingate 与旅行路由器 [![Twingate](https://img.shields.io/badge/Twingate-Documentation-blue?style=flat-square)](https://www.twingate.com/docs/) ### Twingate — 零信任访问 为了给主要的旅行笔记本电脑提供安全、零信任的访问,我在主服务器上添加了 **Twingate**。我现在可以连接到我的服务器,而无需将其暴露给公众,确保访问受到严格安全策略的验证和批准。通过消除对传统 VPN 的需求,此配置提高了性能并降低了延迟,同时保持了高安全性 —— 我可以在任何地方安全地监督我的服务器,同时对潜在入侵者隐藏我的网络。 **为什么选择 Twingate 而不是传统 VPN:** | 优势 | 在实践中意味着什么 | |:----------|:--------------------------| | **最小权限访问** | 规则允许我的笔记本电脑访问服务器上*仅限*所需的服务 —— 而不是整个网络。限制设备被入侵时的爆炸半径。 | | **分流 (Split tunneling)** | 只有服务器流量通过加密连接路由。正常的浏览和流媒体不会被不必要的重新路由减慢。 | | **无公共 VPN 网关** | 传统 VPN 暴露了面向互联网的入口点,是常见的攻击目标。Twingate 使内部资源**对未授权用户不可见** —— 没有供扫描或暴破的攻击面。 | | **MFA 集成** | 即使凭据被泄露,攻击者也需要第二因素。 | | **情境访问控制** | 策略可以基于设备安全态势、位置和访问时间。 | 集中的日志记录和监控还提供了对访问模式更好的可见性,使识别和处理潜在风险变得更加容易。此部署显著改善了我远程服务器访问的**安全性和可用性**,符合**零信任网络**模型。 ### 带 VPN 的旅行路由器 **旅行路由器**通过 VPN 连接回我的家庭网络,允许从任何地方安全访问内部资源。这在使用公共或不信任的互联网连接时保护了数据 —— 通过 VPN 路由流量意味着无论我物理上在哪个网络上,我都可以安全地访问我的家庭网络和媒体。
## 👁️ 监控 — Wazuh [![Wazuh](https://img.shields.io/badge/Wazuh-Website-blue?style=flat-square)](https://wazuh.com/) **Wazuh** 作为家庭网络的 SIEM 运行,通过实时分析和警报持续监控威胁和异常情况。
# 第二部分 — SOC 检测实验室 *虚拟化检测工程环境。已完成。*
## 🎯 实验室概览 一个专用的、虚拟化的 SOC 实验室,旨在进行真正的检测工程 —— 而不仅仅是收集日志。工作流是一个闭环: ``` Simulate attack → Watch what the SIEM catches → Find the gaps ↑ ↓ Validate the rule ← Write a custom detection ←────────┘ ``` 攻击技术在一次性靶机上执行,警报在 Wazuh 中进行评估,任何逃脱默认规则集的技术都会被编写、部署和验证一个**自定义检测规则**。一切都映射到 **MITRE ATT&CK**。
## 🖥️ 硬件与 Hypervisor | 组件 | 规格 | |:----------|:-----| | **主机** | Lenovo ThinkCentre M710q Tiny | | **CPU** | Intel i5 (第 7 代) | | **RAM** | 32GB DDR4 SODIMM *(从 16GB 升级 — 2×16GB)* | | **存储** | M.2 SSD | | **Hypervisor** | Proxmox VE |
## 🧱 VM 架构 四台 VM 共享 32GB 的主机。内存通过 **ballooning** 管理,以便空闲 VM 将 RAM 释放给实际需要的工作负载。
SOC lab architecture

| VM | 角色 | RAM | Ballooning | |:---|:-----|:----|:-----------| | **Wazuh** | SIEM — 管理器、索引器、仪表板 (多合一) | 8–12GB | **固定** — OpenSearch JVM 在启动时预分配其堆内存;ballooning 会导致索引器在运行期间被 OOM 杀死 | | **Ollama** | 用于日志分析和警报丰富化的本地 LLM | 4–12GB | 动态 | | **靶机 (Victim)** | 一次性攻击模拟靶机。已快照以便立即恢复。 | 1–4GB | 动态 | | **Kali** | 攻击机 — 枚举、扫描、攻击工具 | 2–4GB | 动态 | **KSM (内核同页合并)** 在主机级别启用 —— 由于这些 VM 共享相似的 Debian/Ubuntu 基础镜像,去重相同的内存页在 32GB 的预算下回收了可观的余量。
## 📡 SIEM — Wazuh SOC 实例 在专用的 Ubuntu Server VM 上部署了单节点 **多合一** 的 **Wazuh 4.14.6** 安装(管理器 + 索引器 + 仪表板)—— 使用 VM 而不是容器,这与 Wazuh 在生产环境中的实际部署方式是一致的。 **防火墙规则 (pfSense):** | 端口 | 协议 | 用途 | |:-----|:---------|:--------| | `1514` | TCP/UDP | Agent 事件摄入 | | `1515` | TCP | Agent 注册 | | `443` | TCP | 仪表板 (HTTPS) | **已注册的 Agent:** | Agent | 操作系统 | 角色 | |:------|:---|:-----| | `victim-01` | Ubuntu Server 22.04 | 一次性攻击模拟靶机 |
## ⚔️ 攻击模拟与检测工程 **Atomic Red Team** 针对靶机 VM 执行单独的、映射到 ATT&CK 的技术测试。每次运行都会回答一个问题:*SIEM 捕获它了吗?* | 技术 | ATT&CK ID | 默认规则集 | 采取的行动 | |:----------|:----------|:----------------|:-------------| | Bash 脚本 — 创建并执行 | `T1059.004` | ❌ 漏报 | `/tmp` 上的实时 FIM → 规则 550 已验证 | | 系统信息保存到文件 | `T1082` *(测试 3)* | ❌ 漏报 | 相同的 FIM 控制捕获了它 → 规则 550 | | 主机名发现 | `T1082` *(测试 8)* | ❌ 漏报 *(无文件痕迹)* | `auditd` + 自定义规则 100100 已验证 | **结果:** 确认了三个检测盲点,并通过两个已验证的控制措施予以解决 —— 用于快速文件活动的实时文件完整性监控 (FIM),以及用于不留下文件痕迹活动的 `auditd` 支持的自定义关联规则 (**100100**)。完整的诊断、证据和可部署的配置在 [Wazuh 检测工程实验室 ›](https://github.com/BrandonRoos/wazuh-detection-engineering-lab) 中。 **自定义规则** 直接使用 Wazuh 的 XML 规则语法编写并验证 —— 每条规则都通过重新运行 Atomic 测试直到警报触发来确认。(用于跨EM 比较的可移植 **Sigma** 版本将是下一次迭代的内容。) **调优日志:** 不适用于实验室环境的嘈杂默认规则会被记录和调整,而不是被悄悄忽略 —— 记录了每个调优决策背后的理由。
## 🤖 本地 AI 日志分析 **Ollama** VM 运行一个量化的本地模型,用于警报丰富化和日志总结。 **为什么选择本地而不是云 API:** - **日志数据永远不会离开网络。** 身份验证日志、内部 IP 和主机名正是你不想发送给第三方 API 的数据 —— 这是一个可靠的安全态势,也是任何真实客户参与的必要条件。 - **在迭代和测试时没有按 token 计算的成本。** **架构 — 确定性优先,AI 其次:** 事件在与模型交互*之前*会先匹配已知的 ATT&CK 签名和 IOC 模式。只有模糊不清的尾部事件才会发送给 AI 分析。基于规则的逻辑处理已知情况(可测试、廉价、快速);模型处理规则无法分类的情况。
*作为安全工程的持续实践而构建和记录。*
标签:AI风险缓解, pfSense, Wazuh, 家庭实验室, 网络安全, 网络工程, 隐私保护