PowerDNS adalah server DNS sumber terbuka dan sebagai server nama otoritatif canggih dan berkinerja tinggi yang kompatibel dengan banyak backend. PowerDNS dapat menggunakan file konfigurasi BIND, membaca informasi dari MariaDB, MySQL, Oracle, PostgreSQL, dan banyak database lainnya. Backend dapat dengan mudah ditulis dalam bahasa apa pun.
PowerDNS menawarkan berbagai fitur, seperti penangan kueri yang dapat disesuaikan, dukungan DNSSEC, database tertanam, dan banyak lagi. Ini dapat digunakan sebagai server DNS yang berdiri sendiri, atau sebagai frontend untuk database atau layanan bersama seperti MySQL atau PostgreSQL.
Artikel ini menjelaskan instalasi dan konfigurasi awal server DNS PowerDNS. Anda mungkin bertanya, mengapa Bind tidak lebih populer saat ini? Power DNS berbeda dengan itu karena mengambil data zona dari database. Kita akan praktekkan cara menginstal dan mengkonfigurasi PowerDNS di Ubuntu, menggunakan MySQL untuk menyimpan data DNS, serta mengkonfigurasi DNSSEC dan Round Robin. Di akhir tutorial ini, Anda akan memiliki server nama PowerDNS yang berfungsi yang dapat Anda gunakan untuk menghosting DNS untuk sejumlah domain.
1. Install PowerDNS
Yang harus anda perhatikan, systemd-resolve pada Ubuntu harus di nonaktifkan, karena sistem ini mengikat ke port 53 yang akan bertentangan dengan port PowerDNS. Jalankan perintah berikut untuk menonaktifkan layanan systemd-resolve.
Disable systemd-resolve
root@runtu:~# systemctl disable systemd-resolved
root@runtu:~# systemctl stop systemd-resolved
Hapus juga file resolv.conf yang terhubung dengan symlink.
Hapus symlink resolv.conf
root@runtu:~# systemctl disable systemd-resolved
root@runtu:~# unlink /etc/resolv.conf
Setelah anda menghapus symlink resolv.conf, buat file resolv.conf baru dan ketikkan DNS Google atau DNS Yandex.
Buat file resolv.conf
root@runtu:~# echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf
Kemudian, anda dapat melakukan pemasangan PowerDNS. Anda dapat menginstal PowerDNS dari repositori resmi aptUbuntu atau dari repositori PowerDNS. Untuk menginstal dari repositori apt, jalankan perintah berikut.
Install PowerDNS
root@runtu:~# apt install pdns-server pdns-backend-mysql
2. Buat Database Untuk PowerDNS
Langkah selanjutnya adalah membuat database untuk PowerDNS. Seperti keterangan di atas, artikel ini menggunakan database MySQL. Kami beranggapan anda telah menginstall MySQL Server pada Ubuntu. Jadi kami tidak akan menjelaskan cara nginstall MySQL. Bila server Ubuntu anda belum terinstall MySQL server, anda dapat membaca artikel kami sebelumnya.
Belajar Cara Install MySQL Server Di Linux Ubuntu
Untuk membuat database baru, anda dapat mengikuti perintah di bawah ini.
Buat database
root@runtu:~# mysql -u root -p
mysql> CREATE DATABASE powerdns;
mysql> CREATE USER 'userpowerdns'@'127.0.0.1' IDENTIFIED BY 'anjani123';
mysql> GRANT ALL PRIVILEGES ON powerdns.* TO 'userpowerdns'@'127.0.0.1';
mysql> FLUSH PRIVILEGES;
Kita gunakan database powerdns untuk membuat tabel baru yang akan digunakan untuk menyimpan query PowerDNS.
Buat tabel baru
mysql> USE powerdns;
Setelah anda mengubah menu shell MySQL ke database powerdns, lanjutkan dengan mengetikkan perintah di bawah ini.
Buat tabel baru
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);
Anda dapat melihat atau melakukan pengecekanl dari pembuatan tabel di atas, dengan perintah berikut.
Periksa tabel
mysql> show tables;
+--------------------+
| Tables_in_powerdns |
+--------------------+
| comments |
| cryptokeys |
| domainmetadata |
| domains |
| records |
| supermasters |
| tsigkeys |
+--------------------+
7 rows in set (0.00 sec)
Sekarang anda telah memiliki database dan tabel kosong. PowerDNS sekarang seharusnya dapat dijalankan dengan database MySQL.
3. Cara Konfigurasi PowerDNS dengan backend MySQL
Secara default file konfigurasi PowerDNS terletak di folder /etc/powerdns. Buka folder pdns.d, dan buat file baru bernama "pdns_dengan_mysql.conf". Ikuti panduan di bawah ini untuk membuat file tersebut.
/etc/powerdns/pdns.d
root@runtu:~# touch /etc/powerdns/pdns.d/pdns_dengan_mysql.conf
root@runtu:~# chmod 777 /etc/powerdns/pdns.d/pdns_dengan_mysql.conf
Setelah itu, kita lanjutkan dengan mengetikkan skrip di bawah ini pada file "pdns_dengan_mysql.conf" tersebut. Gunakan editor nano.
/etc/powerdns/pdns.d
root@runtu:~# cd /etc/powerdns/pdns.d
root@runtu:/etc/powerdns/pdns.d# nano pdns_dengan_mysql.conf
# MySQL Configuration
# Launch gmysql backend
launch+=gmysql
# gmysql parameters
gmysql-host=127.0.0.1
gmysql-port=3306
gmysql-dbname=powerdns
gmysql-user=userpowerdns
gmysql-password=anjani123
gmysql-dnssec=yes
# gmysql-socket=
Langkah berikutnya adalah mengaktifkan dan menjalankan PowerDNS.
Aktifkan PowerDNS
root@runtu:/etc/powerdns/pdns.d# systemctl enable pdns
root@runtu:/etc/powerdns/pdns.d# systemctl restart pdns
PowerDNS adalah server DNS yang sangat fleksibel dan kuat. Dengan PowerDNS yang telah terinstall di server Ubuntu, memudahkan Anda untuk mengkonfigurasi DNS records, menggunakan database MySQL untuk menyimpan data, memakai DNSSEC untuk melindungi dari serangan hacker, dan menggunakan metode penyeimbangan beban atau DNS Round Robin. Menginstal dan mengkonfigurasi PowerDNS di Ubuntu adalah proses sederhana dan cepat, karena memang PowerDNS diciptakan dengan kesederhanaan tapi juga handal dan tangguh. Anda dapat menggunakan antarmuka pengguna untuk mengelola data DNS, menambahkan data baru, dan memperbarui data yang sudah ada.
Posting Komentar
別ページに移動します