Hoe DNS-servers op Linux te controleren en in te stellen: Van basisconcepten tot beveiligingsmaatregelen

Het nauwkeurig controleren en configureren van DNS-servers op een Linux-systeem is uiterst belangrijk voor het behouden van de stabiliteit en efficiëntie van uw netwerk. Dit artikel biedt een uitgebreide gids voor zowel beginners als gevorderde gebruikers over hoe DNS-servers op Linux te controleren en in te stellen. Beginnend met basisconcepten, behandelt het het gebruik van specifieke commandoregelhulpmiddelen, het bewerken van configuratiebestanden, probleemoplossing en omvat het grondig praktische kennis. Als gevolg hiervan zal uw Linux-systeem efficiënter worden in het toegang krijgen tot bronnen op het internet.

Inhoudsopgave

Wat is DNS: Een basisconceptuitleg

Het Domain Name System (DNS) is een systeem dat internetdomeinnamen omzet in IP-adressen en vice versa. Het speelt een cruciale rol in het mogelijk maken van internetzoekopdrachten en website-toegang door memorabele domeinnamen (bijv. www.example.com) te vertalen naar numerieke IP-adressen (bijv. 192.0.2.1) die computers kunnen begrijpen. Dit proces, bekend als “naamresolutie”, vergemakkelijkt het ophalen van informatie op het internet.

DNS heeft een hiërarchische structuur met de “Root DNS Servers” aan de top, die het laatste deel van domeinnamen beheren (bijv. .com, .org). Deze worden gevolgd door “Top-Level Domain (TLD) Servers”, vervolgens “Authoritatieve DNS Servers”, en ten slotte, “Lokale DNS Servers” beantwoorden gebruikersvragen in deze gestructureerde opzet.

Wanneer een gebruiker een domeinnaam invoert in een webbrowser, zoekt de lokale DNS-server naar het overeenkomende IP-adres. Als de lokale DNS-server de informatie niet heeft, wordt het verzoek doorgegeven aan hogere DNS-servers totdat de benodigde informatie wordt opgehaald. Dit proces wordt doorgaans binnen milliseconden voltooid, waardoor de gebruiker de webpagina kan openen.

Het DNS-systeem is onmisbaar voor de infrastructuur van het internet, en de efficiënte werking ervan heeft een aanzienlijke invloed op de webprestaties en toegankelijkheid. Daarom is het correct configureren en beheren van DNS-servers op Linux-systemen een cruciale vaardigheid voor systeembeheerders.

Hoe DNS-servers te controleren: Gebruikmakend van commandoregelhulpmiddelen

Er zijn verschillende manieren om de instellingen van DNS-servers op Linux-systemen te controleren, maar de meest directe en gangbare methode is het gebruik van commandoregelhulpmiddelen. Hier introduceren we twee veelgebruikte hulpmiddelen: het cat commando en het nmcli commando.

/etc/resolv.conf controleren met het `cat` Commando

De meest basale methode is het weergeven van het /etc/resolv.conf bestand. Dit bestand bevat de adressen van DNS-servers die door het systeem worden gebruikt voor DNS-resolutie. U kunt de inhoud ervan controleren door het volgende commando uit te voeren:

cat /etc/resolv.conf

De uitvoer kan er als volgt uitzien:

# Generated by NetworkManager
search example.com
nameserver 192.168.1.1
nameserver 8.8.8.8

In dit voorbeeld geven de regels met nameserver de IP-adressen van de DNS-servers aan, met 192.168.1.1 en het openbare DNS-adres van Google 8.8.8.8 ingesteld.

DNS-servers controleren met het `nmcli` Commando

Op systemen die NetworkManager gebruiken, kunt u het nmcli commando gebruiken om de DNS-instellingen van de huidige netwerkverbinding te controleren. Het volgende commando haalt informatie over DNS-servers op:

nmcli device show | grep IP4.DNS

