POWERDNS adalah DNS Server berbasis MySQL, yang ditulis dalam C ++ dan berlisensi Under GPL. PowerDNS dapat dikelola melalui web base interface (PowerAdmin). Pada tutorial kali ini akan membahas bagaimana menginstall dan mengkonfigurasi POWERDNS pada Ubuntu 18.04.
Persiapan
- Ubuntu 18.04
- Domain
Tahap Instalasi
- Update repositori pada Ubuntu 18.04
sudo apt update
- Install MariaDB
sudo apt install mariadb-server mariadb-client -y
mysql_secure_installation
- Edit konfigurasi pada MariaDB
vim /etc/mysql/mariadb.conf/50-server.cnf
........ bind = 0.0.0.0 ----> ganti dengan ip lokal ........
- Restart MariaDB
sudo systemctl restart mariadb
- Buat database pada database
sudo mysql -u root -p
CREATE DATABASE powerdns CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON powerdns.* TO 'powerdns'@'localhost' IDENTIFIED BY 'YOURPASSWORD';
GRANT ALL ON powerdns.* TO 'powerdns'@'%' IDENTIFIED BY 'YOURPASSWORD';
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 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);
- Disable systemd-resolved
sudo su systemctl disable systemd-resolved systemctl stop systemd-resolved ls -lh /etc/resolv.conf rm /etc/resolv.conf echo "nameserver 8.8.8.8" > /etc/resolv.conf
- Install POWERDNS (versi 4.1.13)
sudo su
- edit repositori
vi /etc/apt/sources.list.d/pdns.list
............. deb [arch=amd64] http://repo.powerdns.com/ubuntu bionic-auth-41 main .............
vi /etc/apt/preferences.d/pdns
... Package: pdns-* Pin: origin repo.powerdns.com Pin-Priority: 600 ...
- Install powerdns beserta dependensi yang dibutuhkan
curl https://repo.powerdns.com/FD380FBB-pub.asc | sudo apt-key add - curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list sudo apt-get update sudo apt-get install pdns-server pdns-backend-mysql virtualenv python3-pip yarn -y apt-get install -y libmysqlclient-dev python3-mysqldb python-mysqldb libsasl2-dev libffi-dev libldap2-dev libssl-dev libxml2-dev libxslt1-dev libxmlsec1-dev pkg-config
- Setelah berhasil terinstall konfigurasi powerdns agar terhubung dengan backend mysql
sudo vi /etc/powerdns/pdns.d/pdns.local.gmysql.conf ## Masukkan skrip berikut tanpa tanda # ...... launch=gmysql gmysql-host=#IPHOSTMYSQL gmysql-user=#USER gmysql-dbname=#YOURDB gmysql-password=#YOURPASSWORD gmysql-dnssec=yes
- Konfigurasi pdns.conf agar bisa dimonitoring
echo 'api=yes' >> /etc/powerdns/pdns.conf echo 'api-key=YOURIPKEY' >> /etc/powerdns/pdns.conf echo 'webserver=yes' >> /etc/powerdns/pdns.conf echo 'webserver-address=0.0.0.0' >> /etc/powerdns/pdns.conf echo 'webserver-allow-from=0.0.0.0/0,::/0' >> /etc/powerdns/pdns.conf echo 'webserver-port=8081' >> /etc/powerdns/pdns.conf echo 'version-string=anonymous' >> /etc/powerdns/pdns.conf echo 'webserver-password=YOURPASSWORD' >> /etc/powerdns/pdns.conf
- Tes koneksi ke database
/usr/sbin/pdns_server --daemon=no --guardian=no --loglevel=9
- Jika berhasil restart pdns service
sudo systemctl restart pdns
Untuk tampilan GUI (POWERDNS Admin) di postingan selanjutnya ya!
Salam Kebebasan!! Bye~