Aan de slag met de BIND DNS-server

Domain Name Server (DNS) is een cruciaal onderdeel van de internetinfrastructuur, en het bouwen van je DNS-server kan uitdagend zijn. Nou, niet met BIND, waar je je BIND DNS-server in een mum van tijd kunt maken. BIND heeft een uitstekende reputatie onder beheerders vanwege zijn flexibiliteit en ondersteuning voor hoge beschikbaarheid.

In dit artikel leer je hoe je een veilige BIND DNS-server installeert en configureert en controleert dat subdomeinen worden opgelost naar het juiste IP-adres.

Lees verder en maak je DNS-server zonder moeite!

Vereisten

Deze zelfstudie zal een praktische demonstratie zijn. Zorg ervoor dat je het volgende hebt om mee te doen.

  • A Linux server – This example uses the Ubuntu 20.04 server.
  • A non-root user with root privileges or root/administrator user.
  • A domain name pointed to the server IP address – This demo uses the atadomain.io domain and server IP address 172.16.1.10.

Installeren van BIND-pakketten

De standaard Ubuntu-opslagplaats biedt BIND-pakketten, maar deze zijn niet geïnstalleerd op je systeem. Je kunt BIND installeren als de hoofd-DNS-server of alleen als autoritair. BIND biedt krachtige functies, zoals ondersteuning voor master-slave-installatie, DNSSEC-ondersteuning en ingebouwde toegangsbeheerlijsten (ACL’s).

Om aan de slag te gaan met BIND DNS, moet je eerst de BIND-pakketten op je machine installeren met de apt-pakketbeheerder.

1. Open je terminal en log in op je server.

2. Voer vervolgens de apt update opdracht hieronder uit om de repository pakketindex bij te werken en te vernieuwen. Deze opdracht zorgt ervoor dat je de nieuwste versie van pakketten installeert.

sudo apt update
Refreshing Package Index

3. Nadat je hebt bijgewerkt, voer je de onderstaande apt install opdracht uit om BIND-pakketten te installeren voor de Ubuntu-server.

De bind9-utils en bind9-dnsutils pakketten bieden aanvullende command-line tools voor BIND. Deze pakketten zijn handig voor het testen en beheren van de BIND DNS-server.

sudo apt install bind9 bind9-utils bind9-dnsutils -y
Installing BIND Packages

4. Ten slotte, voer de systemctl opdracht hieronder uit om de BIND-service te verifiëren.

Het BIND-pakket wordt geleverd met de service named en wordt automatisch gestart en ingeschakeld tijdens de installatie van het BIND-pakket.

# Controleer of de named-service is ingeschakeld
sudo systemctl is-enabled named

# Controleer de status van de named-service
sudo systemctl status named

Je zou nu moeten zien dat de BIND named service is ingeschakeld met de status als actief (lopend). Op dit punt zal de BIND-service automatisch worden uitgevoerd bij het opstarten van het systeem.

Checking BIND named service

Configuratie van BIND DNS Server

Je hebt nu de BIND-pakketten geïnstalleerd op de Ubuntu-server, dus het is tijd om de BIND-installatie op je Ubuntu-server in te stellen. Hoe? Door de BIND- en de named-serviceconfiguraties te bewerken.

Alle configuraties voor BIND zijn beschikbaar in de /etc/bind/-directory, en configuraties voor de named-service in /etc/default/named.

1. Bewerk de configuratie in /etc/default/named met je favoriete editor en voeg de optie -4 toe aan de OPTIONS-regel, zoals hieronder weergegeven. Deze optie zorgt ervoor dat de named-service alleen op IPv4 draait.

OPTIONS="-4 -u bind"

Sla de wijzigingen op en sluit het bestand.

Configuring BIND to Run on IPv4 Only

2. Bewerk vervolgens het bestand /etc/bind/named.conf.options en vul de volgende configuratie in onder de regel directory "/var/cache/bind";.

