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.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