Jak sprawdzić i skonfigurować serwery DNS na Linuxie: Od podstaw po środki bezpieczeństwa

Dokładne sprawdzanie i konfigurowanie serwerów DNS na systemie Linux jest niezwykle ważne dla utrzymania stabilności i efektywności sieci. Ten artykuł zapewnia kompleksowy przewodnik zarówno dla początkujących, jak i zaawansowanych użytkowników na temat sprawdzania i ustawiania serwerów DNS na Linuxie. Zaczynając od podstawowych koncepcji, obejmuje użycie konkretnych narzędzi linii poleceń, edytowanie plików konfiguracyjnych, rozwiązywanie problemów i zawiera praktyczną wiedzę w sposób dokładny. W rezultacie, system Linux stanie się bardziej efektywny w dostępie do zasobów w Internecie.

Spis treści

Co to jest DNS: Podstawowe wyjaśnienie koncepcji

System Nazw Domen (DNS) to system, który konwertuje nazwy domen internetowych na adresy IP i odwrotnie. Odnosi kluczowe znaczenie w umożliwianiu wyszukiwań internetowych i dostępu do stron internetowych poprzez tłumaczenie zapamiętywalnych nazw domen (np. www.przyklad.com) na numeryczne adresy IP (np. 192.0.2.1), które mogą być rozumiane przez komputery. Proces ten, znany jako „rozwiązywanie nazw”, ułatwia pobieranie informacji z internetu.

DNS ma strukturę hierarchiczną z „Głównymi Serwerami DNS” na szczycie, zarządzającymi ostatnią częścią nazw domen (np. .com, .org). Są one następnie śledzone przez „Serwery Domen Najwyższego Poziomu (TLD)”, następnie „Autorytatywne Serwery DNS”, i w końcu „Lokalne Serwery DNS” odpowiadają na zapytania użytkowników w tej strukturze.

Gdy użytkownik wpisuje nazwę domeny w przeglądarce internetowej, lokalny serwer DNS szuka odpowiadającego adresu IP. Jeśli lokalny serwer DNS nie posiada tych informacji, żądanie jest przekazywane do serwerów DNS wyższego poziomu, aż niezbędne informacje zostaną odzyskane. Proces ten zwykle kończy się w ciągu milisekund, pozwalając użytkownikowi na dostęp do strony internetowej.

System DNS jest niezbędny dla infrastruktury internetu, a jego efektywna operacja znacząco wpływa na wydajność i dostępność sieci. Dlatego właściwa konfiguracja i zarządzanie serwerami DNS na systemach Linux jest kluczową umiejętnością dla administratorów systemów.

Jak sprawdzić serwery DNS: Korzystając z narzędzi linii poleceń

Istnieje kilka sposobów na sprawdzenie ustawień serwera DNS na systemach Linux, ale najbardziej bezpośrednią i powszechną metodą jest użycie narzędzi linii poleceń. Tutaj przedstawiamy dwa szeroko używane narzędzia: polecenie cat i polecenie nmcli.

Sprawdzanie /etc/resolv.conf za pomocą polecenia `cat`

Najbardziej podstawową metodą jest wyświetlenie pliku /etc/resolv.conf. Ten plik zawiera adresy serwerów DNS używanych przez system do rozwiązywania nazw DNS. Możesz sprawdzić jego zawartość, wykonując następujące polecenie:

cat /etc/resolv.conf

Wynik może wyglądać tak:

# Wygenerowane przez NetworkManager
search przyklad.com
nameserver 192.168.1.1
nameserver 8.8.8.8

W tym przykładzie linie z nameserver wskazują adresy IP serwerów DNS, z 192.168.1.1 i publicznym adresem DNS Google 8.8.8.8 ustawionymi.

Sprawdzanie serwerów DNS za pomocą polecenia `nmcli`

W systemach używających NetworkManager, możesz użyć polecenia nmcli do sprawdzenia ustawień DNS aktualnego połączenia sieciowego. Następujące polecenie pobiera informacje o serwerze DNS:

nmcli device show | grep IP4.DNS

