Secure DNS Home Lab(Pi-hole + Unbound + TLS構成)
概要
このリポジトリは、個人のホームラボ向けに設計された「安全なDNS」実装のドキュメントを提供します。主要コンポーネントはPi-hole(ネットワーク全体の広告・トラッキングブロッカー兼DNSキャッシュ)とUnbound(再帰的DNSリゾルバ)で、管理画面はLet’s Encrypt発行のTLS証明書でHTTPSを有効化しています。ハードウェアはRaspberry Pi 5を想定し、DNSクエリのプライバシー確保(自前で再帰解決)、DNSSEC検証、証明書のDNSチャレンジによる取得・自動更新など運用上の留意点と手順がPDFでまとめられています。
リポジトリの統計情報
- スター数: 1
- フォーク数: 0
- ウォッチャー数: 1
- コミット数: 3
- ファイル数: 2
- メインの言語: 未指定
主な特徴
- Pi-holeでネットワーク全体の広告・トラッキングを遮断するDNSフィルタリング
- Unboundを用いたローカル再帰リゾルバでプライバシーと応答性能を向上
- Let’s Encrypt(DNSチャレンジ)で管理画面にHTTPSを適用、証明書自動更新を考慮
- Raspberry Pi 5上での実装と運用ノウハウをPDFにて詳細に解説
技術的なポイント
このプロジェクトの肝は「ローカル再帰解決+広告フィルタリング+HTTPS保護」を組み合わせ、外部のDNSプロバイダに依存しないプライバシー重視の環境を作る点にあります。Pi-holeはDNSクエリを受け取り、ブラックリストに合致するドメインをブロック(NXDOMAINやホスト名の置き換え)すると同時に、通常の名前解決要求は上流のUnboundに回します。Unboundはルートヒントを使ってルートサーバから直接再帰的に名前解決を行えるため、ISPや公開DNSのログにクエリが残らない利点があります。また、UnboundはDNSSEC検証をサポートするので、応答の真正性をローカルで検証できる点も重要です。
HTTPSによる管理画面保護では、Let’s Encryptの証明書をDNSチャレンジで取得する方式を採用しています。DNSチャレンジはHTTP/HTTPSポートを外部に晒す必要がなく、家庭内ネットワークかつ静的なパブリックIPを使わない環境や、ファイアウォールでポートが閉じられている状況でも証明書を取得・更新できるメリットがあります。実装上は、CertbotやACMEクライアントのDNSプロバイダプラグイン(またはワイルドカード証明書の利用)を用いて、TXTレコードを自動登録・削除して認証を行うフローが想定されます。
Raspberry Pi 5の採用はリソース面の余裕(16GB RAMモデルなど)により、Unboundのキャッシュサイズを増やして高ヒット率を狙えるのが利点です。キャッシュヒット率が上がれば外向きのトラフィックと遅延が低減します。運用上の注意点としては、Pi-hole管理画面をインターネットに公開する場合のアクセス制御(VPNやIP制限、HTTP認証)、証明書の自動更新確認、ブロックリストの管理と誤ブロック対策、定期的なバックアップ(設定・ブロックリスト・Unboundの設定ファイル)があります。PDFレポートには設定例、コマンド、トラブルシュートも含まれており、ハードウェア初期設定からTLS導入、動作確認まで段階的に説明されています。
プロジェクトの構成
主要なファイルとディレクトリ:
- README.md: file
- Secure_DNS_Home_Lab_Pi-hole_Unbound_TLS.pdf: file
まとめ
家庭用でも手軽に導入でき、プライバシーと運用性を両立したDNS環境の良い実践例です。