LW IT Solutions
« Przegląd bloga /IT & Networks/Tutorials / Infrastruktura Zero-Trust DNS: Unbound i Pi-hole z...
Ten artykuł w innych językach:

Infrastruktura Zero-Trust DNS: Unbound i Pi-hole z DoH oraz DNSSEC

Infrastruktura Zero-Trust DNS: Unbound i Pi-hole z DoH oraz DNSSEC
Spis treści
  1. 1. Założenia architektoniczne: Zero-Trust DNS i rekursja
  2. 2. Instalacja i utwardzanie serwera Unbound krok po kroku
  3. 3. Integracja z Pi-hole i opcjonalny tunel DoH krok po kroku
  4. 4. Podsumowanie i wartość architektoniczna
  5. Pytania i odpowiedzi
  6. Źródła

Poleganie na zewnętrznych, publicznych serwerach DNS (takich jak 8.8.8.8 czy 1.1.1.1) wiąże się z koniecznością przekazywania pełnych metadanych o aktywności sieciowej podmiotom trzecim. Nawet w przypadku stosowania szyfrowania transportowego, centralni dostawcy DNS mają możliwość rejestrowania zapytań i profilowania ruchu. Wdrożenie architektury Zero-Trust DNS poprzez połączenie systemu Pi-hole z lokalnym, rekursywnym serwerem weryfikującym Unbound całkowicie eliminuje zależność od operatorów zewnętrznych. Samodzielne odpytywanie serwerów pierwiastkowych (Root Servers) z jednoczesną walidacją DNSSEC gwarantuje integralność kryptograficzną, chroniąc sieć przed fałszowaniem pamięci podręcznej (cache poisoning) oraz manipulacją ze strony dostawcy Internetu; przed podsłuchem na łączu samo to nie chroni.

1. Założenia architektoniczne: Zero-Trust DNS i rekursja

W standardowej konfiguracji sieciowej zapytania DNS są przesyłane dalej do operatora ISP lub publicznego resolwera. Lokalna architektura Zero-Trust rozdziela to zadanie na dwa odrębne etapy:

  • Pi-hole (DNS Sinkhole i moduł filtrujący): Przechwytuje zapytania z urządzeń lokalnych, blokując ruch telemetryczny, reklamy i domeny złośliwe na podstawie czarnych list.
  • Unbound (Serwer rekursywny i walidator): Otrzymuje prawidłowe zapytania od Pi-hole i samodzielnie przechodzi przez hierarchię DNS (Root Servers → TLD Servers → Serwery autorytatywne). Każda odpowiedź jest sprawdzana pod kątem kryptograficznych podpisów DNSSEC przed zapisaniem w lokalnej pamięci podręcznej.
Ścieżka DNS od klientów lokalnych przez Pi-hole i Unbound do serwerów root, z sinkhole dla zablokowanych domen i walidacją DNSSEC
Dwa etapy zamiast jednego upstreamu: Pi-hole filtruje, Unbound rozwiązuje resztę samodzielnie od serwerów root. Żaden zewnętrzny serwer DNS nie widzi pełnej historii zapytań, a DNSSEC zabezpiecza każdą odpowiedź.

2. Instalacja i utwardzanie serwera Unbound krok po kroku

