valerieolg/Homelab
GitHub: valerieolg/Homelab
一个基于真实硬件搭建的企业级家庭实验室,通过完整的安全架构和网络隔离来实践网络安全与基础设施运维技能。
Stars: 0 | Forks: 0
# Homelab
**由一名拥有 8 个月经验的网络安全专业学生构建,旨在通过亲手实践来学习企业级基础设施,而不仅仅是纸上谈兵。**
该实验室在家模拟了一个类似企业的网络。它使用了真实的硬件、真实的网络隔离、带有 IDS 的功能性防火墙、VPN、Active Directory 和 SIEM。它也被用作针对我自己网络的渗透测试环境。
## 硬件
| 设备 | 角色 |
|---|---|
| HPE ProLiant DL180 Gen10 | 主服务器 (Proxmox hypervisor) |
| HP Switch 1820 24端口 | 可网管交换机 (VLAN trunking) |
| TP-Link Archer A6 | 辅助路由器 / 双重 NAT 层 |
| ISP Modem | WAN 上行链路 |
## 架构概述
## 网络拓扑图
| 网络 | 子网 | 用途 |
|---|---|---|
| VLAN10 Management | 192.168.10.0/24 | 笔记本电脑,Proxmox 访问,交换机管理 |
| VLAN20 Lab | 192.168.20.0/24 | 虚拟机,Active Directory,Wazuh,Plex |
| WireGuard VPN | 10.10.10.0/24 | 远程访问 (iPhone + 笔记本电脑) |
## 服务
### 基础设施
| 服务 | 类型 | 描述 |
|---|---|---|
| Proxmox VE | 裸金属 | 运行所有虚拟机的 Hypervisor |
| OPNsense | 虚拟机 | 防火墙,路由器,网关,DHCP,DNS |
| HP Switch 1820 | 物理设备 | VLAN 隔离与 trunking |
### 安全与监控
| 服务 | 类型 | 描述 |
|---|---|---|
| Suricata IDS | OPNsense 插件 | WAN 入侵检测,PCAP 模式,仅警报 |
| Unbound DNS | OPNsense 插件 | 带有 DNSSEC 的递归 DNS,注册 DHCP 租约 |
| WireGuard VPN | OPNsense 插件 | 远程访问 VPN,端口 51820,隧道 10.10.10.0/24 |
| DuckDNS | OPNsense 插件 | 动态 DNS,WAN 变更时自动更新公网 IP |
| Monit | OPNsense 插件 | 服务监控和邮件警报 |
| Wazuh SIEM | 虚拟机 | 集中式日志收集,威胁检测,Proxmox 和 DC-01 上的 agent |
| Active Directory | 虚拟机 | homelab.local 域,DC-01,用于渗透测试练习的故意错误配置 |
### 计划中
| 服务 | 目标 IP | 备注 |
|---|---|---|
| Plex Media Server | 192.168.20.12 | 在 QoS 调优后 |
| HAProxy | OPNsense | 所有虚拟机稳定后的反向代理 |
| Kali Linux | 192.168.20.13 | 渗透测试虚拟机 |
## 安全架构
### 纵深防御层
| 层级 | 工具 | 功能 |
|---|---|---|
| 边界 | OPNsense 防火墙 | 阻止所有未经请求的入站流量,VLAN 隔离 |
| IDS | WAN 上的 Suricata | 对已知的威胁特征发出警报 |
| DNS | Unbound + DNSSEC | 验证 DNS 响应,阻止缓存中毒 |
| 网络隔离 | VLAN 10 和 20 | 管理流量与实验流量相互隔离 |
| 远程访问 | WireGuard VPN | 加密隧道,仅暴露 UDP 51820 |
| SIEM | Wazuh | 集中式日志分析与威胁检测 |
| Active Directory | DC-01 | 带有故意错误配置以供攻击练习的域控制器 |
| 监控 | Monit + 邮件警报 | 在服务发生故障时发出通知 |
### 暴露在互联网上的内容
| 组件 | 是否暴露? | 保护措施 |
|---|---|---|
| OPNsense WAN | 可见公网 IP | 防火墙丢弃所有未经请求的入站流量 |
| WireGuard | 仅 UDP 51820 | 加密、经过身份验证的隧道 |
| 所有内部服务 | 否 | 仅限 LAN 或 VPN |
| Proxmox Web UI | 否 | 仅限 VLAN10 |
| 交换机管理 | 否 | 仅限 VLAN10 |
## 实施阶段
| 阶段 | 重点 | 状态 |
|---|---|---|
| 1 | Proxmox 安装,网络配置,vmbr 设置 | 完成 |
| 2 | OPNsense 虚拟机,WAN/LAN/VLAN 接口 | 完成 |
| 3 | 交换机 VLAN 配置,trunk 端口,笔记本电脑 VLAN | 完成 |
| 4 | 防火墙规则,别名,DHCP,Unbound DNS | 完成 |
| 5 | Suricata IDS,DuckDNS,WireGuard VPN | 完成 |
| 6 | Monit 监控,计划任务规则,QoS 占位符 | 完成 |
| 7 | Wazuh SIEM 虚拟机 | 完成 |
| 8 | Active Directory 虚拟机 | 完成 |
| 9 | Plex 虚拟机,QoS 调优 | 计划中 |
| 10 | HAProxy 反向代理 | 计划中 |
| 11 | 渗透测试实验练习 | 计划中 |
## 展现的技能
- 在可网管交换机上使用 VLAN 进行网络隔离
- 具备纵深防御的防火墙设计 (OPNsense)
- 入侵检测部署与规则集配置 (Suricata)
- 结合 DNSSEC 和递归解析器的 DNS 安全
- 通过双重 NAT 搭建 WireGuard VPN
- 动态 DNS 配置 (DuckDNS)
- 服务监控与警报
- 虚拟化与虚拟机管理 (Proxmox VE)
- Active Directory 与 Windows Server 管理
- SIEM 部署与日志分析
- 渗透测试基础 (计划中)
## 仓库结构
## 主要挑战与经验教训
几个重点内容 - 完整列表见各个相关文档:
- 务必在将笔记本电脑端口切换到交换机上的新 VLAN 之前配置好 OPNsense 的 DHCP 和防火墙规则,否则会失去所有网络连接
- OPNsense 26.1 中的 WireGuard 无法在隧道接口上设置静态 IP - 需在动态网关策略中使用 IPv4 类型 None
- 双重 NAT 要求在两台设备上同时进行端口转发,VPN 才能正常工作
- 即使 WireGuard 运行正常,端口检测工具也总是显示 UDP 为关闭状态 - 请改为在 OPNsense 中检查握手状态
- Wazuh agent 版本必须匹配或低于 manager 版本 - 请显式指定版本号
## 敏感数据声明
本仓库未发布管理界面的真实 IP、DuckDNS 子域名以及 VPN 端点。网络子网已准确记录。基础设施设备的特定主机地址已被隐去。
## 网络拓扑图
| 网络 | 子网 | 用途 |
|---|---|---|
| VLAN10 Management | 192.168.10.0/24 | 笔记本电脑,Proxmox 访问,交换机管理 |
| VLAN20 Lab | 192.168.20.0/24 | 虚拟机,Active Directory,Wazuh,Plex |
| WireGuard VPN | 10.10.10.0/24 | 远程访问 (iPhone + 笔记本电脑) |
## 服务
### 基础设施
| 服务 | 类型 | 描述 |
|---|---|---|
| Proxmox VE | 裸金属 | 运行所有虚拟机的 Hypervisor |
| OPNsense | 虚拟机 | 防火墙,路由器,网关,DHCP,DNS |
| HP Switch 1820 | 物理设备 | VLAN 隔离与 trunking |
### 安全与监控
| 服务 | 类型 | 描述 |
|---|---|---|
| Suricata IDS | OPNsense 插件 | WAN 入侵检测,PCAP 模式,仅警报 |
| Unbound DNS | OPNsense 插件 | 带有 DNSSEC 的递归 DNS,注册 DHCP 租约 |
| WireGuard VPN | OPNsense 插件 | 远程访问 VPN,端口 51820,隧道 10.10.10.0/24 |
| DuckDNS | OPNsense 插件 | 动态 DNS,WAN 变更时自动更新公网 IP |
| Monit | OPNsense 插件 | 服务监控和邮件警报 |
| Wazuh SIEM | 虚拟机 | 集中式日志收集,威胁检测,Proxmox 和 DC-01 上的 agent |
| Active Directory | 虚拟机 | homelab.local 域,DC-01,用于渗透测试练习的故意错误配置 |
### 计划中
| 服务 | 目标 IP | 备注 |
|---|---|---|
| Plex Media Server | 192.168.20.12 | 在 QoS 调优后 |
| HAProxy | OPNsense | 所有虚拟机稳定后的反向代理 |
| Kali Linux | 192.168.20.13 | 渗透测试虚拟机 |
## 安全架构
### 纵深防御层
| 层级 | 工具 | 功能 |
|---|---|---|
| 边界 | OPNsense 防火墙 | 阻止所有未经请求的入站流量,VLAN 隔离 |
| IDS | WAN 上的 Suricata | 对已知的威胁特征发出警报 |
| DNS | Unbound + DNSSEC | 验证 DNS 响应,阻止缓存中毒 |
| 网络隔离 | VLAN 10 和 20 | 管理流量与实验流量相互隔离 |
| 远程访问 | WireGuard VPN | 加密隧道,仅暴露 UDP 51820 |
| SIEM | Wazuh | 集中式日志分析与威胁检测 |
| Active Directory | DC-01 | 带有故意错误配置以供攻击练习的域控制器 |
| 监控 | Monit + 邮件警报 | 在服务发生故障时发出通知 |
### 暴露在互联网上的内容
| 组件 | 是否暴露? | 保护措施 |
|---|---|---|
| OPNsense WAN | 可见公网 IP | 防火墙丢弃所有未经请求的入站流量 |
| WireGuard | 仅 UDP 51820 | 加密、经过身份验证的隧道 |
| 所有内部服务 | 否 | 仅限 LAN 或 VPN |
| Proxmox Web UI | 否 | 仅限 VLAN10 |
| 交换机管理 | 否 | 仅限 VLAN10 |
## 实施阶段
| 阶段 | 重点 | 状态 |
|---|---|---|
| 1 | Proxmox 安装,网络配置,vmbr 设置 | 完成 |
| 2 | OPNsense 虚拟机,WAN/LAN/VLAN 接口 | 完成 |
| 3 | 交换机 VLAN 配置,trunk 端口,笔记本电脑 VLAN | 完成 |
| 4 | 防火墙规则,别名,DHCP,Unbound DNS | 完成 |
| 5 | Suricata IDS,DuckDNS,WireGuard VPN | 完成 |
| 6 | Monit 监控,计划任务规则,QoS 占位符 | 完成 |
| 7 | Wazuh SIEM 虚拟机 | 完成 |
| 8 | Active Directory 虚拟机 | 完成 |
| 9 | Plex 虚拟机,QoS 调优 | 计划中 |
| 10 | HAProxy 反向代理 | 计划中 |
| 11 | 渗透测试实验练习 | 计划中 |
## 展现的技能
- 在可网管交换机上使用 VLAN 进行网络隔离
- 具备纵深防御的防火墙设计 (OPNsense)
- 入侵检测部署与规则集配置 (Suricata)
- 结合 DNSSEC 和递归解析器的 DNS 安全
- 通过双重 NAT 搭建 WireGuard VPN
- 动态 DNS 配置 (DuckDNS)
- 服务监控与警报
- 虚拟化与虚拟机管理 (Proxmox VE)
- Active Directory 与 Windows Server 管理
- SIEM 部署与日志分析
- 渗透测试基础 (计划中)
## 仓库结构
## 主要挑战与经验教训
几个重点内容 - 完整列表见各个相关文档:
- 务必在将笔记本电脑端口切换到交换机上的新 VLAN 之前配置好 OPNsense 的 DHCP 和防火墙规则,否则会失去所有网络连接
- OPNsense 26.1 中的 WireGuard 无法在隧道接口上设置静态 IP - 需在动态网关策略中使用 IPv4 类型 None
- 双重 NAT 要求在两台设备上同时进行端口转发,VPN 才能正常工作
- 即使 WireGuard 运行正常,端口检测工具也总是显示 UDP 为关闭状态 - 请改为在 OPNsense 中检查握手状态
- Wazuh agent 版本必须匹配或低于 manager 版本 - 请显式指定版本号
## 敏感数据声明
本仓库未发布管理界面的真实 IP、DuckDNS 子域名以及 VPN 端点。网络子网已准确记录。基础设施设备的特定主机地址已被隐去。标签:Metaprompt, Terraform 安全, 基础设施, 家庭实验室, 网络安全, 网络架构, 虚拟化, 隐私保护