Zoeken op website

Bind instellen als privé-DNS-server op RHEL 8


Het Domain Name System (DNS) is een methode die wordt gebruikt om voor mensen leesbare domeinnamen (of Fully Qualified Domain Names (FQDN) te vertalen )) naar machinaal leesbare IP-adressen, om een computer in een netwerk zoals het internet te lokaliseren.

In computer- en netwerksystemen is dit nodig omdat, hoewel de FQDN's voor mensen gemakkelijk te onthouden en te gebruiken zijn, computers (clients) toegang krijgen tot bronnen of services op andere computers (servers) op basis van IP-adressen.

In dit opzicht houdt een DNS-server (ook bekend als een naamserver) een map met FQDN's bij en vertaalt deze naar IP-adressen; het kan ook een IP-adres retourneren als er een hostnaam/FQDN wordt opgegeven. Er zijn verschillende soorten DNS-servers, waaronder een gezaghebbende naamserver, een caching-naamserver en vele andere.

In dit artikel leiden we u door de stappen voor het installeren en configureren van een privé/interne, gezaghebbende DNS-server op RHEL 8 met behulp van BIND open source-software.

Vereisten:

  1. RHEL 8 met minimale installatie
  2. RHEL 8 met RedHat-abonnement ingeschakeld
  3. RHEL 8 met statisch IP-adres

Mijn testomgeving:

Domain: tecmint.lan
DNS Server IP and hostname: 192.168.56.100, dns-primary.tecmint.lan
DNS Client IP and hostname: 192.168.56.104, tecmint.tecmint.lan

Stap 1: Bind DNS installeren op RHEL 8

1. Om bind en de bijbehorende hulpprogramma's op uw server te installeren, voert u de volgende cdnf-opdracht uit.

dnf install bind bind-utils

2. Start vervolgens voorlopig de DNS-service, schakel deze vervolgens in om automatisch te starten bij het opstarten van het systeem en controleer of deze actief is met behulp van de systemctl-opdrachten.

systemctl start named
systemctl enable named
systemctl status named

Stap 2: BIND DNS configureren op RHEL 8

3. Om de Bind DNS-server te configureren, moet u eerst een back-up maken van het originele configuratiebestand /etc/named.conf met behulp van de volgende cp commando.

cp /etc/named.conf /etc/named.conf.orig

4. Open nu het /etc/named.conf configuratiebestand om het als volgt te bewerken met uw favoriete teksteditor op de opdrachtregel.

vi /etc/named.conf 

Onder het configuratiegedeelte opties kunt u commentaar geven op de volgende regels.

