Install PowerDNS dan PowerAdmin dengan MySQL di CentOS

Pada tutorial kali ini akan kita bahas tentang cara install PowerDNS di centos 6 64 bit sebagai DNS Server. Pada tutorial sebelumnya kita pernah bahas tentang DNS server dengan BIND pada tutorial ini Basic Cara Managed VPS Non-Panel Dengan Apache Webserver, Tutorial Install Apache/httpd 2.4 di Centos 6 dan atau pada tutorial ini Cara Managed VPS Non-Panel Dengan Nginx Webserver.

PowerDNS adalah DNS Server berbasis MySQL, yang ditulis dalam C ++ dan berlisensi Under GPL. PowerDNS dapat dikelola melalui web base interface (PowerAdmin) sehingga akan mempermudah pengguna untuk managed. Pada tutorial berikut ini penulis akan mencoba menunjukkan bagaimana cara menginstalnya Powerdns di CentOS

Package yang akan kita install yaitu : PowerDns, PowerAdmin.MariaDB sebagai database server dan PHP untuk menjelankan web interfacenya dan Httpd sebaga webservernya.
Baik kita langsung saja untuk proses install paket yang dibutuhkan

1. Step pertama yaitu kita install MariaDB sebagai database server, HTTPD sebagai web server dan PHP


Pertama kita tambah/install repo untuk menginstall MariaDB di centos 6, caranya yaitu sebagai berikut ini :
[albenet@dummy ~]$ sudo yum update && sudo yum install epel-release
[albenet@dummy ~]$ sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
Kemudian add file /etc/yum.repos.d/mariadb.repo dan tambahkan baris berikut ini :
[albenet@dummy ~]$ sudo nano /etc/yum.repos.d/mariadb.repo
=====================================================
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.1/centos6-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
=====================================================

Selanjutnya kita meng-Enable Remi Repository dengan cara sebagai berikut :
Secara default Remi repositori akan menginstall PHP versi5.4, jika Anda ingin menginstal PHP 5.5 atau 5.6, Anda harus mengaktifkan dengan menambahkan baris berikut ini:
Silahkan edit file /etc/yum.repos.d/remi.repo dan sesuaikan dengan baris-baris berikut ini :
[albenet@dummy ~]$ sudo nano /etc/yum.repos.d/remi.repo
==================================start Untuk PHP 5.5===========================
[remi-php55]
name=Remi's PHP 5.5 RPM repository for Enterprise Linux 6 - $basearch
#baseurl=http://rpms.remirepo.net/enterprise/6/php55/$basearch/
mirrorlist=http://rpms.remirepo.net/enterprise/6/php55/mirror
# NOTICE: common dependencies are in "remi-safe"
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi
======================================End Untuk PHP 5.5============================
======================================start Untuk PHP 5.6==========================
[remi-php56]
name=Remi's PHP 5.6 RPM repository for Enterprise Linux 6 - $basearch
#baseurl=http://rpms.remirepo.net/enterprise/6/php56/$basearch/
mirrorlist=http://rpms.remirepo.net/enterprise/6/php56/mirror
# NOTICE: common dependencies are in "remi-safe"
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi
=========================================End Untuk PHP 5.6============================
Selanjutnya yaitu Meng-Install MariaDB, HTTPD dan PHP
Setelah step-step di atas selesai kita lakukan tanpa mengalami error selanjutnya kita mulai untuk install MariaDB, HTTPD dan PHP dengan cara sebagai berikut ini :
[albenet@dummy ~]$ sudo yum --enablerepo=remi install MariaDB-client MariaDB-server
Kemudian kita install PHP Modules dan HTTPD yang akan dibutuhkan dengan cara sebagai berikut ini :
[albenet@dummy ~]$ sudo yum -y install httpd php php-devel php-gd php-imap php-ldap php-mysql php-odbc php-pear php-xml php-xmlrpc php-mbstring php-mcrypt php-mhash gettext
Note : Jika ada muncul error seperti ini ketik yum install :
[albenet@dummy ~]$ sudo yum install blablablabla
Loaded plugins: fastestmirror
Setting up Install Process
Determining fastest mirrors
Illegal instruction
Bisa ditambahkan NSS_DISABLE_HW_GCM=1 sebelum perintah yum
[albenet@dummy ~]$ sudo NSS_DISABLE_HW_GCM=1 yum install blablablabla
Selanjutnya kita Start service httpd dan MariaDB dengan cara sebagai berikut ini :
[albenet@dummy ~]$ sudo chkconfig --level 345 mysql on
[albenet@dummy ~]$ sudo chkconfig --level 345 httpd on
[albenet@dummy ~]$ sudo /etc/init.d/httpd start
Starting httpd: [ OK ]
[albenet@dummy ~]$ sudo /etc/init.d/mysql start
Starting MySQL. [ OK ]
[albenet@dummy ~]$ sudo
Selanjutnya set password untuk MySQL
[albenet@dummy ~]$ sudo /usr/bin/mysql_secure_installation

2. Step kedua kita membuat database yang akan digunakan PowerDns


