Langkah-Langkah Install PowerDNS di AlmaLinux

Selamat Datang di Blog Hafiz

PowerDNS Authoritative Server merupakan salah satu software DNS Server yang digunakan untuk mengelola dan menyediakan informasi DNS suatu domain. PowerDNS mendukung berbagai jenis backend, salah satunya adalah Generic MySQL/MariaDB (gmysql) yang dapat digunakan untuk menyimpan data zone dan record DNS di dalam database.

Pada tutorial ini, PowerDNS akan diinstal pada server dengan sistem operasi AlmaLinux 10 menggunakan MariaDB sebagai database.

We partner with ambitious businesses to create digital solutions that inspire confidence, attract customers, and drive sustainable growth. By combining strategic thinking, creative design, and modern technology.

Lingkungan yang digunakan

OS: AlmaLinux 10

DNS Server: PowerDNS Authoritative Server

Database: MariaDB

Backend: Generic MySQL/MariaDB (gmysql)

Port DNS: 53 TCP/UDPServer: VPS

Notes

Sesuaikan nama domain, alamat IP, username, dan password dengan konfigurasi server masing-masing.

PERSIAPAN SERVER

Login ke VPS menggunakan akun root, kemudian lakukan update sistem.

dnf update -y

Setelah selesai, pastikan sistem memiliki hostname yang sesuai.

hostnamectl set-hostname dns.kering.my.id

Periksa hostname:

hostnamectl

PowerDNS menyediakan repository untuk Enterprise Linux. Untuk AlmaLinux 10, EPEL diperlukan untuk beberapa dependency.

dnf install epel-release -y

Untuk menggunakan PowerDNS Authoritative Server versi stable 5.1.x, tambahkan repository berikut:

curl -o /etc/yum.repos.d/powerdns-auth-51.repo \

https://repo.powerdns.com/repo-files/el-auth-51.repo

Kemudian perbarui metadata repository:

dnf makecache

Repository resmi PowerDNS menyediakan paket Authoritative Server 5.1.x untuk Enterprise Linux 10.

Install PowerDNS beserta backend Generic MySQL/MariaDB.

dnf install pdns pdns-backend-mysql -y

Backend gmysql digunakan PowerDNS untuk berkomunikasi dengan MySQL atau MariaDB. Backend ini mendukung berbagai fitur PowerDNS seperti primary, secondary, DNSSEC, dan DNS update.

Cek versi PowerDNS:

pdns_server –version

Jika MariaDB belum tersedia pada server, install MariaDB:

dnf install mariadb-server mariadb -y

Aktifkan dan jalankan MariaDB:

systemctl enable –now mariadb

Periksa statusnya:

systemctl status mariadb

Kemudian jalankan konfigurasi keamanan:

mariadb-secure-installation

Ikuti pertanyaan yang diberikan dan buat password untuk database.

Login ke MariaDB:

mariadb -u root -p

Buat database bernama powerdns:

CREATE DATABASE powerdns;

Kemudian buat user database:

CREATE USER ‘powerdns’@’localhost’ IDENTIFIED BY ‘PASSWORD_KUAT’;

Berikan hak akses:

GRANT ALL PRIVILEGES ON powerdns.* TO ‘powerdns’@’localhost’;

Terapkan privilege:

FLUSH PRIVILEGES;

Keluar dari MariaDB:

EXIT;

Ganti PASSWORD_KUAT dengan password database yang kamu buat sendiri.

BUAT ZONE DAN RECORD DNS.

PowerDNS membutuhkan beberapa tabel untuk menyimpan domain dan DNS record. Pada sistem RPM, schema database biasanya tersedia bersama paket backend.

Cari file schema:

rpm -ql pdns-backend-mysql | grep -E ‘schema|mysql’

Jika file schema ditemukan, gunakan file tersebut untuk membuat tabel database.

Contohnya:

mariadb -u root -p powerdns < /path/ke/schema.sql

Kemudian periksa tabel:

mariadb -u root -p

USE powerdns;

SHOW TABLES;

Tabel seperti domains, records, dan comments digunakan oleh PowerDNS untuk menyimpan informasi DNS.

Backup konfigurasi terlebih dahulu:

cp /etc/pdns/pdns.conf /etc/pdns/pdns.conf.backup

Edit konfigurasi:

nano /etc/pdns/pdns.conf

Tambahkan konfigurasi berikut:

launch=gmysql

gmysql-host=127.0.0.1

gmysql-port=3306

gmysql-dbname=powerdns

gmysql-user=powerdns

gmysql-password=PASSWORD_KUAT

Konfigurasi gmysql-host, gmysql-port, gmysql-dbname, gmysql-user, dan gmysql-password merupakan parameter yang digunakan PowerDNS untuk terhubung ke database MySQL/MariaDB.

Simpan konfigurasi setelah selesai.

Aktifkan dan jalankan service PowerDNS:

systemctl enable –now pdns

Periksa status:

systemctl status pdns

Jika status menunjukkan:

Active: active (running)

berarti PowerDNS sudah berhasil dijalankan.

Gunakan perintah berikut:

ss -lntup | grep pdns

atau:

ss -lntup | grep :53

PowerDNS seharusnya mendengarkan koneksi DNS pada port 53 TCP dan UDP.

Sebagai contoh, tambahkan record A:

pdnsutil add-record example.com @ A 3600 192.168.1.100

Tambahkan record untuk www:

pdnsutil add-record example.com www A 3600 192.168.1.100

Periksa hasilnya:

pdnsutil list-zone example.com

Setelah konfigurasi selesai, lakukan pengujian menggunakan dig.

dig @127.0.0.1 example.com

Untuk menguji record tertentu:

dig @127.0.0.1 www.example.com

Jika konfigurasi berhasil, PowerDNS akan memberikan jawaban DNS sesuai record yang telah dibuat.

Selamat Mencoba