options {
        #listen-on port 53 { 127.0.0.1; };
        #listen-on-v6 port 53 { ::1; };
        directory       "/var/named";

5. Zoek vervolgens naar de parameter allow-query en stel de waarde ervan in op uw netwerk, wat betekent dat alleen hosts op uw lokale netwerk dit kunnen doen vraag de DNS-server aan.

allow-query  {localhost; 192.168.56.0/24}

Stap 3: De voorwaartse en achterwaartse DNS-zones creëren

Een Forward Zone is waar de relaties tussen hostnaam (of FQDN) en IP-adres worden opgeslagen; het retourneert een IP-adres met behulp van de hostnaam. Houd er rekening mee dat normale DNS-query's forward lookup-query's zijn. Aan de andere kant retourneert een Reverse Zone de FQDN van een host op basis van zijn IP-adres.

6. Om de zones vooruit en achteruit te definiëren, voegt u de volgende regels toe aan het einde van /etc/named.conf< bestand.

//forward zone 
zone "tecmint.lan" IN { 
     type master; 
     file "tecmint.lan.db"; 
     allow-update { none; }; 
    allow-query {any; }
}; 
//backward zone 
zone "56.168.192.in-addr.arpa" IN { 
     type master; 
     file "tecmint.lan.rev"; 
     allow-update { none; }; 
    allow-query { any; }
};

Laten we de opties in de bovenstaande zoneconfiguraties kort toelichten:

  • type: definieert de rol van deze server voor de zone. De waarde “master” betekent dat het een gezaghebbende server is waarop de masterkopie van de zonegegevens wordt bijgehouden.
  • bestand: specificeert het databasebestand van de zone.
  • allow-update: specificeert de hosts die dynamische DNS-updates voor masterzones mochten indienen. Geen in dit geval.

Stap 4: Forward DNS-zonebestand maken

7. Maak eerst een Forward zone bestand onder de map /var/named.

vi /var/named/tecmint.lan.db

Voeg daarin de volgende configuratie toe.

$TTL 86400
@ IN SOA dns-primary.tecmint.lan. admin.tecmint.lan. (
    2019061800 ;Serial
    3600 ;Refresh
    1800 ;Retry
    604800 ;Expire
    86400 ;Minimum TTL
)

;Name Server Information
@ IN NS dns-primary.tecmint.lan.

;IP for Name Server
dns-primary IN A 192.168.56.100

;A Record for IP address to Hostname 
www IN A 192.168.56.5
mail IN A 192.168.56.10
docs  IN A 192.168.56.20

Laten we de bovenstaande zonedefinitie en de parameters kort toelichten.

  • TTL: specificeert de levensduur van de RR en $TTL richtlijn en geeft een standaard TTL voor elke RR zonder een specifieke TTL-set.
  • @: Het is een alias voor de domeinnaam (bijvoorbeeld tecmint.lan) die is gedefinieerd in het hoofdconfiguratiebestand.
  • IN: betekent internet.
  • SOA: specificeert de Start of Authority: wie de gezaghebbende naamserver is (dns-primary.tecmint.lan), de contactgegevens van de beheerder ( admin.tecmint.lan, het @ teken wordt vervangen door een punt) en andere gerelateerde informatie.
  • NS: betekent naamserver.
  • Serieel: deze waarde wordt door de DNS-server gebruikt om te verifiëren dat de inhoud van een bepaald zonebestand up-to-date is.
  • Vernieuwen: specificeert hoe vaak een slave-DNS-server een zoneoverdracht van de master moet uitvoeren.
  • Opnieuw proberen: specificeert hoe vaak een slaaf een mislukte zoneoverdracht opnieuw moet proberen.
  • Verlopen: bepaalt hoe lang een slaveserver moet wachten voordat hij de vraag van de client beantwoordt wanneer een master onbereikbaar is.
  • Minimum: stelt de minimale TTL voor de zone in.
  • A: een hostadres.

Stap 5: Reverse DNS-zonebestand maken

8. Maak op dezelfde manier een Reverse zone bestand onder de map /var/named.

vi /var/named/tecmint.lan.rev

Voeg er vervolgens de volgende regels aan toe. Hier is de PTR het tegenovergestelde van A record dat wordt gebruikt om een IP-adres aan een hostnaam toe te wijzen.

$TTL 86400
@ IN SOA dns-primary.tecmint.lan. admin.tecmint.lan. (
    2019061800 ;Serial
    3600 ;Refresh
    1800 ;Retry
    604800 ;Expire
    86400 ;Minimum TTL
)
;Name Server Information
@ IN NS dns-primary.tecmint.lan.

;Reverse lookup for Name Server
100 IN PTR dns-primary.tecmint.lan.

;PTR Record IP address to HostName
5 IN PTR www.tecmint.lan.
10 IN PTR mail.tecmint.lan.
20 IN PTR docs.tecmint.lan.

9. Stel als volgt de juiste eigendomsrechten voor de zonebestanden in.

chown :named /var/named/tecmint.lan.db
chown :named /var/named/tecmint.lan.rev

10. Controleer ten slotte of de DNS-configuratie en de zonebestanden de juiste syntaxis hebben nadat u de bovenstaande wijzigingen heeft aangebracht, met behulp van het hulpprogramma named-checkconf (geen uitgang betekent geen fout):

named-checkconf
named-checkzone tecmint.lan /var/named/tecmint.lan.db
named-checkzone 192.168.56.100 /var/named/tecmint.lan.rev

11. Nadat u alle benodigde configuraties heeft uitgevoerd, moet u de DNS-service opnieuw opstarten om de recente wijzigingen door te voeren.

systemctl restart named

12. Vervolgens moet u, voordat clients toegang krijgen tot de DNS-serviceconfiguraties op de server, de DNS-service toevoegen aan de systeemfirewallconfiguratie en de firewallinstellingen opnieuw laden met behulp van het firewall-cmd-hulpprogramma, als volgt :

firewall-cmd --permanent --zone=public --add-service=dns 
firewall-cmd --reload

Stap 6: DNS-service vanaf een client testen

13. In dit gedeelte laten we zien hoe u de DNS-service vanaf een clientzijde kunt testen. Log in op de clientmachine en configureer deze om de bovenstaande DNS-server te gebruiken. Op een Linux-systeem opent u het bestand /etc/resolve.conf met uw favoriete teksteditor.

vi /etc/resolve.conf 

Voeg de volgende vermelding eraan toe, die de oplosser vertelt de opgegeven naamserver te gebruiken.

nameserver  192.168.56.100

Sla het bestand op en sluit het. Houd er rekening mee dat u ook de DNS-server moet opgeven in het configuratiebestand van de netwerkinterface.

14. Voeg het IP-adres van de DNS-server 192.168.56.100 toe als solver aan het configuratiebestand van de netwerkinterface van de clientcomputer /etc/sysconfig/network-scripts/ifcfg-enp0s3< zoals weergegeven in de volgende afbeelding.

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=enp0s3
UUID=aba298ca-fa65-48cd-add9-6c3f1f28cee2
DEVICE=enp0s3
ONBOOT=no
DNS=192.168.56.100

15. Gebruik vervolgens het hulpprogramma nslookup om het IP-adres op te vragen met behulp van de hostnaam en omgekeerd, van www, mail en docs< servers in uw netwerk, zoals weergegeven.

nslookup 192.168.56.5
nslookup www.tecmint.lan
nslookup 192.168.56.10
nslookup mail.tecmint.lan
nslookup 192.168.56.20
nslookup docs.tecmint.lan
nslookup 192.168.56.100
nslookup dns-primary.tecmint.lan

Samenvatting

In dit artikel hebben we laten zien hoe u een privé, gezaghebbende DNS-server op RHEL 8 installeert en configureert met behulp van BIND-software. We hopen dat alles goed voor u heeft gewerkt. Stuur ons anders uw vragen of andere opmerkingen via het onderstaande feedbackformulier.