Lycius1/HomeLab
GitHub: Lycius1/HomeLab
一套基于 Windows 11 + WSL2 的自托管家庭网络安全监控技术栈,整合了 DNS 过滤、SIEM 威胁检测、集中日志管理和数据可视化能力。
Stars: 0 | Forks: 0
# 🏠 HomeLab 安全技术栈
一个基于 Windows 11 + WSL2 构建的自托管网络安全监控与威胁检测技术栈。旨在监控家庭网络流量、检测恶意活动,并为所有连接的设备提供完整的 DNS 级别可见性。
## 技术栈
| 组件 | 角色 | URL |
|-----------|------|-----|
| **Pi-hole** | 全网 DNS 过滤 + 广告拦截(屏蔽超过 150 万个域名) | `http:///admin` |
| **Wazuh** | SIEM、威胁检测、主机监控、CIS 基准测试 | `https://localhost:8443` |
| **Graylog** | 集中式日志采集与搜索 | `http://localhost:9000` |
| **Grafana** | 仪表盘与可视化 | `http://localhost:3000` |
| **OpenSearch** | 日志索引后端 | Internal |
| **MongoDB** | Graylog 元数据存储 | Internal |
## 架构
```
Internet
│
▼
Archer C7 Router
(DHCP DNS → Windows host IP)
│
▼
dnsproxy (Windows host :53)
│
▼
Pi-hole FTL (WSL2 :53)
1.5M blocked domains
│
├──► DNS logs ──► rsyslog ──► Graylog ──► OpenSearch
│ │
└──► Wazuh Agent ──► Wazuh Manager ────────────┤
│
Grafana
```
## 要求
- 安装了 WSL2 (Ubuntu 24.04) 的 Windows 11
- 启用 WSL2 后端的 Docker Desktop
- 16GB+ 内存(该技术栈约占用 6GB)
- Archer C7 或任何支持配置 DHCP DNS 的路由器
## 快速开始
### Pi-hole (WSL2)
```
curl -sSL https://install.pi-hole.net | bash
pihole setpassword
```
禁用 WSL2 DNS 隧道 —— 在 `%USERPROFILE%\.wslconfig` 中添加:
```
[wsl2]
dnsTunneling=false
```
重启 WSL:`wsl --shutdown`
### 2. DNS 代理(Windows 主机)
下载 [dnsproxy v0.81.0+](https://github.com/AdguardTeam/dnsproxy/releases) 并运行:
```
.\dnsproxy.exe -l 0.0.0.0 -p 53 -u :53
```
打开防火墙:
```
netsh advfirewall firewall add rule name="PiHole DNS UDP" dir=in action=allow protocol=UDP localport=53
netsh advfirewall firewall add rule name="PiHole DNS TCP" dir=in action=allow protocol=TCP localport=53
```
### 3. 路由器 DNS
将路由器的 DHCP **主 DNS** 设置为你 Windows 机器的局域网 IP。
### 4. SIEM 技术栈
```
cd homelab
docker compose up -d
```
### Wazuh Agent (Windows)
从与你的 manager 版本匹配的 [Wazuh 发布版](https://github.com/wazuh/wazuh/releases) 下载代理,然后:
```
& "C:\Program Files (x86)\ossec-agent\agent-auth.exe" -m 127.0.0.1 -p 1515
Start-Service WazuhSvc
Set-Service WazuhSvc -StartupType Automatic
```
## 拦截列表
| 列表 | 域名数 | 用途 |
|------|---------|---------|
| [StevenBlack hosts](https://github.com/StevenBlack/hosts) | 88,764 | 广告 + 恶意软件 |
| [Hagezi Pro](https://github.com/hagezi/dns-blocklists) | 379,466 | 多用途 |
| [Hagezi TIF](https://github.com/hagezi/dns-blocklists) | 1,003,462 | 威胁情报 |
| [KADhosts](https://github.com/PolishFiltersTeam/KADhosts) | 62,628 | 欺诈 + 钓鱼 |
**总计:1,384,058 个唯一的被拦截域名**
## 持久化
一个注册为 Windows 计划任务的启动脚本 (`pihole-startup.ps1`) 负责处理:
- 在每次启动时获取最新的 WSL2 IP
- 在 WSL2 内启动 Pi-hole FTL
- 在 Windows 主机上启动 dnsproxy
- 重新添加端口代理规则
## 凭证
在运行该技术栈之前,将 `.env.example` 复制到 `.env` 并填入相应的值。切勿提交 `.env` 文件。
## 已知问题
- WSL2 IP 在重启后会发生变化 —— 由启动脚本处理
- Wazuh Docker 需要在 WSL2 中设置 `vm.max_map_count=262144`
- Windows 上的 53 端口被 HNS (Docker) 占用 —— 请使用 dnsproxy 作为桥接
## 许可证
MIT
标签:AI合规, AMSI绕过, CIS基准测试, DNS代理, DNS过滤, Docker, Grafana, Graylog, Libemu, OISF, PB级数据处理, Pi-hole, Wazuh, Windows 11, WSL2, 主机监控, 互联网扫描, 可视化仪表盘, 威胁检测, 安全运维, 安全防御评估, 家庭实验室, 广告拦截, 无线安全, 日志管理, 架构部署, 网络安全审计, 网络安全监控, 网络流量分析, 自托管, 请求拦截, 驱动开发