Tag Archives: PowerDNS

Install PowerDNS & Poweradmin Pada Debian Squeeze

Artikel ini akan menunjukkan cara menginstall PowerDNS authoritative name server dengan backend MySQL sebagai record database, dan Poweradmin sebagai web interface atau control panel-nya. Dalam contoh ini, saya menggunakan Debian Squeeze sebagai server, dengan hostname ns1.ariw.net dan IP address 192.168.1.100. Saya hanya akan setup 1 server master aja, dan kalau Anda ingin menambahkan 1 server tambahan (sebagai slave) akan sangat mudah dengan melakukan replikasi database MySQL.

Install MySQL Server
Untuk menginstall MySQL, perintah di terminal:

apt-get install mysql-server mysql-client

Anda akan diminta memasukkan password baru untuk user root MySQL – password ini bukan password root system Linux.

New password for the MySQL "root" user:
Repeat password for the MySQL "root" user:

Kita akan membuat MySQL server listen di semua interface (bukan hanya localhost / 127.0.0.1), hal ini penting untuk database replication. Untuk itu edit file /etc/mysql/my.cnf dan beri komen (tanda #) pada baris bind-address = 127.0.0.1: vi /etc/mysql/my.cnf

#bind-address = 127.0.0.1

Selanjutnya restart MySQL:

/etc/init.d/mysql restart

Install PowerDNS
Untuk Install PowerDNS perintahnya adalah:

apt-get install pdns-server pens-backend-mysql

Konfigurasi PowerDNS berlokasi di direktori /etc/powerdns/. Tapi sebelumnya kita akan membuat user dan database dulu di MySQL:

mysql -u root -p

Masukkan root password, lalu di MySQL shell kita buat dabase untuk PowerDNS:

CREATE DATABASE powerdns;

Selanjutnya kita buat user (poweradmin) untuk PowerDNS:

GRANT ALL ON powerdns.* TO 'poweradmin'@'localhost' IDENTIFIED BY 'poweradminpassword';
GRANT ALL ON powerdns.* TO 'poweradmin'@'localhost.localdomain' IDENTIFIED BY 'poweradmin_password';
FLUSH PRIVILEGES;

(Ganti “poweradminpassword” dengan password yang diinginkan) Sekarang kita buat tables yang diperlukan PowerDNS

USE powerdns;
CREATE TABLE domains ( id INT autoincrement, name VARCHAR(255) NOT NULL, master VARCHAR(128) DEFAULT NULL, lastcheck INT DEFAULT NULL, type VARCHAR(6) NOT NULL, notified_serial INT DEFAULT NULL, account VARCHAR(40) DEFAULT NULL, primary key (id) );
CREATE UNIQUE INDEX name_index ON domains(name);
CREATE TABLE records ( id INT autoincrement, domainid 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) );
CREATE INDEX recnameindex ON records(name); CREATE INDEX nametypeindex ON records(name,type); CREATE INDEX domainid ON records(domain_id);
CREATE TABLE supermasters ( ip VARCHAR(25) NOT NULL, nameserver VARCHAR(255) NOT NULL, account VARCHAR(40) DEFAULT NULL );
quit;

Dan sekarang kita konfigurasi PowerDNS agar menggunakan backend MySQL:

vi /etc/powerdns/pdns.conf

Tambahkan direktif launch = gmysql di pdns.conf:

[...]
# # launch Which backends to launch and order to query them in # #
launch= launch=gmysql
[...]

Selanjutnya buka /etc/powerdns/pdns.d/pdns.local dan buat agar isinya seperti ini:

# Here come the local changes the user made, like configuration of # the several backends that exist.
gmysql-host=127.0.0.1
gmysql-user=poweradmin
gmysql-password=poweradmin_password
gmysql-dbname=powerdns

Restart servce pdns:

/etc/init.d/pdns restart

Sampai sini instalasi PowerDNS authoritative name server udah selesai dan bisa digunakan. Untuk belajar gimana cara menggunakannya tanpa bantuan control panel bisa merujuk ke halaman ini: http://downloads.powerdns.com/documentation/html/index/

Install Poweradmin
Sekarang mari install Poweradmin, control panel berbasis web untuk PowerDNS. Karena Poweradmin ditulis dalam PHP, jadi kita harus menginstall web server (dalam contoh ini Apache) dan PHP:

apt-get install apache2 libapache2-mod-php5 php5 php5-common php5-curl php5-dev php5-gd php-pear php5-imap php5-mcrypt php5-ming php5-mysql php5-xmlrpc gettext php-db php-mdb2 php-mdb2-driver-mysql

Kemudian restart Apache web server:

/etc/init.d/apache2 restart

Semua persyaratan Poweradmin sudah terinstall, jadi kita bisa lanjut ke proses instalasi Poweradmin (saya akan install di direktori /var/www, /var/www adalah document root default web server Apache di Debian, kalau Anda ingin document root di lokasi lain silahkan disesuaikan aja). Kunjungi halaman http://www.poweradmin.org/trac/wiki/GettingPoweradmin dan download release terakhir Poweradmin:

cd /tmp/
wget http://www.poweradmin.org/download/poweradmin-2.1.5.tgz

Lalu install di direktori /var/www/poweradmin/ seperti ini:

tar xvfz poweradmin-2.1.5.tgz
mv poweradmin-2.1.5 /var/www/poweradmin
touch /var/www/poweradmin/inc/config.inc.php
chown -R www-data:www-data /var/www/poweradmin/

Sekarang menggunakan browser buka halaman Poweradmin installer (http://ns1.ariw.net/poweradmin/install/index.php atau http://192.168.1.100/poweradmin/install/index.php): dan isi detail database. Disarankan untuk menggunakan user root atau yang selevel dengan itu. Isikan juga password user admin yang akan kita gunakan untuk login ke web interface Poweradmin nanti.

Di halaman berikutnya, isi detail untuk MySQL user poweradmin yang udah kita buat di langkah sebelumnya. Dan juga isikan dua default nameserver yang akan digunakan ketika membuat zona domain. Lalu di halaman berikutnya kita akan diminta untuk meng-execute beberapa perintah MySQL. Langkah ini ngga perlu dilakukan lagi karena tadi udah kita lakukan.

Sekarang Anda bisa langsung membuka halaman http://ns1.ariw.net/poweradmin/ atau http://192.168.1.100/poweradmin/ dan login dengan username admin dan password yang tadi dibuat.

Setelah login kita bisa langsung membuat zona domain. Tentu harus udah ada pemahaman tentang DNS server sebelumnya, apa itu SOA, NS, A, PTR, dan sebagainya. Mungkin pemahaman tentang DNS akan saya jelaskan di posting berikutnya. Happy exploring!