Difference between revisions of "PowerDNS: Instalasi di Ubuntu"

From OnnoWiki
Jump to navigation Jump to search
Line 74: Line 74:
 
Sebaiknya menggunakan password yang lebih baik agar security lebih aman.
 
Sebaiknya menggunakan password yang lebih baik agar security lebih aman.
  
Enter the following command to update the user settings.
+
Tulis perintah berikut untuk update user settings.
  
 
  FLUSH PRIVILEGES;
 
  FLUSH PRIVILEGES;
  
Now, use the powerdns database with command:
+
Gunakan powerdns database, menggunakan perintah:
  
 
  USE powerdns;
 
  USE powerdns;
  
Create the necessary tables and records.
+
Buat tabel dan record.
  
First, let us create domains table:
+
Buat tabel domains:
  
 
  CREATE TABLE domains (
 
  CREATE TABLE domains (
Line 96: Line 96:
 
  primary key (id)
 
  primary key (id)
 
  );
 
  );
Create Unique Index for domains table:
 
 
  CREATE UNIQUE INDEX name_index ON domains(name);
 
  CREATE UNIQUE INDEX name_index ON domains(name);
  
Line 112: Line 111:
 
  primary key(id)
 
  primary key(id)
 
  );
 
  );
 
Create the following indexes for records table:
 
  
 
  CREATE INDEX rec_name_index ON records(name);
 
  CREATE INDEX rec_name_index ON records(name);
 
  CREATE INDEX nametype_index ON records(name,type);
 
  CREATE INDEX nametype_index ON records(name,type);
 
  CREATE INDEX domain_id ON records(domain_id);
 
  CREATE INDEX domain_id ON records(domain_id);
Create the supermasters table:
+
 
 +
Buat tabel supermasters:
 
   
 
   
 
  CREATE TABLE supermasters (
 
  CREATE TABLE supermasters (
Line 126: Line 124:
 
  );
 
  );
  
Finally, exit from MySQL prompt using command:
+
Keluar dari MySQL menggunakan perintah:
  
 
  quit;
 
  quit;
  
Configure PowerDNS
+
==Konfigurasi PowerDNS==
 +
 
 
Now, we should configure PowerDNS to use MySQL as backend to store Zone files and records.
 
Now, we should configure PowerDNS to use MySQL as backend to store Zone files and records.
  

Revision as of 08:52, 1 June 2015

Install PowerDNS di Ubuntu

Operating system: Ubuntu 14.04 LTS server
IP Address: 192.168.0.100/24
Hostname: refserver


Update apps

sudo apt-get update
sudo apt-get upgrade -y


Instalasi & Setup MySQL

sudo apt-get install mysql-server mysql-client

Jika sedang belajar dapat menggunakan password root 123456. Untuk operasional sebaiknya jangan menggunakan password root 123456.

Edit /etc/mysql/my.cnf agar MySQL mendengarkan semua interfaces.

sudo vi /etc/mysql/my.cnf

Cari kalimat berikut, dan di beri pagar (#).

[...]
#bind-address           = 127.0.0.1
[...]

Simpan dan tutup file. Restart MySQL service.

sudo service mysql restart

Selesai sudah proses instalasi MySQL. Selanjutnya kita akan menginstalasi PowerDNS.


Install PowerDNS

Instalasi

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

Lakukan:

  • Tekan 'Yes' untuk Configure database for pdns-backend-mysql with dbconfig-common?
  • Masukan password root MySQL (dalam contoh ini 123456).
  • Masukan password untuk pdns-backend-mysql untuk register ke database server. Untuk memudahkan gunakan password 123456
  • Ulangi masukan password untuk pdns-backend-mysql untuk register ke database server.

Sekarang PowerDNS sudah di instalasi.


Create PowerDNS Database dan User di MySQL

Masuk ke MySQL

sudo mysql -u root -p

untuk password root 123456 dapat menggunakan

sudo mysql -u root -p123456

Buat database ‘powerdns’. Database user 'poweruser'. Atau kita dapat membuat sendiri juga

CREATE DATABASE powerdns;
GRANT ALL ON powerdns.* TO 'poweruser '@'localhost' IDENTIFIED BY 'ubuntu';

Disini,

  • powerdns – adalah database;
  • poweruser – adalah database user,
  • ubuntu – adalah password for the ‘poweruser’ user.

Sebaiknya menggunakan password yang lebih baik agar security lebih aman.

Tulis perintah berikut untuk update user settings.

FLUSH PRIVILEGES;

Gunakan powerdns database, menggunakan perintah:

USE powerdns;

Buat tabel dan record.

Buat tabel domains:

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

Buat tabel records:

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)
);
CREATE INDEX rec_name_index ON records(name);
CREATE INDEX nametype_index ON records(name,type);
CREATE INDEX domain_id ON records(domain_id);

Buat tabel supermasters:

CREATE TABLE supermasters (
ip VARCHAR(25) NOT NULL,
nameserver VARCHAR(255) NOT NULL,
account VARCHAR(40) DEFAULT NULL
);

Keluar dari MySQL menggunakan perintah:

quit;

Konfigurasi PowerDNS

Now, we should configure PowerDNS to use MySQL as backend to store Zone files and records.

Remove the existing PowerDNS configuration files.

sudo rm /etc/powerdns/pdns.d/*.*

Then, create file /etc/powerdns/pdns.d/pdns.local.gmysql.conf file;

sudo vi /etc/powerdns/pdns.d/pdns.local.gmysql.conf

Add the following lines. Set the correct database name and database user which we created earlier.

# MySQL Configuration
#
# Launch gmysql backend
launch=gmysql

# gmysql parameters
gmysql-host=localhost
gmysql-dbname=powerdns
gmysql-user=poweruser
gmysql-password=ubuntu

Finally restart powerdns service.

sudo service pdns restart

Test PowerDNS

First, edit /ect/resolv.conf file,

sudo vi /etc/resolv.conf

Set the name server IP address:

auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.1.250
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
dns-nameservers 192.168.1.250
dns-search home

We completed all installation and configuration parts. Now, we will check whether PowerDNS is really working or not.

First check if PowerDNS is listening:

sudo netstat -tap | grep pdns

Sample output:

tcp        0      0 *:domain                *:*                     LISTEN      1549/pdns_server-in

Now, enter the following command to check PowerDNS is working:

sudo dig @127.0.0.1

Or,

sudo dig @localhost

Sample output:

; <<>> DiG 9.9.5-3-Ubuntu <<>> @127.0.0.1
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 65075
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 2800
;; QUESTION SECTION:
;.                IN    NS

;; Query time: 4 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Mon Mar 30 14:38:58 IST 2015
;; MSG SIZE  rcvd: 29

Or,

sudo dig @192.168.1.250

Where, 192.168.1.250 is my PowerDNS server’s IP address.

Sample output:

; <<>> DiG 9.9.5-3-Ubuntu <<>> @192.168.1.250
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 39576
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 2800
;; QUESTION SECTION:
;.                IN    NS

;; Query time: 0 msec
;; SERVER: 192.168.1.250#53(192.168.1.250)
;; WHEN: Mon Mar 30 14:39:49 IST 2015
;; MSG SIZE  rcvd: 29

That’s it. PowerDNS is ready to use.

I have successfully installed and configured PowerDNS, now what? It is time to manage PowerDNS using Poweradmin administration tool.

Referensi