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, 主机监控, 互联网扫描, 可视化仪表盘, 威胁检测, 安全运维, 安全防御评估, 家庭实验室, 广告拦截, 无线安全, 日志管理, 架构部署, 网络安全审计, 网络安全监控, 网络流量分析, 自托管, 请求拦截, 驱动开发