Tutorial Instalasi dan Konfigurasi PowerDNS – Poweradmin UI

Apa itu PowerDNS ?

PowerDNS merupakan service atau layanan domain name server canggih dengan kinerja dan tingkat kompatibilitas yang tinggi. PowerDNS memiliki banyak pilihan dalam mengakses konfigurasi dan records. PowerDNS bisa mengakses konfigurasi dari file BIND9 atau mengakses informasi mengenai zone dan records dari database seperti MariaDB, MySQL, SQLite, Oracle, PostgreSQL, dan server database lainnya. Inilah yang menjadi kelebihan PowerDNS sehingga bisa diandalakan di banyak lingkungan server.

Pada artikel ini, kita akan menggunakan MariaDB sebagai sumber informasi zone dan records domain. MariaDB pada dasarnya sama dengan MySQL, namun hanya berbeda pengembangannya. Secara singkat, MariaDB merupakan database relasi yang dioperasikan dengan query atau bahasa SQL. PowerDNS dapat melakukan permintaan data zones dan records yang disimpan di dalam database MariaDB.

Di akhir artikel ini, kita akan memiliki server PowerDNS yang berfungsi dan dapat digunakan untuk memberi domain pada banyak server. Bahkan pengoperasian PowerDNS pada tutorial ini akan sangat mudah karena berbasis web UI menggunakan Poweradmin.

Prasyarat

Sebelum mengikuti artikel ini, siapkan server Ubuntu 20.04 dengan spesifikasi minimal:

  • RAM 2GB
  • Prosesor 2 Core
  • Hardisk 30 GB atau lebih

Dalam artikel ini, IP address server PowerDNS yaitu 10.23.1.241 dan nama domain yang digunakan dengan contoh sebagai berikut.

Demi kelancaran dalam proses instalasi dan konfigurasi gunakan user root. Login user root:

sudo su

Kemudian masukkan password sudo user yang digunakan.

Langkah 1. Update dan Upgrade

Sebelum melakukan instalasi PowerDNS lebih baik untuk melakukan update repository dan upgrade service yang ada. Update dan Upgrade:

apt update && apt upgrade -y

Langkah 2. Instal MariaDB

Sebelumnya kita instal terlebih dahulu aplikasi untuk mengakses repository MariaDB:

apt install software-properties-common gnupg2 -y

Import terlebih dahulu key repository (kunci repositori) MariaDB:

apt-key adv --fetch-keys 'https://mariadb.org/mariadb_release_signing_key.asc'

Barulah instal MariaDB:

apt install mariadb-server -y

Langkah 3. Secure MariaDB (Opsional)

Langkah ini dapat dilewati. Mengamankan database biasanya dilakukan pada penggunaan website yang berhubungan dengan data kredensial. Namun, sebagai tindakan preventif lebih baik jika dilakukan pengamanan. Jalankan perintah sebagai berikut:

mysql_secure_installation

Lewati dengan klik enter jika password root belum diubah sebelumnya.

Lebih baik untuk mengatur password root dengan klik enter dan masukkan n jika dirasa tidak perlu mengaturnya.

Klik enter untuk mengatur agar users anonim tidak dapat mengakses database.

Klik enter untuk mengatur agar user root database (bukan user root sistem) tidak diizinkan mengakses secara remote.

Klik enter untuk menghilangkan database bernama “test” dan izin akses ke database tersebut.

Terakhir, klik enter untuk memuat ulang tabel yang memuat aturan dan izin database. Dan sampai sini, database telah beroperasi dengan keamanan lebih baik.

Langkah 4. Buat Database dan User Database Untuk PowerDNS di MariaDB

Pada langkah ini, database akan dinamai “pdns” dan user database bernama “pdnsadmin” dengan password “123”. Nama database dan user database tersebut disarankan juga untuk diikuti agar lebih mudah, dan password dapat diatur lebih rumit.

Pertama, masuk ke dalam MariaDB dengan menjalankan perintah berikut:

mysql -u root -p

Kemudian masukan password user database root.

Selanjutnya, buat database:

create database pdns;

Buat user dengan langsung mendefinisikan izin user dan passwordnya sekaligus serta flush privileges:

grant all privileges on pdns.* to pdnsadmin@localhost identified by '123';
flush privileges;
exit

exit merupakan perintah yang digunakan untuk keluar dari program MariaDB.

Langkah 5. Ubah Nameserver Resolv.conf

Setelah keluar dari MariaDB, ubah konfigurasi nameserver yang berada di dalam file resolv.conf dengan membuat ulang file tersebut agar permanen.

rm -rf /etc/resolv.conf
echo "nameserver 10.23.1.241" > /etc/resolv.conf