W celu skonfigurowania serwera Unbound jako wysoko zabezpieczonego resolwera rekursywnego na systemie Linux (np. Debian lub Raspberry Pi OS), należy zrealizować poniższą procedurę:

  1. Instalacja pakietów: Instalacja serwera DNS i narzędzi kryptograficznych:
    sudo apt update && sudo apt install unbound unbound-anchor -y
  2. Konfiguracja kotwicy zaufania DNSSEC: Pobranie oficjalnego klucza głównego (Root Key) do weryfikacji podpisów:
    sudo unbound-anchor -a /var/lib/unbound/root.key
  3. Tworzenie pliku konfiguracyjnego: Utworzenie pliku /etc/unbound/unbound.conf.d/pi-hole.conf ze zoptymalizowanymi parametrami bezpieczeństwa i prywatności:
    server:
        verbosity: 1
        interface: 127.0.0.1
        port: 5335
        do-ip4: yes
        do-udp: yes
        do-tcp: yes
    
        # Bezpieczeństwo i walidacja DNSSEC
        auto-trust-anchor-file: "/var/lib/unbound/root.key"
        harden-glue: yes
        harden-dnssec-stripped: yes
        use-caps-for-id: no
        edns-buffer-size: 1232
        prefetch: yes
        num-threads: 1
    
        # Ochrona prywatności (Minimalizacja ujawnianych danych)
        qname-minimisation: yes
        hide-identity: yes
        hide-version: yes
        private-address: 10.0.0.0/8
        private-address: 172.16.0.0/12
        private-address: 192.168.0.0/16
  4. Restart usługi i weryfikacja działania: Uruchomienie daemona Unbound i przetestowanie walidacji DNSSEC na zdefiniowanym porcie lokalnym:
    sudo systemctl restart unbound
    dig @127.0.0.1 -p 5335 dnssec-failed.org +dnssec (Zapytanie musi zwrócić status SERVFAIL w wyniku błędnego podpisu DNSSEC).

3. Integracja z Pi-hole i opcjonalny tunel DoH krok po kroku

Po poprawnym uruchomieniu rekursji lokalnej, system Pi-hole musi zostać przekierowany wyłącznie na serwer Unbound:

  1. Konfiguracja serwera nadrzędnego w Pi-hole: Otwarcie panelu administracyjnego Pi-hole i przejście do zakładki Settings > DNS.
  2. Wyłączenie zewnętrznych dostawców: Odznaczenie wszystkich domyślnych zewnętrznych serwerów DNS (np. Google, Cloudflare, Quad9).
  3. Wskazanie lokalnego serwera Upstream: W polu Custom 1 (IPv4) należy wpisać lokalne gniazdo Unbound: 127.0.0.1#5335.
  4. Włączenie obsługi DNSSEC: Zaznaczenie opcji Use DNSSEC, aby Pi-hole prawidłowo przekazywał flagi walidacji kryptograficznej do klientów w sieci lokalnej.
  5. Opcjonalne szyfrowanie DNS-over-HTTPS (DoH): W środowiskach sieciowych narażonych na inspekcję pakietów na porcie 53 przez ISP, serwer Unbound da się skonfigurować do kierowania ruchu przez lokalny proxy DoH (np. cloudflared lub dnscrypt-proxy), co zapewnia pełne szyfrowanie TLS w sieciach tranzytowych.

4. Podsumowanie i wartość architektoniczna

Co da się osiągnąć dzięki temu poradnikowi: Wdrożenie niezależnej architektury Zero-Trust DNS, łączącej filtrowanie reklam i zagrożeń w Pi-hole z bezpośrednią rekursją, minimalizacją zapytań i walidacją kryptograficzną DNSSEC w serwerze Unbound.

Wynikająca z tego wartość: Uzyskana zostaje pełna niezależność od komercyjnych dostawców DNS, co uniemożliwia zewnętrznym dostawcom DNS profilowanie oraz monetyzację historii przeglądania sieci lokalnej. Walidacja DNSSEC skutecznie zabezpiecza urządzenia przed atakami typu cache poisoning, spoofing i Man-in-the-Middle, a mechanizm QNAME minimisation sprawia, że do serwerów nadrzędnych wysyłane jest wyłącznie absolutne minimum informacji niezbędnych do ustalenia adresu docelowego.

Pytania i odpowiedzi

Czy własna rekursja w Unbound chroni zapytania DNS przed dostawcą Internetu?