Selanjutnya kita buat database yang nantinya akan digunakan oleh PowerDns dengan cara sebagai berikut ini :
[albenet@dummy ~]$ sudo mysql -u root -ppassword-mysql
MariaDB [(none)]> CREATE DATABASE mydatabasedns;
MariaDB [(none)]> use mydatabasedns;
MariaDB [mydatabasedns]> 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)
);

MariaDB [mydatabasedns]> CREATE UNIQUE INDEX name_index ON domains(name);
MariaDB [mydatabasedns]> 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)
);

MariaDB [mydatabasedns]> CREATE INDEX rec_name_index ON records(name);
MariaDB [mydatabasedns]> CREATE INDEX nametype_index ON records(name,type);
MariaDB [mydatabasedns]> CREATE INDEX domain_id ON records(domain_id);

MariaDB [mydatabasedns]> CREATE TABLE supermasters (
ip VARCHAR(25) NOT NULL,
nameserver VARCHAR(255) NOT NULL,
account VARCHAR(40) DEFAULT NULL
);

MariaDB [mydatabasedns]> quit;

3. Step selanjutnya yaitu Install PowerDns


[albenet@dummy ~]$ sudo yum -y install pdns pdns-backend-mysql
[albenet@dummy ~]$ sudo nano /etc/pdns/pdns.conf
Dan tambahakan baris berikut ini :
========================
launch=gmysql
gmysql-host=localhost
gmysql-user=root
gmysql-password=password-databse
gmysql-dbname=mydatabasedns
========================
[albenet@dummy ~]$ sudo chkconfig --levels 235 pdns on
[albenet@dummy ~]$ sudo service pdns start

4. Step selanjutnya Menginstall PowerAdmin


[albenet@dummy ~]$ sudo yum -y install php-pear-DB php-pear-MDB2-Driver-mysql
Download package PowerAdmin dari link berikut ini : https://sourceforge.net/projects/poweradmin/files/latest/download?source=directory dan atau https://www.poweradmin.org/, jika sudah didownload package kemudian upload ke dalam server anda, selanjutnya silahkna extract dan install
[albenet@dummy ~]$ sudo tar zxvf poweradmin-2.1.7.tgz -C /var/www/mydomain.com/public_html/
[albenet@dummy ~]$ sudo cd /var/www/mydomain.com/public_html/
[albenet@dummy public_html]$ sudo mv poweradmin-2.1.7 dnspanel
[albenet@dummy public_html]$ sudo chown -R apache:apache dnspanel/
Kemudian silahkan akses dari web browser anda IP atau domain server yang anda install PowerDNS, contoh :
http://IP-server/dnspanel/install/
atau
http://mydomain.com/dnspanel/install/
Maka akan muncul tampilan sebagai berikut ini :

Selanjutnya pilih bahasa di tutorial ini penulis memilih bahasa English,  kemudian pilih dan click tombol "Go to step 2" maka akan muncul tampilan sebagai berikut ini :

Kemudian pilih dan click tombol "Go to step 3" maka akan muncul tampilan sebagai berikut ini :

Silahkan isi form yang ada sesuai dengan configurasi database yang telah kita buat sebelumnya, kemudian pilih dan click tombol "Go to step 4" maka akan muncul tampilan sebagai berikut ini :

Silahkan isi form sesuai keterangan yang ada kemudian pilih dan click tombol "Go to step 5" maka akan muncul tampilan sebagai berikut ini :

Selanjutnya silahkan pilih dan click tombol "Go to step 6" maka akan muncul tampilan sebagai berikut ini :

Yang mana di step ini diinformasikan bahwasanya kita perlu membuat manual file ../inc/config.inc.php karena tidak bisa auto create ketika proses install dan isi dari file ../inc/config.inc.php yaitu merupakan configurasi untuk koneksi ke database yang telah kita buat sebelumnya, jadi stepnya yaitu :
Silahkan masuk ke console linux server anda dan ketik perintah berikut ini :
[albenet@dummy ~]$ sudo cd /var/www/mydomain.com/public_html/dnspanel/
Note : untuk direktorinya silahkan sesuaikan dengan nama direktori yang anda gunakan
Kemudian buat file inc/config.inc.php dan isi sesuai dengan yang telah diinformasikan di atas :
[albenet@dummy ~]$ sudo nano inc/config.inc.php
==============================================================
<?php
$db_host = 'localhost';
$db_user = 'admin';
$db_pass = 'password-database';
$db_name = 'mydatabasedns';
$db_type = 'mysql';
$db_layer = 'PDO';

$session_key = 'C)q+YDlA0-vh-ve]cSuWM^s*Fb%^BRNOa@{=C&ttgah!W=';

$iface_lang = 'en_EN';

$dns_hostmaster = 'dummy.mydomain.com';
$dns_ns1 = 'ns3.mydomain.com';
$dns_ns2 = 'ns4.mydomain.com';
==============================================================
kemudian save, setelah itu silahkan pilih dan click tombol "Go to step 7" maka akan muncul tampilan sebagai berikut ini :