Dit commando extraheert en toont de DNS-serverinstellingen (IPv4) uit de huidige netwerkapparaatinformatie. De uitvoer kan er als volgt uitzien:

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

Deze methoden stellen u in staat om eenvoudig de DNS-serverinformatie die op uw Linux-systeem is ingesteld te controleren, wat nuttig kan zijn voor het diagnosticeren van netwerkverbindingsproblemen of het overwegen van wijzigingen aan een specifieke DNS-server.

Hoe DNS-servers in te stellen: /etc/resolv.conf bewerken

Een van de basismethoden om DNS-servers op een Linux-systeem in te stellen, is door het /etc/resolv.conf bestand rechtstreeks te bewerken. Dit bestand bevat een lijst van DNS-servers waarnaar het systeem verwijst voor DNS-resolutie. Hier leggen we uit hoe u dit bestand veilig kunt bewerken.

Het /etc/resolv.conf Bestand Bewerken

  1. Eerst, maak een back-up van de huidige instellingen. Het is belangrijk om het originele bestand te kunnen herstellen in geval van problemen. Gebruik het volgende commando om een back-up te maken:
sudo cp /etc/resolv.conf /etc/resolv.conf.backup
  1. Vervolgens, gebruik een teksteditor om het /etc/resolv.conf bestand te bewerken. Hier gebruiken we de nano editor, maar u kunt uw voorkeurseditor zoals vi of emacs gebruiken:
sudo nano /etc/resolv.conf
  1. Zodra het bestand is geopend, voeg of bewerk de regels die beginnen met nameserver om DNS-serveradressen te specificeren. Bijvoorbeeld, om Google’s openbare DNS-adressen te gebruiken, zou u schrijven:
nameserver 8.8.8.8
nameserver 8.8.4.4
  1. Na het aanbrengen van de wijzigingen, sla het bestand op en sluit de editor. Als u nano gebruikt, druk op Ctrl + O om op te slaan en Ctrl + X om te sluiten.

De Nieuwe Instellingen Activeren

Na het bewerken van het /etc/resolv.conf bestand, moet u meestal de netwerkdienst herstarten om de wijzigingen toe te passen. Dit kan gedaan worden met het volgende commando:

sudo systemctl restart network.service

Of, als u NetworkManager gebruikt, kunt u de netwerkverbinding herstarten met dit commando:

sudo systemctl restart NetworkManager

Hiermee past u de nieuwe DNS-instellingen toe op uw systeem. Om te zorgen dat de instellingen correct werken, wordt aanbevolen om te testen door websites te bezoeken of commando’s zoals ping te gebruiken om domeinnamen op te lossen.

Handmatige DNS-serverconfiguratie is effectief voor het aanpassen van DNS-resolutiestrategieën volgens systeem- of netwerkvereisten. Deze methode is echter mogelijk niet geschikt voor langetermijnoplossingen, aangezien het /etc/resolv.conf bestand automatisch kan worden overschreven door andere processen. Daarom is het overwegen waard om hulpmiddelen zoals resolvconf, systemd-resolved, of NetworkManager te gebruiken voor het beheren van DNS-instellingen.

DNS-instellingen controleren en wijzigen met commandoregelhulpmiddelen

Linux biedt verschillende methoden voor het controleren en wijzigen van DNS-instellingen met de commandoregel, zonder te vertrouwen op GUI-hulpmiddelen. Deze methoden zijn bijzonder nuttig voor serveromgevingen of het beheren van externe systemen. Hier leggen we methoden uit met behulp van de systemd-resolve en nmcli commando’s.

DNS-instellingen controleren met het `systemd-resolve` Commando

Op systemen die systemd gebruiken, kan het systemd-resolve commando worden gebruikt om de huidige DNS-instellingen te controleren. Dit commando is gerelateerd aan de systemd-resolved dienst en biedt naamresolutieconfiguratie en statistieken.

Om DNS-instellingen te controleren, voer het volgende commando uit:

systemd-resolve --status

Dit commando biedt gedetailleerde uitvoer inclusief de gebruikte DNS-servers, zoekdomeinen en andere netwerkgerelateerde informatie. De uitvoer is verdeeld per netwerkinterface, met elke sectie die instellingen voor die interface weergeeft.

DNS-instellingen wijzigen met het `nmcli` Commando

Op systemen die NetworkManager gebruiken, kan het nmcli commando worden gebruikt om DNS-instellingen te wijzigen. nmcli is een commandoregelhulpmiddel voor het instellen en beheren van netwerkverbindingen.

Bijvoorbeeld, om DNS-servers in te stellen voor een specifieke verbinding, gebruikt u het volgende commando:

nmcli connection modify <connection name> ipv4.dns "8.8.8.8 8.8.4.4"
nmcli connection modify <connection name> ipv4.ignore-auto-dns yes
nmcli connection up <connection name>

In dit commando worden Google’s DNS-servers (8.8.8.8 en 8.8.4.4) ingesteld voor de verbinding met de naam <connection name>. De optie ipv4.ignore-auto-dns yes wordt gebruikt om automatisch verkregen DNS-instellingen te negeren en in plaats daarvan de handmatig opgegeven DNS te gebruiken. Ten slotte wordt het commando nmcli connection up gebruikt om de verbinding opnieuw te starten en de nieuwe instellingen toe te passen.

Deze commandoregelhulpmiddelen bieden flexibiliteit voor het controleren en wijzigen van DNS-instellingen op Linux-systemen. Ze zijn bijzonder nuttig voor extern systeembeheer en automatisering via scripts.

DNS-instellingen met systemd-resolved

systemd-resolved is een moderne DNS-resolver geïntegreerd in de systemd-systeem- en servicemanager. Het biedt verschillende functies zoals DNS-caching, DNSSEC-validatie en recordrouting, waardoor het DNS-resolutieproces wordt gestroomlijnd. Hier leggen we uit hoe DNS-instellingen te beheren met systemd-resolved.

Overzicht van systemd-resolved

systemd-resolved behandelt DNS-resolutieverzoeken van lokale applicaties, cachingresponsen van externe DNS-servers om de naamresolutiesnelheid en betrouwbaarheid te verbeteren. Het beheert ook het /etc/resolv.conf bestand en biedt een systeembrede DNS-resolutiestrategie.

systemd-resolved Inschakelen en Configureren

De meeste moderne Linux-distributies hebben systemd-resolved standaard ingeschakeld. Als het echter niet ingeschakeld is, kunt u de dienst starten en inschakelen met het volgende commando:

sudo systemctl enable --now systemd-resolved.service

Eenmaal ingeschakeld, kunt u het /etc/systemd/resolved.conf bestand bewerken om aangepaste DNS-serveradressen in te stellen. Het wordt aanbevolen om het bestand te back-uppen voordat u het bewerkt.

sudo nano /etc/systemd/resolved.conf

Bijvoorbeeld, om Google’s openbare DNS-servers te gebruiken, zou u het volgende instellen:

[Resolve]
DNS=8.8.8.8 8.8.4.4
FallbackDNS=1.1.1.1 9.9.9.9

De optie DNS specificeert de IP-adressen van de primaire DNS-servers die gebruikt moeten worden, gescheiden door spaties. FallbackDNS vermeldt DNS-servers die gebruikt moeten worden als de primaire servers niet beschikbaar zijn.

Na het wijzigen van instellingen, herstart de systemd-resolved dienst om de wijzigingen toe te passen:

sudo systemctl restart systemd-resolved

De Relatie Tussen systemd-resolved en /etc/resolv.conf

Op systemen die systemd-resolved gebruiken, wordt aanbevolen om het /etc/resolv.conf bestand te koppelen aan /run/systemd/resolve/stub-resolv.conf. Dit maakt gebruik van de lokale DNS-cache en doorstuurfuncties die door systemd-resolved worden geboden mogelijk. Om de symbolische link in te stellen, gebruikt u het volgende commando:

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

