Skip to main content

PowerDNS

Från en PowerDNS installerad på RHEL.

Installation

Installera med sudo dnf install -y pdns. Installera backend med sudo dnf install -y pdns-backend-sqlite.

Kontrollera version:

pdns_server --version
Nov 02 07:26:46 Loading '/usr/lib64/pdns/libbindbackend.so'
PowerDNS Authoritative Server 5.0.7 (C) PowerDNS.COM BV

Kontrollera att tjänst finns:

systemctl status pdns
○ pdns.service - PowerDNS Authoritative Server
     Loaded: loaded (/usr/lib/systemd/system/pdns.service; disabled; preset: disabled)
     Active: inactive (dead)
       Docs: man:pdns_server(1)
             man:pdns_control(1)
             https://doc.powerdns.com

Konfiguration läggs i /etc/pdns/pdns.conf.

Installera databas med sudo dnf install -y sqlite.

Skapa databaskatalog: sudo mkdir -p /var/lib/powerdns

Skapa databasen:

sudo sqlite3 /var/lib/powerdns/pdns.sqlite3 \
< /usr/share/doc/pdns/schema.sqlite3.sql

Verifiering av databas:

sudo ls -lh /var/lib/powerdns/
total 76K
-rw-r-----. 1 root root 76K Nov  2 07:35 pdns.sqlite3

sudo sqlite3 /var/lib/powerdns/pdns.sqlite3 ".tables"
comments        domainmetadata  records         tsigkeys      
cryptokeys      domains         supermasters  

Sätt behörigheter:

sudo chown -R pdns:pdns /var/lib/powerdns
sudo chmod 750 /var/lib/powerdns
sudo chmod 640 /var/lib/powerdns/pdns.sqlite3

Öppna och konfigurera backend:

sudo vi /etc/pdns/pdns.conf
! Lägg till 
# Backend
launch=gsqlite3
gsqlite3-database=/var/lib/powerdns/pdns.sqlite3

# Listen address
local-address=1.3.3.7, 127.0.0.1
local-port=53

# Allow DNS queries
allow-axfr-ips=1.3.3.8/#2

Om det finns någon annan launch i pdns.conf så kommer tjänsten inte starta. Sök efter launch och ta bort. Ha med 127.0.0.1 så att servern själv kan göra anrop till sig själv.

Installation - API

sudo vi /etc/pdns/pdns.conf
# Enable API
api=yes

# API key
api-key=BYT_TILL_EN_LANG_SLUMPMASSIG_NYCKEL

# Enable webserver
webserver=yes

# Listen address
webserver-address=1.3.3.7

# API port
webserver-port=8081

# Allow API access from trusted network
webserver-allow-from=127.0.0.1,192.168.0.0/16

Starta sedan om tjänsten med sudo systemctl restart pdns.

Verifiera att den lyssnar på tcp8081:

sudo ss -lntp | grep 8081
LISTEN 0      10      1.3.3.7:8081      0.0.0.0:*    users:(("pdns_server",pid=115833,fd=7))

Installation - sekundär server

Se till att den primära är inställd på att vara primary och inte native:

sudo pdnsutil zone set-kind labb.x.x.se primary

Konfa i /etc/pdns/pdn.conf på server1, använd IP-adressen till server2:

# Allow DNS queries
allow-axfr-ips=192.168.0.14

# Notify DNS2
also-notify=192.168.0.14

Installera den andra servern enligt guiden ovan. Se sedan till att den är sekundär och pekar på server 1:

sudo vim /etc/pdns/pdns.conf 
# Backend
launch=gsqlite3
gsqlite3-database=/var/lib/powerdns/pdns.sqlite3

# Listen address
local-address=192.168.0.14, 127.0.0.1
local-port=53

# Secondary DNS
secondary=yes

# Allow notify from primary
allow-notify-from=192.168.0.10

Skapa samma zon som finns på server 1: 

sudo pdnsutil zone create-secondary labb.underzon.doman.se 192.168.0.10

Gör en första zone transfer:

sudo pdns_control retrieve labb.underzon.doman.se

Uppsättning

Skapa en zon med: sudo pdnsutil create-zone example.com. Lista sen zonen med sudo pdnsutil list-all-zones.

Skapa records med: sudo pdnsutil add-record example.com dns01 A 192.168.100.10

Lista alla records i en zon med: sudo pdnsutil list-zone labb.jehrlander.se

Ett SOA-record behövs. Skapa genom att redigera hela filen med sudo EDITOR=vim pdnsutil zone edit labb.jehrlander.net. Lägg till:

labb.x.x.se.  3600  IN  SOA  dns1.x.x.se. hostmaster.labb.x.x.se. (
    2026110201 ; Serial
    300        ; Refresh
    60         ; Retry
    604800     ; Expire
    300        ; Minimum
)

Manuell zone-transfer på server 2: sudo pdns_control retrieve labb.rubin.smhi.x.x.se

För att manuellt öka SOA serial: sudo pdnsutil zone increase-serial zon.test.se

Skicka notify från primär till sekundär manuellt: sudo pdns_control notify-host labb.x.x.se 192.168.0.11

Redigera DNS-fil direkt:  sudo EDITOR=vim pdnsutil zone edit labb.x.x.se