Beberapa hari yang lalu, gw diminta untuk melakukan instalasi DNS server oleh kantor gw. Tidak berpikir lama, gw pun langsung memilih untuk menggunakan PowerDNS sebagai service-nya dan PowerAdmin sebagai GUI-nya. Alasan gw memilih PowerDNS server dengan MariaDB dan PowerAdmin sebagai backend-nya adalah karena mereka simple.
Sedikit tentang PowerDNS. PowerDNS adalah DNS Server yang bisa berjalan di banyak turunan Linux/Unix. aplikasi ini juga bisa dikonfigurasi dengan berbagai macam backend termasuk BIND, Database Relational atau Load balancer. Kemampuan lainnya adalah aplikasi ini juga bisa diatur untuk menjadi DNS recursor yang berjalan sebagai service atau proses yang berbeda (pdns-recursor).
Versi PDNS yang digunakan di sini adalah 3.4.11 dan untuk PowerAdmin adalah versi 2.1.7 sedangkan untuk MariaDB server adalah 10.1
Dalam tutorial ini akan ada beberapa sensor yang dilakukan terhadap IP, Hostname, nama domain dan beberapa detail lainnya yang dianggap tidak perlu untuk dipublikasikan.
Domain utama yang akan kita gunakan adalah xxxxxxxx.id . Domain ini akan kita gunakan untuk menjadi nama zona dan juga sebagai SOA.
Subdomain berikut adalah yang akan digunakan sebagai nameserver:
- dns.xxxxxxxxxxx.id (Hostmaster)
- dns1.xxxxxxxxxx.id (NS1)
- dns2.xxxxxxxxxx.id (NS2)
- dns3.xxxxxxxxxx.id (NS3)
Sebelum memulai, alangkah lebih baiknya menambahkan ketiga NS tersebut ke dalam Registrar. Berikut contohnya:
- Pertama, tambahkan Host dengan ketiga nama ns tersebut. Pada saat menambahkan host tersebut kita akan diminta untuk menentukan IPnya juga:

Menambahkan Host pada registrar - Setelah itu masukkan ketiga host tersebut ke dalam nameserver:

penempatan host ke dalam nameserver
Instalasi PowerDNS dengan MariaDB sebagai DBnya
- Pertama, kita perlu melakukan mengaktifkan repository EPEL pada server kita. Caranya:
yum install epel-release.noarch

epel repository - Tahapan selanjutnya adalah instalasi MariaDB Server. Untuk itu kita harus menambahkan repo MariaDB server ini pada Centos7. Caranya:
vi /etc/yum.repos.d/MariaDB.repo
Repository mariaDB - Setelah ditambahkan, lakukan update. Caranya:
yum update
yum update - Sekarang lakukan instalasi MariaDB Server. caranya:
yum install MariaDB-server MariaDB-client

Instalasi MariaDB - Sekarang nyalakan service MariaDB dan kemudian periksa statusnya. Caranya:
service mariadb start
service mariadb status
Status MariaDB - Ketika service MariaDB sudah berjalan, sekarang saatnya mengamankan dan membuat password untuk MariaDB Server ini. Caranya:
mysql_secure_instalation
secure installation - Setelah konfigurasi MariaDB sukses dilakukan, sekarang kita bisa masuk ke tahap instalasi PowerDNS. Caranya:
yum -y install pdns pdns-backend-mysql
instalasi powerdns - Kita akan melakukan sedikit perubahan pada konfigurasi PowerDNS yang terletak pada /etc/pdns/pdns.conf. Sebelum melakukan perubahan terebut, kita akan mengatur Database MariaDB utuk service PDNS. Pertama kita konek dalam MariaDB Server kemudian membuat database dengan nama powerdns (ini hanya contoh nama biar mudah, silahkan kalian menggantinya dengan nama lain).
mysql -u root -p
create database powerdns;
GRANT ALL ON powerdns.* TO ‘<user_powerdns>’@’localhost’ IDENTIFIED BY ‘<password_kamu>’;
GRANT ALL ON powerdns.* TO ‘<user_powerdns>’@'<hostname>’ IDENTIFIED BY ‘<password_kamu>’;
flush privileges;
membuat db dan user untuk service pdns - Setelah DBnya jadi, sekarang waktunya untuk membuat tabel yang akan digunakan oleh PowerDNS. Berikut adalah tabel-tabelnya:
use powerdns;
CREATE TABLE domains (
id INT auto_increment,
name VARCHAR(255) NOT NULL,
master VARCHAR(128) DEFAULT NULL,
last_check INT DEFAULT NULL,
type VARCHAR(6) NOT NULL,
notified_serial INT DEFAULT NULL,
account VARCHAR(40) DEFAULT NULL,
primary key (id)
);
tabel domains CREATE UNIQUE INDEX name_index ON domains(name);
CREATE TABLE records (
id INT auto_increment,
domain_id INT DEFAULT NULL,
name VARCHAR(255) DEFAULT NULL,
type VARCHAR(6) DEFAULT NULL,
content VARCHAR(255) DEFAULT NULL,
ttl INT DEFAULT NULL,
prio INT DEFAULT NULL,
change_date INT DEFAULT NULL,
primary key(id)
);
tabel records CREATE INDEX rec_name_index ON records(name);
CREATE INDEX nametype_index ON records(name,type);
CREATE INDEX domain_id ON records(domain_id);
Membuat index CREATE TABLE supermasters (
ip VARCHAR(25) NOT NULL,
nameserver VARCHAR(255) NOT NULL,
account VARCHAR(40) DEFAULT NULL
);
tabel supermasters - Sekarang kita bisa masuk ke dalam bagian konfigurasi PowerDNS. Karena PDNS akan menggunakan MariaDB sebagai backend, kita harus mendefinisikan host, user, password dan nama database pada /etc/pdns/pdns.conf . Caranya:
vi /etc/pdns/pdns.conf
Pada bagian paling atas, tambahkan konfigurasi berikut:
konfigurasi untuk pdns berhubungan dengan MariaDB - Sekarang kita akan mengaktifkan service pdns dan menambahkannya ke dalam service yang akan berjalan pada saat booting. Caranya:
systemctl enable pdns.service
systemctl start pdns.service
service pdns status
mengaktifkan service pdns
Sampai tahap ini pdns sudah up dan berjalan dengan baik.
Kita akan melakukan uji coba apakah PowerDNS merespon dengan normal. Caranya:
dig @127.0.0.1

Semua berjalan dengan baik, tahapan selanjutnya adalah instalasi PowerAdmin.
Untuk instalasi PowerAdmin, tunggu postingan berikutnya ya.
Manual PDNS bisa dilihat DISINI

Comments are closed.