To polecenie ekstrahuje i wyświetla ustawienia serwera DNS (IPv4) z aktualnych informacji o urządzeniu sieciowym. Wynik może wyglądać tak:

IP4.DNS[1]:                             192.168.1.1
IP4.DNS[2]:                             8.8.8.8

Te metody pozwalają łatwo sprawdzić informacje o serwerze DNS ustawionym na systemie Linux, co może być przydatne do diagnozowania problemów z połączeniem sieciowym lub rozważenia zmian na konkretny serwer DNS.

Jak ustawić serwery DNS: Edytując /etc/resolv.conf

Jedną z podstawowych metod ustawiania serwerów DNS na systemie Linux jest bezpośrednia edycja pliku /etc/resolv.conf. Ten plik zawiera listę serwerów DNS, do których system odwołuje się w celu rozwiązywania nazw DNS. Tutaj wyjaśniamy, jak bezpiecznie edytować ten plik.

Edytowanie pliku /etc/resolv.conf

  1. Najpierw wykonaj kopię zapasową bieżących ustawień. Ważne jest, aby móc przywrócić oryginalny plik w przypadku jakichkolwiek problemów. Użyj następującego polecenia, aby utworzyć kopię zapasową:
sudo cp /etc/resolv.conf /etc/resolv.conf.backup
  1. Następnie użyj edytora tekstu do edycji pliku /etc/resolv.conf. Tutaj używamy edytora nano, ale możesz użyć swojego preferowanego edytora, takiego jak vi lub emacs:
sudo nano /etc/resolv.conf
  1. Gdy plik jest otwarty, dodaj lub edytuj linie zaczynające się od nameserver, aby określić adresy serwerów DNS. Na przykład, aby użyć publicznych adresów DNS Google, należałoby napisać:
nameserver 8.8.8.8
nameserver 8.8.4.4
  1. Po dokonaniu zmian, zapisz plik i wyjdź z edytora. Jeśli używasz nano, naciśnij Ctrl + O, aby zapisać i Ctrl + X, aby wyjść.

Aktywowanie nowych ustawień

Po edycji pliku /etc/resolv.conf, zazwyczaj trzeba zrestartować usługę sieciową, aby zastosować zmiany. Można to zrobić za pomocą następującego polecenia:

sudo systemctl restart network.service

Lub, jeśli używasz NetworkManager, możesz zrestartować połączenie sieciowe za pomocą tego polecenia:

sudo systemctl restart NetworkManager

Stosuje to nowe ustawienia DNS w systemie. Aby upewnić się, że ustawienia działają poprawnie, zaleca się przetestowanie dostępu do stron internetowych lub używanie poleceń takich jak ping do rozwiązywania nazw domen.

Ręczna konfiguracja serwera DNS jest skuteczna do dostosowywania strategii rozwiązywania nazw DNS zgodnie z wymaganiami systemu lub sieci. Jednak ta metoda może nie być odpowiednia na długoterminowe rozwiązania, ponieważ plik /etc/resolv.conf może być automatycznie nadpisywany przez inne procesy. Dlatego rozważ użycie narzędzi takich jak resolvconf, systemd-resolved lub NetworkManager do zarządzania ustawieniami DNS.

Sprawdzanie i zmiana ustawień DNS za pomocą narzędzi linii poleceń

Linux oferuje kilka metod sprawdzania i zmiany ustawień DNS za pomocą linii poleceń, bez polegania na narzędziach GUI. Metody te są szczególnie przydatne w środowiskach serwerowych lub przy zarządzaniu systemami zdalnymi. Tutaj wyjaśniamy metody używając polecenia systemd-resolve i polecenia nmcli.

Sprawdzanie ustawień DNS za pomocą polecenia `systemd-resolve`

W systemach korzystających z systemd, polecenie systemd-resolve można użyć do sprawdzenia aktualnych ustawień DNS. To polecenie jest powiązane z usługą systemd-resolved i zapewnia konfigurację rozwiązywania nazw i statystyki.

Aby sprawdzić ustawienia DNS, wykonaj następujące polecenie:

systemd-resolve --status

To polecenie zapewnia szczegółowe dane wyjściowe, w tym używane serwery DNS, domeny wyszukiwania i inne informacje związane z siecią. Dane wyjściowe są podzielone według interfejsu sieciowego, z każdą sekcją wyświetlającą ustawienia dla tego interfejsu.

Zmiana ustawień DNS za pomocą polecenia `nmcli`

W systemach korzystających z NetworkManager, polecenie nmcli można użyć do zmiany ustawień DNS. nmcli to narzędzie linii poleceń do konfigurowania i zarządzania połączeniami sieciowymi.

Na przykład, aby ustawić serwery DNS dla określonego połączenia, użyj następującego polecenia:

nmcli connection modify <nazwa połączenia> ipv4.dns "8.8.8.8 8.8.4.4"
nmcli connection modify <nazwa połączenia> ipv4.ignore-auto-dns yes
nmcli connection up <nazwa połączenia>

W tym poleceniu, serwery DNS Google (8.8.8.8 i 8.8.4.4) są ustawiane dla połączenia o nazwie <nazwa połączenia>. Opcja ipv4.ignore-auto-dns yes jest używana do ignorowania automatycznie uzyskanych ustawień DNS i używania ręcznie określonych DNS zamiast tego. Wreszcie, polecenie nmcli connection up jest używane do ponownego uruchomienia połączenia i zastosowania nowych ustawień.

Te narzędzia linii poleceń pozwalają na elastyczne sprawdzanie i zmianę ustawień DNS na systemach Linux. Są szczególnie przydatne do zdalnej administracji systemem i automatyzacji za pomocą skryptów.

Ustawienia DNS z systemd-resolved

systemd-resolved to nowoczesny rozwiązujący DNS zintegrowany z menedżerem systemu i usług systemd. Oferuje różne funkcje, takie jak buforowanie DNS, walidacja DNSSEC i kierowanie rekordów, usprawniając proces rozwiązania DNS. Tutaj wyjaśniamy, jak zarządzać ustawieniami DNS za pomocą systemd-resolved.

Przegląd systemd-resolved

systemd-resolved obsługuje żądania rozwiązania DNS od lokalnych aplikacji, buforując odpowiedzi z zewnętrznych serwerów DNS, aby poprawić szybkość i niezawodność rozwiązania nazw. Zarządza również plikiem /etc/resolv.conf, zapewniając strategię rozwiązania DNS na poziomie systemu.

Włączanie i konfigurowanie systemd-resolved

Większość nowoczesnych dystrybucji Linuxa ma systemd-resolved włączone domyślnie. Jednakże, jeśli nie jest włączone, możesz uruchomić i włączyć usługę za pomocą następującego polecenia:

sudo systemctl enable --now systemd-resolved.service

Po włączeniu możesz edytować plik /etc/systemd/resolved.conf, aby ustawić niestandardowe adresy serwerów DNS. Zaleca się wykonanie kopii zapasowej pliku przed edycją.

sudo nano /etc/systemd/resolved.conf

Na przykład, aby użyć publicznych serwerów DNS Google, ustawiłbyś następujące:

[Resolve]
DNS=8.8.8.8 8.8.4.4
FallbackDNS=1.1.1.1 9.9.9.9

Opcja DNS określa adresy IP głównych serwerów DNS do użycia, oddzielone spacjami. FallbackDNS wymienia serwery DNS, które mają być używane, jeśli główne serwery są niedostępne.

Po zmianie ustawień zrestartuj usługę systemd-resolved, aby zastosować zmiany:

sudo systemctl restart systemd-resolved

Związek między systemd-resolved a /etc/resolv.conf

W systemach korzystających z systemd-resolved, zaleca się połączenie pliku /etc/resolv.conf z /run/systemd/resolve/stub-resolv.conf. Umożliwia to korzystanie z lokalnego bufora DNS i funkcji przekazywania zapewnianych przez systemd-resolved. Aby ustawić symboliczne połączenie, użyj następującego polecenia:

sudo ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf

To pozwala systemd-resolved zarządzać procesem rozwiązania DNS w systemie, zapewniając szybsze i bezpieczniejsze połączenie z internetem.

Zarządzanie DNS za pomocą Network Manager

W systemach Linux, Network Manager (NetworkManager) jest najczęściej używanym narzędziem do konfiguracji i zarządzania siecią. Ułatwia zarządzanie różnymi interfejsami sieciowymi, w tym sieciami bezprzewodowymi, sieciami przewodowymi, szerokopasmowymi sieciami mobilnymi i połączeniami VPN. Ustawienia DNS również mogą być zarządzane za pomocą tego narzędzia. Tutaj omawiamy, jak ustawić DNS za pomocą Network Manager.

Zmiana ustawień DNS za pomocą Network Manager

Za pomocą Network Manager możesz zmieniać ustawienia DNS zarówno za pomocą graficznego interfejsu użytkownika (GUI), jak i interfejsu linii poleceń (CLI). Dla CLI, polecenie nmcli jest bardzo przydatne.

Aby zmienić ustawienia DNS dla określonego połączenia sieciowego, najpierw zidentyfikuj nazwę połączenia. Możesz wyświetlić wszystkie dostępne połączenia sieciowe za pomocą następującego polecenia:

nmcli connection show

Następnie, użyj nazwy połączenia do ustawienia serwerów DNS. Następujące polecenie ustawia adresy serwera DNS dla połączenia o nazwie „nazwa połączenia”:

nmcli connection modify "nazwa połączenia" ipv4.dns "8.8.8.8 8.8.4.4"
nmcli connection modify "nazwa połączenia" ipv4.ignore-auto-dns yes
nmcli connection up "nazwa połączenia"

To polecenie ustawia serwery DNS Google (8.8.8.8 i 8.8.4.4) dla określonego połączenia, ignorując automatycznie uzyskane ustawienia DNS. W końcu, połączenie jest restartowane za pomocą nmcli connection up, aby zastosować ustawienia.

Zmiana globalnych ustawień DNS

Możesz również użyć Network Manager do zmiany ustawień DNS dla całego systemu. Aby to zrobić, edytuj plik /etc/NetworkManager/NetworkManager.conf i dodaj opcję dns w sekcji [main]:

[main]
dns=dnsmasq

To ustawienie pozwala Network Manager używać dnsmasq do przetwarzania zapytań DNS. dnsmasq to lekki serwer DNS i DHCP, który zapewnia lokalne rozwiązywanie zapytań DNS i buforowanie, poprawiając szybkość rozwiązania DNS.

Po zmianie ustawień musisz zrestartować Network Manager:

sudo systemctl restart NetworkManager

Zarządzanie DNS za pomocą Network Manager znacznie zwiększa elastyczność i wygodę konfiguracji sieci. Umożliwia użytkownikom łatwą dostosowanie ustawień DNS, optymalizując wydajność i bezpieczeństwo sieci.

Rozwiązywanie problemów: Wspólne problemy i ich rozwiązania

Problemy związane z DNS mogą objawiać się w różnych formach, takich jak problemy z połączeniem internetowym, trudności z dostępem do stron internetowych i opóźnienia. Tutaj omawiamy wspólne problemy związane z DNS, które możesz napotkać na Linuxie i sposoby ich rozwiązania.

Wolne rozwiązywanie nazw DNS

Jeśli rozwiązywanie nazw DNS jest wolne, serwer DNS, którego używasz, może być przyczyną opóźnienia. Przełączenie na inny serwer DNS może rozwiązać problem. Na przykład, Publiczny DNS Google (8.8.8.8 i 8.8.4.4) oraz DNS Cloudflare (1.1.1.1) są szybkimi i niezawodnymi opcjami.

Niepowodzenie rozwiązywania DNS

Jeśli rozwiązywanie DNS nie powiedzie się, najpierw sprawdź, czy system wskazuje na właściwe serwery DNS. Możesz to zweryfikować za pomocą pliku /etc/resolv.conf lub polecenia systemd-resolve --status. Jeśli właściwe serwery DNS są ustawione, a problem nadal występuje, wyczyszczenie bufora DNS może pomóc. Jeśli używasz systemd-resolved, możesz wyczyścić bufor za pomocą następującego polecenia:

sudo systemd-resolve --flush-caches

Niemożność dostępu do określonych stron internetowych

Jeśli masz problemy z dostępem do określonych stron internetowych, mogą występować problemy z rekordami DNS tych stron lub lokalny bufor DNS może przechowywać przestarzałe informacje. Wyczyszczenie bufora DNS może rozwiązać problem. Sprawdź także, czy plik /etc/hosts nie ma ręcznie dodanych wpisów dla tych stron internetowych.

Serwer DNS nie odpowiada

Jeśli używany serwer DNS nie odpowiada, najpierw sprawdź, czy serwer DNS jest wyłączony lub czy występują jakiekolwiek problemy z połączeniem sieciowym. Możesz sprawdzić, czy możesz dotrzeć do serwera DNS za pomocą polecenia ping. Jeśli serwer DNS nie odpowiada, rozważ przełączenie na inny serwer DNS.

Próbując tych ogólnych kroków rozwiązywania problemów, powinieneś być w stanie rozwiązać wiele problemów związanych z DNS. Jednakże, jeśli problem nadal występuje, dalsze badanie ustawień sieciowych lub konfiguracji może być konieczne. W niektórych przypadkach kontakt z dostawcą usług internetowych (ISP) lub administratorem sieci może być odpowiednim krokiem.

Rozważania dotyczące bezpieczeństwa: Co należy mieć na uwadze podczas konfigurowania DNS

Podczas konfigurowania ustawień DNS ważne jest, aby wziąć pod uwagę implikacje bezpieczeństwa. Niewłaściwe ustawienia DNS mogą zwiększyć podatność na ataki cybernetyczne. Tutaj przedstawiamy kilka kluczowych kwestii bezpieczeństwa, które należy mieć na uwadze podczas konfigurowania DNS.

Niezawodność i bezpieczeństwo serwerów DNS

Serwer DNS, którego wybierzesz, powinien być niezawodny i posiadać środki bezpieczeństwa. Jeśli korzystasz z publicznej usługi DNS, sprawdź funkcje bezpieczeństwa dostarczane przez dostawcę usługi, takie jak wsparcie dla DNSSEC i blokowanie złośliwych stron.

Zapobieganie otruciu bufora DNS

Otrucie bufora DNS to atak, w którym atakujący wprowadza fałszywe informacje DNS do bufora, kierując użytkowników na złośliwe strony, takie jak strony phishingowe. Korzystanie z serwerów DNS obsługujących DNSSEC (Rozszerzenia Bezpieczeństwa DNS) może chronić przed takimi atakami.

Zabezpieczenie lokalnej konfiguracji serwera DNS

Jeśli prowadzisz własny serwer DNS, utrzymuj aktualność oprogramowania, wyłącz niepotrzebne usługi i zapewnij bezpieczną konfigurację. Ponadto, odpowiednia konfiguracja zapory sieciowej jest kluczowa, aby zapobiec nieautoryzowanemu dostępowi z zewnątrz.

Ochrona prywatności

Zapytania DNS mogą ujawniać historię użytkowania internetu przez użytkowników. Aby chronić prywatność, rozważ użycie serwerów DNS obsługujących zaszyfrowane zapytania DNS, takie jak DNS przez HTTPS (DoH) lub DNS przez TLS (DoT).

Podsumowanie

Zrozumienie, jak sprawdzić i skonfigurować serwery DNS na Linuxie oraz odpowiednie zarządzanie nimi, jest kluczowe dla utrzymania efektywności sieci i bezpieczeństwa. Ten artykuł omówił podstawy DNS, jak sprawdzić i ustawić serwery DNS, zarządzanie DNS za pomocą systemd-resolved i Network Manager, rozwiązywanie problemów oraz kwestie bezpieczeństwa. Stosowanie tej wiedzy umożliwi bardziej efektywną i bezpieczną konfigurację DNS na systemach Linux.

Spis treści