Nah pada step ini kita diinformasikan bahwasanya kita telah berhasil install Poweradmin dan kemudian kita diminta untuk menghapus atau merename folder 'install' dan kemudian mengakses halaman poweradminnya dengan user dan password yang telah diinformasikan, jadi silahkan hapus atau rename folder "install" Poweradmin dan kemudian silahkan akses halaman Poweradminnya, maka akan tampil halama sebagai berikut ini :

Silahkan input user dan password anda sesuai yang telah disetting saat proses installasi atau sesuai dengan yang telah diinformasikan di halaman sebelumnya, jika berhasil login maka akan muncul tampilan sebagai berikut ini :

Jika tampil halam seperti di atas ini berarti kita sudah berhasil menginstall Poweradmin untuk memanaged DNS record yang berjalan di PowerDns.

5. Step selanjutnya Membuat Template Zone


Template Zone ini adalah untuk record yang tercreate secara otomatis ketika kita menambahkan domain. Untuk membuat Template Zone pada PowerAdmin caranya yaitu sebagai berikut:
a. Setelah berhasil login ke halaman PowerAdmin seperti tampilan di atas, selanjutnya pilih dan click menu "List Zone Template" maka akan muncul tampilan sebagai berikut ini :

b. Kemudian pilih dan click "Add zone template" maka akan muncul tampilah sebagai berikut :

Silahkan isi 'Name' dan 'Description' sesuai dengan kebutuhan, kemudia pilih dan click "Add zone template". Setelah itu kemudian silahkan masuk kembali ke list zone template dengan cara mengclick menu "List zone template" maka akan menampilkan halaman sebagai berikut :

Di situ terlihat template zone yang barusan kita add tadi dengan disertai dua icon yaitu "hapus" dengan ico tempat sampah dan "Edit" dengan icon pensil dan kertas.
Selanjutnya yaitu kita pilih dan click edit yang icon pensil dan kertas untuk menambahka Record yang otomatis terbentuk ketika kita menambahkan domain nantinya, tampilan setelah kita click edit yaitu sebagai berikut ini :

Selanjutnya kita pilih dan click tombol "Add record" untuk menambahkan record yang nantinya akan otomatis terbentuk ketika kita menambahkan domain, kurang lebih tampilannya sebagai berikut ini :

Untuk recordnya silahkan anda sesuaikan dengan kebutuhan anda, untuk list record yang dibuat oleh penulis untuk templatenya kurang lebih seperti berikut ini :

Nah sampai step ini kita sudah berhasil membuat 1 template zone yang bisa kita gunakan ketika akan menambahkan domain nantinya.

6. Step selanjutnya Menambahkan Domain


Step selanjutnya yaitu cara kita menambahkan domain di PowerAdmin.
a. Pilih dan click menu "Add master zone" maka akan muncul tampilan sebagai berikut :

Zone Name : isi dengan nama domain yang ingin di tambahkan
Owner : Pilih user yang nantinya bisa memenaged Record Domain tersebut, jika belum ada bisa pilih Administrator
Type : Bisa pilih native
Template : Pilih template yang tadinya kita buat pada step #5
Kemudian pilih dan click tombol "Add zone"
b. Setelah itu, step selanjutnya Edit record
Step selanjutnya yaitu kita edit record untuk domain yang telah kita add, yaitu dengan cara pilih dan click menu "List zones" maka akan muncul list domain yang telah kita add seperti gambar di bawah ini :

Pada gambar tersebut kita bisa lihat domain yang telah kita add, di bagian records terlihat ada 13, ini auto created sesuai yang telah kita setting pada template "Customer" sebelumnya. Untuk menambah/edit/hapus record dari domain bisa dengan mengclick edit yaitu icon pensil dan kertas, maka akan muncul tampilan sebagai berikut ini :

Di situ terlihat untuk IP nya masih diarahkan ke IP localhost yaitu 127.0.0.1, silahkan anda edit dan sesuaikan dengan IP webserver, atau IP yang ingin anda tuju dengan record tersebut dan jika rasa-rasanya sudah pas semua selanjutnya pilih dan click tombol "Commit changes". Jika hendak menambahkan subdomain bisa melalui bagian bawah yang ada "Add record"

Sehingga jika kedepan ada nambah domain, cukup mengulang step #6 ini saja lagi.
Selanjutnya tinggal mengoptimalkan kinerja server DNSnya dan mengamankan dan merawatnya dengan baik.

Tutorial selanjutnya akan kita bahas tentang DNS Cluster dengan menggunakan PowerDns, namun bukan sekarang yach soalnya lagi ada 'tugas' saat ini.
Bocoran dikit, DNS Cluster itu yaitu minimal kita punya dua unit server DNS yang mana record zone nya saling syncron sehingga ketika salah satu DNS Server down maka DNS Server yang UP bisa menghendle query yang ada. Nah karena PowerDns ini menggunakan database MySQL maka melakukannya cukup bisa dengan melakukan database sync/database Replication dan"penyesuaian' lainnya, bagaimana step by step melakukannya ? Silahkan tunggu tutorial selanjutnya.

Selamat Mencoba dan Semoga Sukses


 

Copyright Albenet Hosting Sunday 25-Jun-2017 All rights reserved.