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