Przed manipulacją tak, przed podsłuchem nie. DNSSEC zabezpiecza autentyczność odpowiedzi, ale niczego nie szyfruje. Unbound odpytuje serwery pierwiastkowe, serwery TLD i serwery autorytatywne bezpośrednio przez port 53, otwartym tekstem, a te zapytania biegną łączem dostawcy. Mechanizm QNAME minimisation ogranicza jedynie to, czego dowiaduje się pojedynczy serwer: serwer pierwiastkowy widzi końcówkę domeny, a nie pełną nazwę. Na samym łączu każde zapytanie pozostaje jednak czytelne.

Szyfrowanie przez DoH, które artykuł podaje jako opcję, zmienia sytuację zasadniczo: Unbound nie przechodzi już sam przez hierarchię, tylko przekazuje wszystkie zapytania operatorowi usługi DoH. Dostawca Internetu nie widzi już żadnego zapytania, za to operator DoH widzi wszystkie, czyli wraca dokładnie taki centralny resolwer, jakiego rekursja miała unikać. Obu rozwiązań nie da się połączyć, bo serwery autorytatywne z reguły nie przyjmują zapytań szyfrowanych.

W obu przypadkach coś zostaje: połączenie, które następuje po rozwiązaniu nazwy, zdradza dostawcy cel przez adres IP, a zwykle także przez nazwę serwera, przesyłaną bez szyfrowania podczas nawiązywania połączenia TLS. Wybór między rekursją a DoH jest więc wyborem, komu zapytania są widoczne, a nie tego, czy w ogóle są widoczne.

Dlaczego niektóre publiczne nazwy wskazujące na adres wewnętrzny przestają się rozwiązywać po przejściu na Unbound?

Wiersze private-address w konfiguracji są ochroną przed DNS rebinding: Unbound usuwa adresy z tych zakresów ze wszystkich odpowiedzi pochodzących z publicznego DNS. Nazwa, która celowo wskazuje na adres wewnętrzny, zostaje więc bez wyniku, dopóki wiersz private-domain: "przyklad.pl" nie wyłączy jej domeny z tej kontroli. Nie dotyczy to lokalnych wpisów w Pi-hole, bo Pi-hole odpowiada na nie sam i w ogóle nie pyta Unbound.

Lukas Wójcik

Lukas Wójcik

Systems architect and technology enthusiast specializing in scalable tracking solutions, GMP Stack (GA4 & GTM), and robust backend architectures. Advocate for clean code and privacy-first design.

Get in Touch

Briefly describe your project or inquiry for a tailored response. This site is protected by reCAPTCHA.

Napisanie komentarza

Doświadczenia z innym sprzętem lub inną wersją oprogramowania oraz pytania o konfigurację są tu mile widziane.

Adres e-mail nie jest publikowany. Pola obowiązkowe oznaczono gwiazdką.

Artykuły i kategorie

CCTV

Śledź tę kategorię przez RSS

Cloud & AI

Wszystkie artykuły w tej kategorii (11) Śledź tę kategorię przez RSS

Data Privacy

Wszystkie artykuły w tej kategorii (18) Śledź tę kategorię przez RSS

Digital Analytics

Wszystkie artykuły w tej kategorii (58) Śledź tę kategorię przez RSS

Digital Marketing

Wszystkie artykuły w tej kategorii (37) Śledź tę kategorię przez RSS

IT & Networks

Wszystkie artykuły w tej kategorii (17) Śledź tę kategorię przez RSS

Music Production

Wszystkie artykuły w tej kategorii (16) Śledź tę kategorię przez RSS

Raspberry Pi

Śledź tę kategorię przez RSS

SaaS & Internet Earning

Artykuły w przygotowaniu

Smart Home

Wszystkie artykuły w tej kategorii (18) Śledź tę kategorię przez RSS

Tworzenie stron internetowych

Wszystkie artykuły w tej kategorii (11) Śledź tę kategorię przez RSS

Wtyczki i triki WordPress

Wszystkie artykuły w tej kategorii (13) Śledź tę kategorię przez RSS