PowerDNS: Instalasi di Ubuntu 18.04 dengan Percona

From OnnoWiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Instalasi PowerDNS di Ubuntu 18.04

Persiapan

Edit

vi /etc/apt/sources.list
deb http://archive.ubuntu.com/ubuntu bionic main universe multiverse
deb http://archive.ubuntu.com/ubuntu bionic-security main universe multiverse
deb http://archive.ubuntu.com/ubuntu bionic-updates main universe multiverse
deb [arch=amd64] http://repo.powerdns.com/ubuntu bionic-auth-41 main

Jalankan

sudo curl https://repo.powerdns.com/FD380FBB-pub.asc | sudo apt-key add -
sudo apt update

Instalasi Percona

cd /usr/local/src
wget https://repo.percona.com/apt/percona-release_latest.$(lsb_release -sc)_all.deb
dpkg -i percona-release_latest.$(lsb_release -sc)_all.deb
apt update
apt -y install percona-server-server-5.7

Set password root percona, kalau masih dalam proses belajar bisa menggunakan 123456

Siapkan Database

sudo mysql -u root -h ::1 -p123456

Siapkan tabel

CREATE DATABASE powerdns;

GRANT ALL ON powerdns.* TO 'powerdns'@'localhost' \
IDENTIFIED BY 'ubuntu';
 
FLUSH PRIVILEGES;

USE powerdns; 

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 UNSIGNED DEFAULT NULL,
  account               VARCHAR(40) CHARACTER SET 'utf8' DEFAULT NULL,
  PRIMARY KEY (id)
) Engine=InnoDB CHARACTER SET 'latin1';

CREATE UNIQUE INDEX name_index ON domains(name);

CREATE TABLE records (
  id                    BIGINT 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)
) Engine=InnoDB CHARACTER SET 'latin1';

CREATE INDEX nametype_index ON records(name,type);
CREATE INDEX domain_id ON records(domain_id);
CREATE INDEX ordername ON records (ordername);

CREATE TABLE supermasters (
  ip                    VARCHAR(64) NOT NULL,
  nameserver            VARCHAR(255) NOT NULL,
  account               VARCHAR(40) CHARACTER SET 'utf8' NOT NULL,
  PRIMARY KEY (ip, nameserver)
) Engine=InnoDB CHARACTER SET 'latin1';

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) CHARACTER SET 'utf8' DEFAULT NULL,
  comment               TEXT CHARACTER SET 'utf8' NOT NULL,
  PRIMARY KEY (id)
) Engine=InnoDB CHARACTER SET 'latin1';

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)
) Engine=InnoDB CHARACTER SET 'latin1';

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)
) Engine=InnoDB CHARACTER SET 'latin1';

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)
) Engine=InnoDB CHARACTER SET 'latin1';

CREATE UNIQUE INDEX namealgoindex ON tsigkeys(name, algorithm);

QUIT

Install PowerDNS

Disable systemd resolver, karena akan block port 53

sudo systemctl disable systemd-resolved
sudo systemctl stop systemd-resolved
sudo ls -lh /etc/resolv.conf 
sudo rm /etc/resolv.conf
sudo echo "nameserver 8.8.8.8" > /etc/resolv.conf

Siapkan repo official PowerDNS

sudo su
vi /etc/apt/sources.list

isi dengan

deb [arch=amd64] http://repo.powerdns.com/ubuntu bionic-auth-41 main

Lakukan

sudo su
curl https://repo.powerdns.com/FD380FBB-pub.asc | sudo apt-key add -
apt update
apt install pdns-server pdns-backend-mysql

Jika ada pertanyaan configure the PowerDNS database with dbconfig-common, jawab No

Setup PowerDNS untuk pakai MySQL

Edit

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

Isi dengan

# MySQL Configuration
# Launch gmysql backend
launch+=gmysql
# gmysql parameters
gmysql-host=localhost
gmysql-port=3306
gmysql-dbname=powerdns
gmysql-user=powerdns
gmysql-password=ubuntu
gmysql-dnssec=yes
# gmysql-socket=

Restart

Restart

sudo systemctl restart pdns

Cek

Cek Status

sudo systemctl status pdns.service

Isinya kira-kira

● pdns.service - PowerDNS Authoritative Server
   Loaded: loaded (/lib/systemd/system/pdns.service; enabled; vendor preset: enabled)
   Active: active (running) since Wed 2019-02-20 02:11:35 UTC; 10s ago
     Docs: man:pdns_server(1)
           man:pdns_control(1)
           https://doc.powerdns.com
 Main PID: 6676 (pdns_server)
    Tasks: 8 (limit: 4664)
   CGroup: /system.slice/pdns.service
           └─6676 /usr/sbin/pdns_server --guardian=no --daemon=no --disable-syslog --log-timestamp=no --write-pid=no

Feb 20 02:11:34 vm pdns_server[6676]: PowerDNS Authoritative Server 4.1.6 (C) 2001-2018 PowerDNS.COM BV
..
..


Cek

sudo netstat -tap | grep pdns

Pastikan siap untuk IPv6 ( [::]:domain ),

tcp        0      0 0.0.0.0:domain          0.0.0.0:*               LISTEN      6676/pdns_server    
tcp6       0      0 [::]:domain             [::]:*                  LISTEN      6676/pdns_server

Pranala Menarik