Deze configuratie stelt de BIND-service in om op de standaard UDP-poort 53 te draaien op de localhost en het openbare IP-adres van de server (172.16.1.10). Tegelijkertijd staat het queries toe vanaf elke host naar de BIND DNS-server met gebruik van de Cloudflare DNS 1.1.1.1 als doorgever.

    // listen port and address
    listen-on port 53 { localhost; 172.16.1.10; };

    // for public DNS server - allow from any
    allow-query { any; };

    // define the forwarder for DNS queries
    forwarders { 1.1.1.1; };

    // enable recursion that provides recursive query
    recursion yes;

Onderaan, commentarieer de regel listen-on-v6 { any; }; uit, zoals hieronder weergegeven, om de named-service uit te schakelen voor IPv6.

Editing the BIND Configuration Options

3. Voer tot slot de volgende opdracht uit om de BIND-configuratie te controleren.

sudo named-checkconf

Als er geen uitvoer is, zijn de BIND-configuraties correct zonder enige fout.

Verifying BIND Configurations

Instellen van DNS-zones

Op dit punt heeft u de basisconfiguratie van de BIND DNS-server geconfigureerd. U bent klaar om een DNS-server te maken met uw domein en andere subdomeinen toe te voegen voor uw toepassingen. Hiervoor moet u een nieuwe configuratie voor DNS-zones definiëren en maken.

In deze handleiding maakt u een nieuwe nameserver (ns1.atadomain.io) en subdomeinen (www.atadomain.io, mail.atadomain.io, vault.atadomain.io).

1. Bewerk het bestand /etc/bind/named.conf.local met uw voorkeurseditor en voeg de volgende configuratie toe.

Deze configuratie definieert de forward-zone (/etc/bind/zones/forward.atadomain.io) en de reverse-zone (/etc/bind/zones/reverse.atadomain.io) voor de domeinnaam atadomain.io.

zone "atadomain.io" {
    type master;
    file "/etc/bind/zones/forward.atadomain.io";
};

zone "1.16.172.in-addr.arpa" {
    type master;
    file "/etc/bind/zones/reverse.atadomain.io";
};

Sla de wijzigingen op en sluit het bestand.

Defining Forward Zone and Reverse Zone BIND

2. Voer vervolgens de onderstaande opdracht uit om een nieuwe directory (/etc/bind/zones) aan te maken voor de configuraties van de DNS-zones.

mkdir -p /etc/bind/zones/

3. Voer elke onderstaande opdracht uit om de standaardconfiguraties voor de forward- en reverse-zones naar de directory /etc/bind/zones te kopiëren.

# Kopieer standaard forward-zone
sudo cp /etc/bind/db.local /etc/bind/zones/forward.atadomain.io

# Kopieer standaard reverse-zone
sudo cp /etc/bind/db.127 /etc/bind/zones/reverse.atadomain.io

# Lijst met inhoud van de /etc/bind/zones/-directory
ls /etc/bind/zones/
Copying Default Zones Configurations

4. Bewerk nu de configuratie van de forward-zone (/etc/bind/zones/forward.atadomain.io) met uw voorkeurseditor en vul de onderstaande configuratie in.

De configuratie van de forward zone is waar je je domeinnaam en het server-IP-adres definieert. Deze configuratie zal de domeinnaam vertalen naar het juiste IP-adres van de server.

De onderstaande configuratie maakt de volgende naamserver en subdomeinen aan:

  • ns1.atadomain.io – De hoofdnaamserver voor je domein met het IP-adres 172.16.1.10.
  • MX-record voor het domein atadomain.io dat wordt afgehandeld door mail.atadomain.io. Het MX-record wordt gebruikt voor de mailservers.
  • Subdomeinen voor toepassingen: www.atadomain.iomail.atadomain.io en vault.atadomain.io.
;
; BIND data file for the local loopback interface
;
$TTL    604800
@       IN      SOA     atadomain.io. root.atadomain.io. (
                            2         ; Serial
                        604800         ; Refresh
                        86400         ; Retry
                        2419200         ; Expire
                        604800 )       ; Negative Cache TTL