Hiermee kan systemd-resolved het DNS-resolutieproces van het systeem beheren, wat zorgt voor een snellere en veiligere internetverbinding.

DNS Beheren met Network Manager

In Linux-systemen is Network Manager (NetworkManager) het meest gebruikte hulpmiddel voor netwerkconfiguratie en -beheer. Het vergemakkelijkt het beheer van verschillende netwerkinterfaces, inclusief draadloze netwerken, bekabelde netwerken, mobiel breedband en VPN-verbindingen. DNS-instellingen kunnen ook via dit hulpmiddel worden beheerd. Hier bespreken we hoe DNS in te stellen met Network Manager.

DNS-instellingen wijzigen met Network Manager

Met Network Manager kunt u DNS-instellingen wijzigen met behulp van zowel de grafische gebruikersinterface (GUI) als de commandoregelinterface (CLI). Voor de CLI is het nmcli commando erg nuttig.

Om de DNS-instellingen voor een specifieke netwerkverbinding te wijzigen, identificeer eerst de naam van de verbinding. U kunt alle beschikbare netwerkverbindingen weergeven met het volgende commando:

nmcli connection show

Gebruik vervolgens de naam van de verbinding om de DNS-servers in te stellen. Het volgende commando stelt de DNS-serveradressen in voor de verbinding met de naam “connection name”:

nmcli connection modify "connection name" ipv4.dns "8.8.8.8 8.8.4.4"
nmcli connection modify "connection name" ipv4.ignore-auto-dns yes
nmcli connection up "connection name"

Dit commando stelt Google’s DNS-servers (8.8.8.8 en 8.8.4.4) in voor een specifieke verbinding, waarbij automatisch verkregen DNS-instellingen worden genegeerd. Ten slotte wordt de verbinding opnieuw gestart met nmcli connection up om de instellingen toe te passen.

Wereldwijde DNS-instellingen wijzigen

U kunt ook Network Manager gebruiken om de systeembrede DNS-instellingen te wijzigen. Hiervoor bewerkt u het /etc/NetworkManager/NetworkManager.conf bestand en voegt u de optie dns toe onder de sectie [main]:

[main]
dns=dnsmasq

Deze instelling stelt Network Manager in staat om dnsmasq te gebruiken voor het verwerken van DNS-vragen. dnsmasq is een lichtgewicht DNS-cache en DHCP-server die lokale DNS-queryresolutie en caching biedt, waardoor de DNS-resolutiesnelheid wordt verbeterd.

Na het wijzigen van de instellingen moet u Network Manager herstarten:

sudo systemctl restart NetworkManager

DNS beheren via Network Manager verbetert aanzienlijk de flexibiliteit en het gemak van netwerkconfiguratie. Het stelt gebruikers in staat om DNS-instellingen gemakkelijk aan te passen, waardoor netwerkprestaties en beveiliging worden geoptimaliseerd.

Probleemoplossing: Veelvoorkomende problemen en hun oplossingen

DNS-gerelateerde problemen kunnen zich op verschillende manieren manifesteren, zoals internetverbindingsproblemen, moeilijkheden bij het openen van websites en vertragingen. Hier bespreken we veelvoorkomende DNS-gerelateerde problemen die u op Linux kunt tegenkomen en benaderingen om ze op te lossen.

Trage DNS-resolutie

Als de DNS-resolutie traag is, kan de DNS-server die u gebruikt de oorzaak van de vertraging zijn. Overschakelen naar een andere DNS-server kan het probleem oplossen. Google Public DNS (8.8.8.8 en 8.8.4.4) en Cloudflare DNS (1.1.1.1) zijn snelle en betrouwbare opties.

DNS-resolutiefout

