B0bTheSkull/pihole-lab
GitHub: B0bTheSkull/pihole-lab
在树莓派上部署 Pi-hole + unbound 的同时,构建了一套 DNS 层检测工具和完整的监控体系,用于家庭网络的流量分析与安全审计。
Stars: 0 | Forks: 0
# pihole-lab
在树莓派 5 上部署网络级 DNS 沉洞,并分析当你不注意时,你的家庭网络*实际上*在做什么。
## 项目简介
这是一个关于将 [Pi-hole](https://pi-hole.net/) 部署为家庭网络权威 DNS 解析器的文档,同时结合 [unbound](https://nlnetlabs.nl/projects/unbound/) 进行递归解析,从而避免对单一上游提供商的依赖。
这不是一篇简单的“我点击了安装”的记录。它包含:
- 将 DNS 层过滤部署在网络中所有设备前方的**架构推理**
- 包含具体配置和每一步验证的**部署过程**
- 对部署前后的网络状态进行**流量分析**——哪些 IoT 设备在与外部通信、频率如何,以及通信目标
- 对解析器本身的**安全加固**,使其免于成为单点故障或被攻破的突破口
## 硬件
| 组件 | 详情 |
|---|---|
| 主板 | Raspberry Pi 5 (8GB) |
| 存储 | 117GB SSD,通过 USB 连接 |
| 操作系统 | Debian 12 (Bookworm), arm64 |
| 网络 | 以太网,LAN 静态租约 |
## 仓库结构
```
pihole-lab/
├── README.md # this file
├── writeup.md # the blog post
├── docs/
│ ├── 00-overview.md # what Pi-hole is and why network-level DNS filtering matters
│ ├── 01-architecture.md # how the request path actually works
│ ├── 02-deployment.md # step-by-step build with verification
│ ├── 03-analysis.md # reading the dashboard, finding the noisy devices
│ └── 04-hardening.md # locking down the resolver itself
├── configs/ # exported Pi-hole + unbound config
├── screenshots/ # captures referenced in docs
├── tools/ # detection tooling built on top of Pi-hole
│ ├── doh_dot_detector/ # block + detect DoH/DoT bypass attempts
│ ├── canary/ # internal honey-domains + watcher
│ ├── dga_detector/ # entropy/bigram triage of suspicious domains
│ ├── device_profile/ # per-client DNS report generator
│ └── suricata_correlation/ # join Suricata flows with Pi-hole answers
└── monitoring/ # observability stack
├── docker-compose.yml # Prometheus + Grafana + pihole-exporter
├── prometheus.yml
├── grafana/ # auto-provisioned dashboard
└── loki/ # log shipping (Loki + promtail)
```
## 构建的检测工具
这不仅仅是“我安装了 Pi-hole”。`tools/` 目录中增加了一个小型检测工具库,将解析器转变为被动传感器:
| 工具 | 检测目标 |
|---|---|
| **DoH/DoT 检测器** | 尝试通过加密 DNS 绕过解析器的设备 |
| **Canary 域名** | 内部侦察、配置错误的主机、浏览器历史记录泄露 |
| **DGA 检测器** | 算法生成的 C2 域名(基于熵 + 二元语组筛选) |
| **设备分析** | “我的局域网中哪个设备网络活动最频繁,为什么?” |
| **Suricata 关联器** | 连接到客户端从未解析过的 IP 的流量(硬编码回调、隧道) |
每个工具都是一个单独的 Python 脚本加一个 README;没有繁重的依赖项,可以在树莓派或任何对 `pihole-FTL.db` 有读取权限的主机上运行。
## 展示技能
- DNS 协议基础(递归、缓存、DNSSEC)
- Linux 服务部署与 systemd unit 安全加固
- DNS 层面的网络流量分析
- 对自托管基础设施的威胁建模
- 适合非专业读者阅读的文档编写
## 项目状态
构建于 2026 年 4 月。目前为活跃部署状态。
标签:AMSI绕过, API集成, Debian, DGA检测, DNS下沉, DNS安全, DNS层检测, DNS解析器, DNS过滤, DoH/DoT检测, Grafana, IoT安全, Loki, Metaprompt, Mr. Robot, Pi-hole, Raspberry Pi, Suricata, Unbound, 内存执行, 可观测性, 告警关联, 威胁检测, 家庭实验室, 开源安全工具, 教程与文档, 旁路检测, 树莓派5, 现代安全运营, 网络安全, 网络安全监控, 网络流量分析, 自定义请求头, 蜜罐技术, 设备画像, 请求拦截, 逆向工具, 逆向工程平台, 递归DNS, 配置加固, 金丝雀域名, 防御架构, 隐私保护, 驱动开发