; Define the default name server to ns1.atadomain.io
@       IN      NS      ns1.atadomain.io.

; Resolve ns1 to server IP address
; A record for the main DNS
ns1     IN      A       172.16.1.10


; Define MX record for mail
atadomain.io. IN   MX   10   mail.atadomain.io.


; Other domains for atadomain.io
; Create subdomain www - mail - vault
www     IN      A       172.16.1.10
mail    IN      A       172.16.1.20
vault   IN      A       172.16.1.50

Sla de wijzigingen op en sluit het bestand.

Configuring Forward Zone BIND

Net als bij de forward zone, bewerk het configuratiebestand van de reverse zone (/etc/bind/zones/reverse.atadomain.io) en vul de volgende configuratie in.

De reverse zone vertaalt het server-IP-adres naar de domeinnaam. De reverse zone of PTR-record is essentieel voor diensten zoals de mailservers, die invloed hebben op de reputatie van de mailservers.

Het PTR-record gebruikt het laatste blok van het IP-adres, zoals het PTR-record met het nummer 10 voor het server-IP-adres 172.16.1.10.

Deze configuratie maakt de reverse zone of PTR-record voor de volgende domeinen aan:

  • Naamserver ns1.atadomain.io met de reverse zone of PTR-record 172.16.1.10.
  • PTR-record voor het domein mail.atadomain.io naar het server-IP-adres 172.16.1.20.
;
; BIND reverse data file for the local loopback interface
;
$TTL    604800
@       IN      SOA     atadomain.io. root.atadomain.io. (
                            1         ; Serial
                        604800         ; Refresh
                        86400         ; Retry
                        2419200         ; Expire
                        604800 )       ; Negative Cache TTL

; Name Server Info for ns1.atadomain.io
@       IN      NS      ns1.atadomain.io.


; Reverse DNS or PTR Record for ns1.atadomain.io
; Using the last number of DNS Server IP address: 172.16.1.10
10      IN      PTR     ns1.atadomain.io.


; Reverse DNS or PTR Record for mail.atadomain.io
; Using the last block IP address: 172.16.1.20
20      IN      PTR     mail.atadomain.io.

Sla de wijzigingen op en sluit het bestand.

Configuring Reverse Zone BIND

6. Voer nu de volgende commando’s uit om BIND-configuraties te controleren en te verifiëren.

# Controleer de hoofdconfiguratie voor BIND
sudo named-checkconf

# Controleer voorwaartse zone forward.atadomain.io
sudo named-checkzone atadomain.io /etc/bind/zones/forward.atadomain.io

# Controleer omgekeerde zone reverse.atadomain.io
sudo named-checkzone atadomain.io /etc/bind/zones/reverse.atadomain.io

Wanneer je configuratie juist is, zie je een uitvoer zoals hieronder.

Checking and Verifying BIND configurations

7. Ten slotte, voer het onderstaande systemctl-commando uit om de named-service te herstarten en te verifiëren. Hiermee worden nieuwe wijzigingen toegepast op de named-service.

# Herstart named service
sudo systemctl restart named

# Verifieer named service
sudo systemctl status named

Hieronder zie je dat de named service actief (draaiend) is.

Restarting Named Service and Verifying Named Service Status

Het openen van de DNS-poort met de UFW-firewall

Op dit punt heb je de installatie van de BIND DNS-server voltooid. Maar je moet nog steeds je DNS-server beveiligen. Je zult de UFW-firewall instellen en de DNS-poort openen voor eventuele vragen naar de server. Hierdoor kunnen clients een vraag stellen aan de BIND DNS-server.

Om beveiligingsredenen wordt aanbevolen de UFW-firewall uit te voeren en in te schakelen op je Ubuntu-server.

1. Voer het ufw-commando hieronder uit om beschikbare toepassingen op de UFW-firewall te controleren.

sudo ufw app list

Je zou de Bind9 moeten zien in de lijst met toepassingen van de UFW hieronder.

