{{indexmenu_n>001}}
====== PowerDNS : Installasi dengan posgresSQL Backend (Debian 12/13) ======
==== Install Paket ====
=== Update repository: ===
apt update
=== Install PowerDNS Authoritative + PostgreSQL: ===
apt install pdns-server pdns-backend-pgsql postgresql
=== Pastikan service PostgreSQL berjalan: ===
systemctl status postgresql
==== Buat Database & User PostgreSQL ====
=== Buat database dan user: ===
sudo -u postgres psql <
=== Import schema bawaan PowerDNS: ===
sudo -u postgres psql powerdns < /usr/share/pdns-backend-pgsql/schema/schema.pgsql.sql
=== Grant Permission to user pdns: ===
sudo -u postgres psql powerdns <
=== Cek tabel sudah dibuat: ===
sudo -u postgres psql powerdns -c "\dt"
==== Konfigurasi PowerDNS conflict port dengan ''systemd-resolved'' ====
Sometimes server linux terutama cloud images, menggunakan ''systemd-resolved'' yang menggunakan port 53 secara default. Kita ingin mendisable hal berikut untuk dapat digunakan PowerDNS Nanti.
=== Disable systemd-resolved ===
sudo systemctl disable systemd-resolved --now
hapus stub resolv.conf:
sudo rm /etc/resolv.conf
buat manual resolv.conf:
sudo nano /etc/resolv.conf
Sesuaikan dengan dns server kalian:
Contoh:
nameserver 8.8.8.8
nameserver 1.1.1.1
==== Konfigurasi PowerDNS Database Conection ====
=== Hapus bind.conf dikarenakan kita menggunakan psql sebagai our backend ===
rm /etc/powerdns/pdns.d/bind.conf
=== Buat konfigurasi powerdns database connetion sesuai dengan database kita ===
nano /etc/powerdns/pdns.d/gpgsql.conf
launch=gpgsql
gpgsql-host=127.0.0.1
gpgsql-port=5432
gpgsql-dbname=powerdns
gpgsql-user=pdns
gpgsql-password=passwordku
=== Restart Service ===
systemctl restart pdns
systemctl enable pdns
systemctl status pdns
{{indexmenu_n>001}}
====== PowerDNS : Installasi dengan posgresSQL Backend (Debian 12/13) ======
==== Install Paket ====
=== Update repository: ===
apt update
=== Install PowerDNS Authoritative + PostgreSQL: ===
apt install pdns-server pdns-backend-pgsql postgresql
=== Pastikan service PostgreSQL berjalan: ===
systemctl status postgresql
==== Buat Database & User PostgreSQL ====
=== Buat database dan user: ===
sudo -u postgres psql <
=== Import schema bawaan PowerDNS: ===
sudo -u postgres psql powerdns < /usr/share/pdns-backend-pgsql/schema/schema.pgsql.sql
=== Grant Permission to user pdns: ===
sudo -u postgres psql powerdns <
=== Cek tabel sudah dibuat: ===
sudo -u postgres psql powerdns -c "\dt"
==== Konfigurasi PowerDNS conflict port dengan ''systemd-resolved'' ====
Sometimes server linux terutama cloud images, menggunakan ''systemd-resolved'' yang menggunakan port 53 secara default. Kita ingin mendisable hal berikut untuk dapat digunakan PowerDNS Nanti.
=== Disable systemd-resolved ===
sudo systemctl disable systemd-resolved --now
hapus stub resolv.conf:
sudo rm /etc/resolv.conf
buat manual resolv.conf:
sudo nano /etc/resolv.conf
Sesuaikan dengan dns server kalian:
Contoh:
nameserver 8.8.8.8
nameserver 1.1.1.1
==== Konfigurasi PowerDNS Database Conection ====
=== Hapus bind.conf dikarenakan kita menggunakan psql sebagai our backend ===
rm /etc/powerdns/pdns.d/bind.conf
=== Buat konfigurasi powerdns database connetion sesuai dengan database kita ===
nano /etc/powerdns/pdns.d/gpgsql.conf
launch=gpgsql
gpgsql-host=127.0.0.1
gpgsql-port=5432
gpgsql-dbname=powerdns
gpgsql-user=pdns
gpgsql-password=passwordku
=== Restart Service ===
systemctl restart pdns
systemctl enable pdns
systemctl status pdns
==== Testing dengan pembuatan domain ====
=== Install tools ===
apt install pdns-tools dnsutils -y
=== Buat Zones dengan pdnsutil ===
sudo pdnsutil create-zone test.local
=== Tambahkan Recods ===
# Add SOA record
sudo pdnsutil add-record test.local @ SOA "ns1.test.local. admin.test.local. 1 3600 900 604800 300"
# Add NS record
sudo pdnsutil add-record test.local @ NS ns1.test.local
# Add A record for nameserver
sudo pdnsutil add-record test.local ns1 A 192.168.1.1
# Add A record for test host
sudo pdnsutil add-record test.local www A 192.168.1.10
=== Verify Zones ===
sudo pdnsutil list-zone test.local
=== Check Zones ===
sudo pdnsutil check-zone test.local
=== Test DNS Query ===
# Query your PowerDNS server directly
dig @127.0.0.1 www.test.local A
dig @127.0.0.1 test.local NS
dig @127.0.0.1 test.local SOA