Als de DNS-resolutie faalt, controleer dan eerst of uw systeem naar de juiste DNS-servers wijst. U kunt dit verifiëren met het /etc/resolv.conf bestand of het systemd-resolve --status commando. Als de juiste DNS-servers zijn ingesteld en het probleem aanhoudt, kan het wissen van de DNS-cache helpen. Als u systemd-resolved gebruikt, kunt u de cache wissen met het volgende commando:

sudo systemd-resolve --flush-caches

Niet in staat om specifieke websites te bereiken

Als u problemen heeft met het bereiken van specifieke websites, kunnen er problemen zijn met de DNS-records van die sites, of uw lokale DNS-cache kan verouderde informatie bevatten. Het wissen van de DNS-cache kan het probleem oplossen. Controleer ook of het /etc/hosts bestand geen handmatig toegevoegde vermeldingen voor die websites bevat.

DNS-server reageert niet

Als de DNS-server die u gebruikt niet reageert, controleer dan eerst of de DNS-server niet werkt of of er problemen zijn met uw netwerkverbinding. U kunt testen of u de DNS-server kunt bereiken met het ping commando. Als de DNS-server niet reageert, overweeg dan om over te schakelen naar een andere DNS-server.

Door deze algemene probleemoplossingsstappen te proberen, zou u veel DNS-gerelateerde problemen moeten kunnen oplossen. Als het probleem echter aanhoudt, kan verder onderzoek naar netwerkinstellingen of configuratie nodig zijn. In sommige gevallen kan contact opnemen met uw internetdienstaanbieder (ISP) of netwerkbeheerder de juiste koers van actie zijn.

Beveiligingsoverwegingen: Dingen om in gedachten te houden bij het instellen van DNS

Bij het instellen van DNS-configuraties is het belangrijk om beveiligingsimplicaties te overwegen. Onjuiste DNS-instellingen kunnen de kwetsbaarheid voor cyberaanvallen vergroten. Hier introduceren we enkele belangrijke beveiligingsoverwegingen om in gedachten te houden bij het configureren van DNS.

Betrouwbaarheid en beveiliging van DNS-servers

De DNS-server die u kiest, moet betrouwbaar zijn en beveiligingsmaatregelen hebben. Als u een openbare DNS-dienst gebruikt, controleer dan de beveiligingsfuncties die door de dienstverlener worden geboden, zoals ondersteuning voor DNSSEC en het blokkeren van kwaadaardige sites.

Mitigeren van DNS-cachevergiftiging

DNS-cachevergiftiging is een aanval waarbij een aanvaller valse DNS-informatie in de cache injecteert, waardoor gebruikers naar kwaadaardige sites worden geleid, zoals phishing-sites. Het gebruik van DNS-servers die DNSSEC (DNS Security Extensions) ondersteunen, kan bescherming bieden tegen dergelijke aanvallen.

Beveiligen van lokale DNS-serverconfiguratie

Als u uw eigen DNS-server uitvoert, houd dan software-updates actueel, schakel onnodige diensten uit en zorg voor een veilige configuratie. Ook is het correct configureren van de firewall cruciaal om ongeautoriseerde toegang van buitenaf te voorkomen.

Beschermen van privacy

DNS-vragen kunnen het internetgebruikgeschiedenis van gebruikers onthullen. Overweeg het gebruik van DNS-servers die versleutelde DNS-vragen ondersteunen, zoals DNS over HTTPS (DoH) of DNS over TLS (DoT).

Conclusie

Het begrijpen van hoe DNS-servers op Linux te controleren en te configureren en ze op de juiste manier te beheren is cruciaal voor het behouden van netwerkefficiëntie en beveiliging. Dit artikel behandelde DNS-basics, hoe DNS-servers te controleren en in te stellen, DNS beheren met systemd-resolved en Network Manager, probleemoplossing en beveiligingsoverwegingen. Deze kennis toepassen zal een effectievere en veiligere DNS-configuratie op Linux-systemen mogelijk maken.

Inhoudsopgave