Langkah 6. Instal dan Konfigurasi PowerDNS

Perintah untuk instal PowerDNS:

apt install pdns-server pdns-backend-mysql -y

Buat database beserta struktur tabelnya menggunakan template yang tersedia di dalam directory /usr/share/pdns-backend-mysql/schema/. Dengan perintah:

mysql -u pdnsadmin -p123 -D pdns < /usr/share/pdns-backend-mysql/schema/schema.mysql.sql

Buat file koneksi PowerDNS ke dalam database MariaDB di dalam path directory etc/powerdns/pdns.d dengan nama pdns.local.gmysql.conf dengan menjalankan perintah:

vim /etc/powerdns/pdns.d/pdns.local.gmysql.conf

Kemudian isi file tersebut dengan konfigurasi sebagai berikut:

# MySQL Configuration
#
# Launch gmysql backend
launch+=gmysql

# gmysql parameters
gmysql-host=127.0.0.1
gmysql-port=3306
gmysql-dbname=pdns
gmysql-user=pdnsadmin
gmysql-password=123
gmysql-dnssec=yes
# gmysql-socket=

Ubah izin akses file koneksi yang telah dibuat menjadi 6 (read dan write) untuk user, 4 (read) untuk group dan 0 (-) untuk other:

chmod 640 /etc/powerdns/pdns.d/pdns.local.gmysql.conf

Kemudian hentikan service PowerDNS terlebih dahulu dan periksa lognya:

systemctl stop pdns
pdns_server --daemon=no --guardian=no --loglevel=9

Ketika melihat log, setidaknya terdapat informasi seperti gambar di atas yang menunjukkan bahwa koneksi PowerDNS dengan database MariaDB berhasil.

Setelah diperiksa dan koneksi berhasil, jalankan kembali service PowerDNS:

systemctl start pdns

Pastikan juga protokol yang digunakan service pdns berjalan ketika dilihat dengan statistik jaringan:

ss -alnp4 | grep pdns

Langkah 7. Instal Poweradmin

Poweradmin adalah user interface dari PowerDNS dengan basis website. Dengan Poweradmin, kita akan dipermudah dalam melakukan konfigurasi zone, records, dan segala hal yang diperlukan dalam konfigurasi nama domain. Poweradmin ini dikembangkan secara perorangan yang dipublikasi di github dengan akses bebas.

Sebelum mengambil sumber kode terbuka Poweradmin yang ada di github, diperlukan instalasi beberapa service dan dependencies. Jalankan perintah di bawah ini:

apt install -y wget apache2 gettext libapache2-mod-php php php-common php-curl php-dev php-gd php-pear php-imap php-mysql php-xmlrpc php-intl

Beberapa service penting yang diinstal antara lain web server apache2, wget untuk mengambil file di internet menggunakan link, dan php beserta beberapa modulnya.

Kemudian install ekstensi database yang diambil dari repository PHP:

pear install DB

Restart service web server apache2:

systemctl restart apache2.service

Download paket kode Poweradmin:

wget https://github.com/poweradmin/poweradmin/archive/refs/tags/v3.4.1.tar.gz

Gunakan Poweradmin versi 3.4.1 yang sesuai dengan langkah-langkah dan sudah teruji dalam artikel ini.

Ekstrak file archive yang sudah didownload:

tar xvzf v3.4.1.tar.gz

Pindah folder/direktori Poweradmin ke dalam direktori Apache:

mv poweradmin-3.4.1 /var/www/html/poweradmin

Ubah kepemilikan direktori Poweradmin menjadi milik user webserver:

chown -R www-data:www-data /var/www/html/poweradmin/

Langkah 8. Konfigurasi Poweradmin

Setelah selesai melakukan instalasi Poweradmin, akses IP server tersebut menggunakan browser untuk melakukan konfigurasi Poweradmin.

http://10.23.1.241/poweradmin/install/

Pilih bahasa yang ingin digunakan. Gambar di atas memilih bahasa inggris sebagai bahasa yang akan digunakan Poweradmin. kemudian klik Go to step 2.

Pada halaman kedua, diberitahukan bahwa sebelum melakukan instalasi harus memiliki PowerDNS database yang dapat diakses dan belum pernah menjalankan Poweradmin sebelumnya. Jika sebelumnya terdapat data di dalam database, maka data-data tersebut akan dihapus. Maka sangat direkomendasikan untuk membuat cadangan database sebelum melakukan instalasi Poweradmin.

Klik Go to step 3 untuk melanjutkan insatalasi.

