PowerDNS installeren en configureren op FreeBSD met MySQL (Complete Handleiding)
PowerDNS installeren en configureren op FreeBSD
In deze handleiding lees je stap voor stap hoe je PowerDNS installeert en configureert op een FreeBSD-server met een MySQL-database als backend. Daarnaast wordt uitgelegd hoe je een PowerDNS Master Server, Slave Server en PowerDNS Recursor configureert.
Vereisten
Voordat je PowerDNS installeert, controleer je of er geen andere DNS-server actief is op poort 53, zoals BIND (named).
Controleer welke services luisteren op poort 53:
sockstat -l
Is er al een DNS-server actief? Stop deze dan eerst en verwijder de service voordat je PowerDNS installeert.
PowerDNS installeren
Stap 1: MySQL installeren
PowerDNS gebruikt een database voor het opslaan van DNS-zones. Installeer daarom eerst MySQL als deze nog niet aanwezig is.
pkg install mysql80-server
Start vervolgens MySQL en zorg ervoor dat de service automatisch wordt gestart na een reboot.
Open /etc/rc.conf:
vi /etc/rc.conf
Voeg de volgende regel toe:
mysql_enable="YES"
Start daarna de MySQL-server:
service mysql-server start
Stap 2: PowerDNS installeren
Installeer PowerDNS via packages:
pkg install dns/powerdns
Of compileer PowerDNS vanuit de Ports Collection:
cd /usr/ports/dns/powerdns
make install clean
Schakel PowerDNS in zodat deze automatisch start na een reboot.
Voeg in /etc/rc.conf toe:
pdns_enable="YES"
MySQL-database voor PowerDNS aanmaken
Log in op MySQL:
mysql -u root -p
Maak vervolgens een nieuwe database aan:
CREATE DATABASE pdns;
USE pdns;
Voeg daarna de officiële PowerDNS-tabellen toe. Deze tabellen bevatten alle DNS-records, domeinen, metadata en DNSSEC-sleutels die PowerDNS gebruikt.
(Hier blijft je SQL-script ongewijzigd staan.)
Databasegebruiker aanmaken
Gebruik bij voorkeur niet de MySQL-rootgebruiker voor PowerDNS.
Maak daarom een aparte gebruiker aan:
CREATE USER 'pdns'@'localhost' IDENTIFIED BY 'kies_een_sterk_wachtwoord';
GRANT ALL PRIVILEGES ON pdns.* TO 'pdns'@'localhost';
FLUSH PRIVILEGES;
PowerDNS Recursor installeren
Installeer de Recursor:
cd /usr/ports/dns/powerdns-recursor
make install clean
Schakel de service in:
pdns_recursor_enable="YES"
Start vervolgens de service:
service pdns-recursor start
PowerDNS Master configureren
Open het configuratiebestand:
vi /usr/local/etc/pdns/pdns.conf
Configureer de Recursor:
recursor=127.0.0.1:5300
Configureer daarna de MySQL-backend:
launch=gmysql
gmysql-host=127.0.0.1
gmysql-user=pdns
gmysql-password=JE_WACHTWOORD
gmysql-dbname=pdns
Voeg vervolgens de overige instellingen toe:
allow-recursion=127.0.0.1
daemon=yes
guardian=yes
local-address=127.0.0.1
local-port=53
master=yes
slave=no
disable-axfr=no
log-dns-details=yes
allow-axfr-ips=84.22.100.69/24
PowerDNS Recursor configureren
Open:
vi /usr/local/etc/pdns/recursor.conf
Wijzig de luisterpoort:
local-port=5300
Sta alleen localhost toe:
allow-from=127.0.0.0/8
Herstart vervolgens beide services:
service pdns restart
service pdns-recursor restart
PowerDNS Slave configureren
De configuratie van de Slave Server is vrijwel gelijk aan die van de Master Server.
Pas alleen de volgende instellingen aan:
master=no
slave=yes
allow-axfr-ips=37.252.121.42/24
Voeg daarna de Master Server toe aan de tabel supermasters:
INSERT INTO supermasters
VALUES ('37.252.121.42', 'ns2.example.nl', 'admin');
Hosts-bestand aanpassen
Voeg op zowel de Master- als Slave-server de juiste hostnamen toe aan /etc/hosts:
37.252.121.42 ns1.example.nl
84.22.100.69 ns2.example.nl
Firewall configureren
Gebruik je een firewall, zorg er dan voor dat DNS-verkeer wordt toegestaan op poort 53 (UDP en TCP). Pas de firewallregels aan op basis van de firewallsoftware die je gebruikt.
PowerDNS beheren
PowerDNS kan handmatig worden gestart met:
service pdns start
De status controleren:
service pdns status
Conclusie
Na het uitvoeren van bovenstaande stappen beschik je over een volledig werkende PowerDNS-installatie op FreeBSD met een MySQL-backend, inclusief ondersteuning voor een Master- en Slave-configuratie en een PowerDNS Recursor voor recursieve DNS-queries.