Difference between revisions of "PowerDNS: Instalasi di Ubuntu"
Onnowpurbo (talk | contribs)  (New page:    ==Referensi==  * http://www.unixmen.com/how-to-install-powerdns-on-ubuntu-14-04/)  | 
				Onnowpurbo (talk | contribs)   | 
				||
| (18 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
| + | 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 yang dibutuhkan:  | ||
| + | |||
| + |  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)  | ||
| + |  ) Engine=InnoDB;  | ||
| + | |||
| + |  CREATE UNIQUE INDEX name_index ON domains(name);  | ||
| + | |||
| + | |||
| + |  CREATE TABLE records (  | ||
| + |    id                    INT AUTO_INCREMENT,  | ||
| + |    domain_id             INT DEFAULT NULL,  | ||
| + |    name                  VARCHAR(255) DEFAULT NULL,  | ||
| + |    type                  VARCHAR(10) DEFAULT NULL,  | ||
| + |    content               VARCHAR(64000) DEFAULT NULL,  | ||
| + |    ttl                   INT DEFAULT NULL,  | ||
| + |    prio                  INT DEFAULT NULL,  | ||
| + |    change_date           INT DEFAULT NULL,  | ||
| + |    disabled              TINYINT(1) DEFAULT 0,  | ||
| + |    ordername             VARCHAR(255) BINARY DEFAULT NULL,  | ||
| + |    auth                  TINYINT(1) DEFAULT 1,  | ||
| + |    PRIMARY KEY (id)  | ||
| + |  );  | ||
| + | |||
| + |  CREATE INDEX nametype_index ON records(name,type);  | ||
| + |  CREATE INDEX domain_id ON records(domain_id);  | ||
| + |  CREATE INDEX recordorder ON records (domain_id, ordername);   | ||
| + | |||
| + | |||
| + |  CREATE TABLE supermasters (  | ||
| + |    ip                    VARCHAR(64) NOT NULL,  | ||
| + |    nameserver            VARCHAR(255) NOT NULL,  | ||
| + |    account               VARCHAR(40) NOT NULL,  | ||
| + |    PRIMARY KEY (ip, nameserver)  | ||
| + |  );  | ||
| + | |||
| + | |||
| + |  CREATE TABLE comments (  | ||
| + |    id                    INT AUTO_INCREMENT,  | ||
| + |    domain_id             INT NOT NULL,  | ||
| + |    name                  VARCHAR(255) NOT NULL,  | ||
| + |    type                  VARCHAR(10) NOT NULL,  | ||
| + |    modified_at           INT NOT NULL,  | ||
| + |    account               VARCHAR(40) NOT NULL,  | ||
| + |    comment               VARCHAR(64000) NOT NULL,  | ||
| + |    PRIMARY KEY (id)  | ||
| + |  );  | ||
| + | |||
| + |  CREATE INDEX comments_domain_id_idx ON comments (domain_id);  | ||
| + |  CREATE INDEX comments_name_type_idx ON comments (name, type);  | ||
| + |  CREATE INDEX comments_order_idx ON comments (domain_id, modified_at);  | ||
| + | |||
| + | |||
| + |  CREATE TABLE domainmetadata (  | ||
| + |    id                    INT AUTO_INCREMENT,  | ||
| + |    domain_id             INT NOT NULL,  | ||
| + |    kind                  VARCHAR(32),  | ||
| + |    content               TEXT,  | ||
| + |    PRIMARY KEY (id)  | ||
| + |  );  | ||
| + | |||
| + |  CREATE INDEX domainmetadata_idx ON domainmetadata (domain_id, kind);  | ||
| + | |||
| + | |||
| + |  CREATE TABLE cryptokeys (  | ||
| + |    id                    INT AUTO_INCREMENT,  | ||
| + |    domain_id             INT NOT NULL,  | ||
| + |    flags                 INT NOT NULL,  | ||
| + |    active                BOOL,  | ||
| + |    content               TEXT,  | ||
| + |    PRIMARY KEY(id)  | ||
| + |  );  | ||
| + | |||
| + |  CREATE INDEX domainidindex ON cryptokeys(domain_id);  | ||
| + | |||
| + | |||
| + |  CREATE TABLE tsigkeys (  | ||
| + |    id                    INT AUTO_INCREMENT,  | ||
| + |    name                  VARCHAR(255),  | ||
| + |    algorithm             VARCHAR(50),  | ||
| + |    secret                VARCHAR(255),  | ||
| + |    PRIMARY KEY (id)  | ||
| + |  );  | ||
| + | |||
| + |  CREATE UNIQUE INDEX namealgoindex ON tsigkeys(name, algorithm);  | ||
| + | |||
| + | Keluar dari MySQL menggunakan perintah:  | ||
| + | |||
| + |  quit;  | ||
| + | |||
| + | ==Konfigurasi PowerDNS==  | ||
| + | |||
| + | Konfigurasi PowerDNS untuk menggunakan MySQL sebagai backend untuk menyimpan file Zone dan records.  | ||
| + | |||
| + | Buang file konfigurasi PowerDNS yang ada.  | ||
| + | |||
| + |  sudo rm /etc/powerdns/pdns.d/*.*  | ||
| + | |||
| + | Buat file /etc/powerdns/pdns.d/pdns.local.gmysql.conf ;  | ||
| + | |||
| + |  sudo vi /etc/powerdns/pdns.d/pdns.local.gmysql.conf  | ||
| + | |||
| + | Tambahkan kalimat berikut, yang sesuai dengan konfigurasi yang kita lakukan sebelumnya:  | ||
| + | |||
| + |  # MySQL Configuration  | ||
| + |  #  | ||
| + |  # Launch gmysql backend  | ||
| + |  launch=gmysql  | ||
| + | |||
| + |  # gmysql parameters  | ||
| + |  gmysql-host=localhost  | ||
| + |  gmysql-dbname=powerdns  | ||
| + |  gmysql-user=poweruser  | ||
| + |  gmysql-password=ubuntu  | ||
| + | |||
| + | Restart powerdns service.  | ||
| + | |||
| + |  sudo service pdns restart  | ||
| + | |||
| + | ==Test PowerDNS==  | ||
| + | |||
| + | Edit file /ect/resolv.conf ,  | ||
| + | |||
| + |  sudo vi /etc/resolv.conf  | ||
| + | |||
| + | isi  | ||
| + | |||
| + |  nameserver 192.168.0.100  | ||
| + | |||
| + | sesuai dengan IP address server  | ||
| + | |||
| + | 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.0.100  | ||
| + |  netmask 255.255.255.0  | ||
| + |  network 192.168.0.0  | ||
| + |  broadcast 192.168.0.255  | ||
| + |  gateway 192.168.0.223  | ||
| + |  dns-nameservers 192.168.0.223  | ||
| + |  dns-search home  | ||
| + | |||
| + | Kita selesai dengan semua bagian instalasi dan konfigurasi.  | ||
| + | Selanjutnya, kita perlu cek apakah PowerDNS dapat berjalan dengan baik atau tidak.  | ||
| + | |||
| + | Pertama-tama, cek apakah PowerDNS mendengarkan:  | ||
| + | |||
| + |  sudo netstat -tap | grep pdns  | ||
| + | |||
| + | contoh output:  | ||
| + | |||
| + |  tcp        0      0 *:domain                *:*                     LISTEN      4845/pdns_server-in  | ||
| + | |||
| + | Sekarang, masukan perintah berikut, untuk mencek apakah PowerDNS berjalan dengan baik:  | ||
| + | |||
| + |  sudo dig @127.0.0.1  | ||
| + | |||
| + | atau,  | ||
| + | |||
| + |  sudo dig @localhost  | ||
| + | |||
| + | Contoh 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: 16025  | ||
| + |  ;; 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 Jun 01 09:00:26 WIB 2015  | ||
| + |  ;; MSG SIZE  rcvd: 29  | ||
| + | |||
| + | Or,  | ||
| + | |||
| + |  sudo dig @192.168.0.100  | ||
| + | |||
| + | Dimana, 192.168.0.100 adalah IP address dari PowerDNS server  | ||
| + | |||
| + | Contoh output:  | ||
| + | |||
| + |  ; <<>> DiG 9.9.5-3-Ubuntu <<>> @192.168.0.100  | ||
| + |  ; (1 server found)  | ||
| + |  ;; global options: +cmd  | ||
| + |  ;; Got answer:  | ||
| + |  ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 7241  | ||
| + |  ;; 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: 192.168.0.100#53(192.168.0.100)  | ||
| + |  ;; WHEN: Mon Jun 01 09:01:43 WIB 2015  | ||
| + |  ;; MSG SIZE  rcvd: 29  | ||
| + | |||
| + | Selesai sudah. PowerDNS siap digunakan.  | ||
==Referensi==  | ==Referensi==  | ||
* http://www.unixmen.com/how-to-install-powerdns-on-ubuntu-14-04/  | * http://www.unixmen.com/how-to-install-powerdns-on-ubuntu-14-04/  | ||
Latest revision as of 09:13, 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 yang dibutuhkan:
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) ) Engine=InnoDB; CREATE UNIQUE INDEX name_index ON domains(name); CREATE TABLE records ( id INT AUTO_INCREMENT, domain_id INT DEFAULT NULL, name VARCHAR(255) DEFAULT NULL, type VARCHAR(10) DEFAULT NULL, content VARCHAR(64000) DEFAULT NULL, ttl INT DEFAULT NULL, prio INT DEFAULT NULL, change_date INT DEFAULT NULL, disabled TINYINT(1) DEFAULT 0, ordername VARCHAR(255) BINARY DEFAULT NULL, auth TINYINT(1) DEFAULT 1, PRIMARY KEY (id) ); CREATE INDEX nametype_index ON records(name,type); CREATE INDEX domain_id ON records(domain_id); CREATE INDEX recordorder ON records (domain_id, ordername); CREATE TABLE supermasters ( ip VARCHAR(64) NOT NULL, nameserver VARCHAR(255) NOT NULL, account VARCHAR(40) NOT NULL, PRIMARY KEY (ip, nameserver) ); CREATE TABLE comments ( id INT AUTO_INCREMENT, domain_id INT NOT NULL, name VARCHAR(255) NOT NULL, type VARCHAR(10) NOT NULL, modified_at INT NOT NULL, account VARCHAR(40) NOT NULL, comment VARCHAR(64000) NOT NULL, PRIMARY KEY (id) ); CREATE INDEX comments_domain_id_idx ON comments (domain_id); CREATE INDEX comments_name_type_idx ON comments (name, type); CREATE INDEX comments_order_idx ON comments (domain_id, modified_at); CREATE TABLE domainmetadata ( id INT AUTO_INCREMENT, domain_id INT NOT NULL, kind VARCHAR(32), content TEXT, PRIMARY KEY (id) ); CREATE INDEX domainmetadata_idx ON domainmetadata (domain_id, kind); CREATE TABLE cryptokeys ( id INT AUTO_INCREMENT, domain_id INT NOT NULL, flags INT NOT NULL, active BOOL, content TEXT, PRIMARY KEY(id) ); CREATE INDEX domainidindex ON cryptokeys(domain_id); CREATE TABLE tsigkeys ( id INT AUTO_INCREMENT, name VARCHAR(255), algorithm VARCHAR(50), secret VARCHAR(255), PRIMARY KEY (id) ); CREATE UNIQUE INDEX namealgoindex ON tsigkeys(name, algorithm);
Keluar dari MySQL menggunakan perintah:
quit;
Konfigurasi PowerDNS
Konfigurasi PowerDNS untuk menggunakan MySQL sebagai backend untuk menyimpan file Zone dan records.
Buang file konfigurasi PowerDNS yang ada.
sudo rm /etc/powerdns/pdns.d/*.*
Buat file /etc/powerdns/pdns.d/pdns.local.gmysql.conf ;
sudo vi /etc/powerdns/pdns.d/pdns.local.gmysql.conf
Tambahkan kalimat berikut, yang sesuai dengan konfigurasi yang kita lakukan sebelumnya:
# MySQL Configuration # # Launch gmysql backend launch=gmysql # gmysql parameters gmysql-host=localhost gmysql-dbname=powerdns gmysql-user=poweruser gmysql-password=ubuntu
Restart powerdns service.
sudo service pdns restart
Test PowerDNS
Edit file /ect/resolv.conf ,
sudo vi /etc/resolv.conf
isi
nameserver 192.168.0.100
sesuai dengan IP address server
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.0.100 netmask 255.255.255.0 network 192.168.0.0 broadcast 192.168.0.255 gateway 192.168.0.223 dns-nameservers 192.168.0.223 dns-search home
Kita selesai dengan semua bagian instalasi dan konfigurasi. Selanjutnya, kita perlu cek apakah PowerDNS dapat berjalan dengan baik atau tidak.
Pertama-tama, cek apakah PowerDNS mendengarkan:
sudo netstat -tap | grep pdns
contoh output:
tcp 0 0 *:domain *:* LISTEN 4845/pdns_server-in
Sekarang, masukan perintah berikut, untuk mencek apakah PowerDNS berjalan dengan baik:
sudo dig @127.0.0.1
atau,
sudo dig @localhost
Contoh 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: 16025 ;; 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 Jun 01 09:00:26 WIB 2015 ;; MSG SIZE rcvd: 29
Or,
sudo dig @192.168.0.100
Dimana, 192.168.0.100 adalah IP address dari PowerDNS server
Contoh output:
; <<>> DiG 9.9.5-3-Ubuntu <<>> @192.168.0.100 ; (1 server found) ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 7241 ;; 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: 192.168.0.100#53(192.168.0.100) ;; WHEN: Mon Jun 01 09:01:43 WIB 2015 ;; MSG SIZE rcvd: 29
Selesai sudah. PowerDNS siap digunakan.