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