Pada tahap ketiga, isi form sesuai dengan konfigurasi database yang telah disiapkan sebelumnya pada tahap instalasi PowerDNS. Data yang disikan pada formulir tersebut digunakan oleh Poweradmin untuk mengakses database.

  • Username: user database yang telah dibuat untuk database PowerDNS
  • Password: password user database PowerDNS
  • Hostname: localhost / IP server
  • DB Port: port yang digunakan MariaDB (default port 3306)
  • Database: nama database PowerDNS
  • DB charset dan collation: jika ada character set tertentu yang digunakan (default kosong)
  • Poweradmin administrator password: password dari user “admin” yang digunakan untuk login

Pada tahap kelima, isi formulir sesuai dengan user database dan password user database Poweradmin. Pada isian hostmaster nantinya akan dijadikan nama domain utama yang memiliki second dan top-level domain yang disebut dengan Fully Qualified Domain Name (FQDN). Dan juga isi primary dan secondary nameserver yang digunakan untuk memberi informasi record domain.

Pada bagian ini langsung klik Go to step 6 jika sebelumnya sudah membuat database beserta user database yang digunakan PowerDNS.

Pada tahap ke 6, buat file konfigurasi di dalam directory web Poweradmin:
vim /var/www/html/poweradmin/inc/config.inc.php

Kemudian masukkan konfigurasi Poweradmin:

<?php
$db_host = 'localhost';
$db_name = 'pdns';
$db_user = 'pdnsadmin';
$db_pass = '123';
$db_type = 'mysql';

$session_key = '2f7_icjfAr3%(ju#YHBQAnral8znYymZvI)7E!Xzd$5O!R';

$iface_lang = 'en_EN';

$dns_hostmaster = 'hostmaster.amar-idnacademy.dev';
$dns_ns1 = 'ns1.amar-idnacademy.dev';
$dns_ns2 = 'ns2.amar-idnacademy.dev';

$ignore_install_dir = true;

Setelah itu, klik Go to step 7 kemudian klik login to Poweradmin.

Sampai langkah ini konfigurasi sudah selesai dan Poweradmin siap digunakan. Login gunakan Username “admin” dengan password yang sudah di buat pada tahap halaman ketiga ketika instalasi.

Tampilan awal setelah Login:

Cara Menggunakan Poweradmin

Sebagai contoh, kita akan membuat record zone dengan hostname amar-idnacademy.dev

Pertama-tama, pergi ke menu List zones:

Klik Add master zone untuk membuat forward zone:

Kemudian, isi zone name dengan domain yang diinginkan dengan type master:

Untuk forward zone, namakan zone dengan domain utama. Forward zone ini digunakan oleh server untuk memetakan atau mencocokkan domain dengan IP Address. Kemudian tambah lagi Add master zone untuk reverse zone:

Untuk reverse zone, namakan zone dengan nama <ip-terbalik>.in-addr.arpa. Pada contoh di atas menggunakan IP Address server PowerDNS 10.23.1.241 maka 3 oktet ditulis terbalik sebagai nama zona dan ditambahkan .in-addr.arpa. Reverse zone ini digunakan oleh server untuk memetakan atau mencocokkan IP Address dengan domain.

Membuat Forward Zone

Setelah itu, klik edit pada forward zone yang telah dibuat:

Buat NS (Name Server) Record yang digunakan oleh server untuk mengidentifikasi dimana record domain disimpan:

Kemudian buat A Record yang digunakan untuk mencocokkan domain dengan IP Address:

Untuk membuat sub-domain bisa dengan menambahkan CNAME Record. Record ini mengambil sumber dari domain utama dari A Record yang telah dibuat:

Hasil akhir dapat dilihat pada list record yang telah di buat:

Membuat Reverse Zone

Setelah itu, klik edit pada reverse zone yang telah dibuat:

Buat NS (Name Server) Record terlebih dahulu:

Kemudian buat PTR Record:

Hasil akhir dapat dilihat pada list record yang telah di buat:

Pengujian

Pengujian dapat dilakukan dengan nslookup dan dig seperti di bawah ini:

Kesimpulan

PowerDNS beroperasi dengan mengambil record yang tersusun di dalam database. Memang dalam melakukan instalasi lebih kompleks ketimbang menggunakan layanan DNS lain seperti BIND9. Tetapi setelah instalasi selesai, PowerDNS ini dapat dioperasikan lebih mudah menggunakan Poweradmin sebagai user interface untuk manajemen zones dan records-nya.

Tertarik mengikuti training di ID-Networkers? Kami menyediakan berbagai pilihan training yang bisa kamu ikuti, klik disini untuk info lengkapnya.

Penulis : Bazigan Tsamara Sukamto