Listing Available Applications on the UFW Firewall

2. Voer nu de onderstaande opdracht uit om toestaan dat de Bind9 toegang krijgt tot de UFW-firewall.

sudo ufw allow Bind9
Adding UW Rule

3. Voer tot slot de volgende opdracht uit om ingeschakelde regels op de UFW-firewall te controleren.

sudo ufw status

Je zou de toepassing Bind9 in de lijst moeten zien, vergelijkbaar met de onderstaande schermafbeelding.

Verifying List of Rules

Verificatie van BIND DNS Server-installatie

Je hebt nu de installatie van de BIND DNS voltooid en de UFW-firewall geconfigureerd. Maar hoe controleer je de installatie van je DNS-server? De dig-opdracht doet de truc.

Dig is een command-line hulpprogramma voor het oplossen van problemen met DNS-serverinstallatie. dig voert een DNS-opzoeking uit voor de opgegeven domeinnaam en geeft gedetailleerde antwoorden voor het doeldomein. Op het Ubuntu-systeem maakt dig deel uit van het bind9-dnsutil-pakket.

Om je BIND DNS-serverinstallatie te verifiëren:

1. Voer elke dig-opdracht hieronder uit om de subdomeinen www.atadomain.iomail.atadomain.io en vault.atadomain.io te verifiëren.

Als uw DNS-serverinstallatie succesvol is, zal elk subdomein worden opgelost naar het juiste IP-adres op basis van de configuratie van forward.atadomain.io.

# Controleer de domeinnamen
dig @172.16.1.10 www.atadomain.io
dig @172.16.1.10 mail.atadomain.io
dig @172.16.1.10 vault.atadomain.io

Hieronder staat de uitvoer van het subdomein www.atadomain.io dat is opgelost naar het server-IP-adres 172.16.1.10.

Checking sub-domain www.atadomain.io

Hieronder staat het subdomein mail.atadomain.io dat is opgelost naar het server-IP-adres 172.16.1.20.

Checking sub-domain mail.atadomain.io

En hieronder staat het subdomein vault.atadomain.io dat is opgelost naar het server-IP-adres 172.16.1.50.

Checking sub-domain vault.atadomain.io

2. Voer vervolgens de dig-opdracht hieronder uit om het MX-record voor de domeinnaam atadomain.io te controleren.

dig @172.16.1.10 atadomain.io MX

U zou moeten zien dat het domein atadomain.io het MX-record mail.atadomain.io heeft.

Checking MX record for atadomain.io

3. Voer tot slot de volgende opdrachten uit om het PTR-record of de reverse zone voor de server-IP-adressen 172.16.1.10 en 172.16.1.20 te controleren.

Als uw BIND-installatie succesvol is, zal elk IP-adres worden opgelost naar de domeinnaam die is gedefinieerd in de configuratie van reverse.atadomain.io.

# Controleer PTR-record of reverse DNS
dig @172.16.1.10 -x 172.16.1.10
dig @172.16.1.10 -x 172.16.1.20

U kunt hieronder zien dat het server-IP-adres 172.16.1.10 is opgelost naar de domeinnaam ns1.atadomain.io.

Checking PTR record for IP address 172.16.1.10

Zoals u hieronder ziet, is het server-IP-adres 172.16.1.20 opgelost naar de domeinnaam mail.atadomain.io.

Checking PTR record for IP address 172.16.1.20

Conclusie

Gedurende deze tutorial heb je geleerd hoe je een veilige BIND DNS-server kunt maken en instellen op je Ubuntu-server. Je hebt ook de voorwaartse en omgekeerde zone aangemaakt om je domein toe te voegen en DNS-servers geverifieerd door dig-opdrachten uit te voeren.

Nu, hoe kun je een BIND DNS-server implementeren in je omgeving? Misschien BIND implementeren als een authoritative server? Of hoog beschikbaarheid opzetten met een master-slave BIND-installatie?

Source:
https://adamtheautomator.com/bind-dns-server/