PowerDNS: Instalasi di Ubuntu
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
Create database, namely ‘powerdns’. You can define your own.
CREATE DATABASE powerdns; Create database user, namely ‘poweruser’.
GRANT ALL ON powerdns.* TO 'poweruser '@'localhost' IDENTIFIED BY 'ubuntu';
Here,
- powerdns – is the database;
- poweruser – is the database user,
- ubuntu – is the password for the ‘poweruser’ user.
- I recommend you to use any strong password to tighten the security.
Enter the following command to update the user settings.
FLUSH PRIVILEGES;
Now, use the powerdns database with command:
USE powerdns;
Create the necessary tables and records.
First, let us create domains table:
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 for domains table: CREATE UNIQUE INDEX name_index ON domains(name);
Create records table:
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 the following indexes for records table:
CREATE INDEX rec_name_index ON records(name); CREATE INDEX nametype_index ON records(name,type); CREATE INDEX domain_id ON records(domain_id); Create the supermasters table: CREATE TABLE supermasters ( ip VARCHAR(25) NOT NULL, nameserver VARCHAR(255) NOT NULL, account VARCHAR(40) DEFAULT NULL );
Finally, exit from MySQL prompt using command:
quit;
Configure 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.