Jak uzyskać ochronę prywatności DNS w systemie Linux za pomocą DNS przez TLS
Każdego dnia komputery generują tysiące zapytań DNS, które są wysyłane do Internetu. Niestety, standardowe ustawienia systemu operacyjnego nie zapewniają ochrony tych zapytań, co może prowadzić do naruszenia prywatności, jeśli trafią w niepowołane ręce.
W przeszłości na newsblog.pl poruszałem temat DNSCrypt, które stanowi efektywną metodę zabezpieczania prywatności zapytań DNS. Jednak to nie jedyna dostępna opcja; alternatywą jest przesyłanie zapytań DNS przez protokół TLS.
Metoda 1 – Stubby
Stubby to prosty program dostępny w wybranych dystrybucjach Linuksa, który umożliwia użytkownikom przesyłanie zapytań DNS przez TLS.
Stubby jest kompatybilny z systemami Ubuntu, Debian i Arch Linux. Aby go zainstalować, należy otworzyć terminal, wciskając kombinację klawiszy Ctrl + Alt + T lub Ctrl + Shift + T. Następnie wykonaj polecenia odpowiednie dla używanej dystrybucji Linuksa.
Ubuntu
Aby zainstalować Stubby na Ubuntu, najpierw należy aktywować repozytorium „Universe”. Można to zrobić, wpisując następujące polecenie w terminalu:
sudo add-apt-repository universe
Po dodaniu repozytorium, warto zaktualizować system, aby sprawdzić dostępność nowych pakietów oprogramowania:
sudo apt update
Po zakończeniu aktualizacji, należy zainstalować Stubby za pomocą poniższego polecenia:
sudo apt install stubby
Debian
Dla użytkowników Debiana w wersji 10, Stubby jest dostępny w repozytorium „Main”. Aby go zainstalować, otwórz terminal i użyj polecenia:
sudo apt-get install stubby
Arch Linux
Użytkownicy Arch Linux mogą zainstalować Stubby, jeśli mają aktywne repozytorium „Community”. Aby je włączyć, należy edytować plik /etc/pacman.conf, usuwając znak # przed „Community”, a następnie zaktualizować system.
Po aktywowaniu repozytorium, zainstaluj Stubby za pomocą menedżera pakietów Pacman:
sudo pacman -S stubby
Po skonfigurowaniu Stubby nie trzeba modyfikować plików konfiguracyjnych, ponieważ program domyślnie obsługuje doskonałe usługi DNS z obsługą TLS.
Jeżeli chcesz zmienić usługi DNS, edytuj plik /etc/stubby/stubby.yml.
Ostatnim krokiem jest zmiana domyślnych ustawień DNS w systemie, aby wskazywały na adres 127.0.0.1.
Zmiany w ustawieniach DNS mogą się różnić w zależności od środowiska graficznego, dlatego odsyłam do naszego przewodnika, który szczegółowo opisuje, jak to zrobić.

Po zmianie ustawień DNS na 127.0.0.1, komputer z systemem Linux będzie korzystać z DNS przez TLS!
Metoda 2 – Rozwiązanie Systemd
Choć Stubby jest stosunkowo łatwy w konfiguracji, może nie być dostępny w każdej dystrybucji Linuksa. W takim przypadku warto rozważyć użycie Systemd-resolved, które jest wbudowane w wiele nowoczesnych dystrybucji Linuksa i charakteryzuje się prostotą użytkowania. Przed jego konfiguracją należy jednak wyłączyć aktualnie używany system buforowania DNS, jeśli jest aktywny.
Aby skonfigurować Systemd-resolved, otwórz terminal, wciskając Ctrl + Alt + T lub Ctrl + Shift + T. Następnie wyłącz aktualny system pamięci podręcznej DNS:
Jeśli używasz DNS Masq:
sudo systemctl stop dnsmasq.service
sudo systemctl disable dnsmasq.service -f
Jeżeli korzystasz z NSCD:
sudo systemctl stop nscd.service -f
sudo systemctl disable nscd.service -f
Po wyłączeniu aktualnego dostawcy DNS, przystąp do uruchomienia Systemd-resolved:
sudo systemctl enable systemd-resolved.service -f
sudo systemctl start systemd-resolved.service
Gdy Systemd-resolved jest aktywny, można skonfigurować go do korzystania z DNS przez TLS. W tym celu edytuj plik konfiguracyjny w edytorze Nano:
sudo nano -w /etc/systemd/resolved.conf

W pliku Resolved.conf znajdź linię zaczynającą się od „DNS =” i dodaj tam bezpieczny serwer DNS, na przykład CloudFlare:
DNS=1.1.1.1
Następnie edytuj linię „Domains =”, aby wyglądała następująco:
Domains=~.
Kolejnym krokiem jest edycja ustawienia „DNSOverTLS =”, zmieniając je na:
DNSOverTLS=opportunistic
Po dokonaniu wszystkich zmian zapisz plik, naciskając Ctrl + O, a następnie wyjdź, używając Ctrl + X. Na koniec zrestartuj system DNS, aby aktywować DNS przez TLS z Systemd-resolved:
sudo systemctl restart systemd-resolved