Instal dan Atur PowerDNS dengan Mudah di Ubuntu 20.04

Selamat datang di tutorial kami tentang cara menginstal dan mengatur PowerDNS dengan mudah di Ubuntu 20.04. PowerDNS “ adalah pemasok utama perangkat lunak, service, dan dukungan DNS open source ”. Ini menyediakan Server Resmi dan produk DNS Rekursor. Menurut halaman dokumentasi PowerDNS ;

  • The  Resmi Server  akan menjawab pertanyaan tentang domain tahu tentang, tapi tidak akan keluar di internet untuk pertanyaan tekad tentang domain lainnya. Ketika Server Resmi menjawab pertanyaan, itu keluar dari database, dan dapat dipercaya sebagai yang berwibawa. Tidak ada cara untuk mengotori cache atau membingungkan daemon.
  • The  recursor, sebaliknya, secara default tidak memiliki pengetahuan tentang domain sendiri, tapi akan selalu berkonsultasi server otoritatif lainnya untuk menjawab pertanyaan yang diberikan kepadanya.

PowerDNS;

  • menawarkan kinerja resolusi domain yang sangat tinggi.
  • mendukung sejumlah besar backend yang berbeda mulai dari file zona sederhana hingga database relasional dan algoritma load balancing/failover.
  • menawarkan fitur keamanan yang lebih baik.
  • kode sumbernya cukup kecil yang membuat audit menjadi mudah.
  • itu memberikan banyak statistik tentang operasinya yang membantu dalam menentukan skalabilitas instalasi serta untuk menemukan masalah.

Daftar isi

  • Instal dan Atur PowerDNS dengan Mudah di Ubuntu 20.04
    • Jalankan Pembaruan Sistem
    • Instal Basis Data Relasional PowerDNS
      • Instal MariaDB 10.5 di Ubuntu 20.04
    • Instal dan Atur PowerDNS dengan Mudah di Ubuntu 20.04
    • Buat Basis Data PowerDNS di Ubuntu 20.04
    • Impor Skema Basis Data PowerDNS
    • Konfigurasi Detail Koneksi Database PowerDNS
      • Verifikasi koneksi database PowerDNS
    • Mulai ulang PowerDNS
    • Membuat Catatan PowerDNS Forward Zone
      • Memasukkan Data DNS Zona Teruskan ke dalam Basis Data PowerDNS
      • Tentukan Mode Operasi PowerDNS
      • Buat catatan SOA (Start Of Authority) domain.
      • Buat catatan NS Nameserver
      • Masukkan Catatan A untuk Server Nama
      • Masukkan data MX
    • Verifikasi Resolusi Maju PowerDNS
    • Membuat Catatan Zona Terbalik PowerDNS
      • Masukkan Catatan SOA untuk Zona Terbalik
      • Masukkan Catatan Zona Terbalik NS
      • Masukkan Catatan PTR untuk NS
      • Sisipkan Data PTR Domain Lain
    • Verifikasi Resolusi Terbalik PowerDNS
    • Buka DNS Port di UFW
    • Konfigurasi DNS Server di Sistem Client
      • Verifikasi Resolusi DNS Penerusan Client
      • Verifikasi Resolusi DNS Terbalik Client
    • Referensi
    • Tutorial Terkait

Instal dan Atur PowerDNS dengan Mudah di Ubuntu 20.04

Jalankan Pembaruan Sistem

Untuk memulainya, perbarui paket sistem Anda dan tingkatkan juga ke paket sistem Anda.

apt update
apt upgrade

Instal Basis Data Relasional PowerDNS

Sebagaimana dinyatakan di atas, server PowerDNS otoritatif mendukung berbagai backend mulai dari backend database seperti MySQL, PostgreSQL, Oracle dan  file zona BIND  hingga  proses bersama  dan  JSON API.

Karena kita akan dengan mudah menginstal dan mengatur PowerDNS di Ubuntu 20.04 sebagai server nama otoritatif lokal kita, kita akan menggunakan salah satu database relasional, dan dalam pengaturan ini, kita menggunakan MariaDB.

Instal MariaDB 10.5 di Ubuntu 20.04

Untuk menginstal MariaDB versi rilis terbaru dan stabil, Anda perlu menginstal repo MariaDB.

apt install software-properties-common
sudo apt-key adv --fetch-keys 'https://mariadb.org/mariadb_release_signing_key.asc'

Selanjutnya, buka situs repositori MariaDB dan pilih mirror instalasi Anda. Dalam pengaturan ini, kami menggunakanukfast.co.uk mirrors.

add-apt-repository 'deb [arch=amd64,arm64,ppc64el] http://mirrors.ukfast.co.uk/sites/mariadb/repo/10.5/ubuntu focal main'

Perbarui cache paket sistem dan instal MariaDB 10.5 di Ubuntu 20.04;

apt update
apt install mariadb-server

Setelah instalasi selesai, jalankan skrip keamanan MySQL awal untuk menghapus user anonim dan menguji database, melarang login root jarak jauh.

mysql_secure_installation

Instal dan Atur PowerDNS dengan Mudah di Ubuntu 20.04

Sebelum Anda dapat menginstal PowerDNS di Ubuntu 20.04, Anda harus menonaktifkan systemd-resolvedservice ( service sistem yang menyediakan resolusi nama jaringan untuk aplikasi lokal ).

systemctl disable --now systemd-resolved

Hapus resolv.conffile default dan buat yang baru dengan detail server DNS kustom Anda untuk memungkinkan Anda melakukan instalasi.

rm -rf /etc/resolv.conf
echo "nameserver 8.8.8.8" > /etc/resolv.conf

Setelah selesai, instal PowerDNS di Ubuntu 20.04. PowerDNS disediakan olehpdns-server kemasan.

apt install pdns-server

Anda juga perlu menginstal backend MySQL server nama PowerDNS;

apt install pdns-backend-mysql

Buat Basis Data PowerDNS di Ubuntu 20.04

Setelah PowerDNS dan paket backend MySQL-nya terinstal, login ke MariaDB dan buat database untuk server nama PowerDNS.

mysql -u root

Pastikan untuk menggunakan nama database dan nama user database pilihan Anda. Nama yang digunakan di sini tidak standar.

create database kifarunixdemopdns;

Buat user database PowerDNS dan berikan semua hak istimewa pada database PowerDNS. Ganti password yang sesuai.

grant all on kifarunixdemopdns.* to [email protected] identified by 'PdnSPassW0rd';

Reload tabel hak istimewa dan keluar dari database;

flush privileges; quit

Impor Skema Basis Data PowerDNS

Skema database PowerDNS default tersedia di bawah /usr/share/pdns-backend-mysql/schema/direktori sebagai schema.mysql.sql. Anda perlu mengimpor skema ini ke database PowerDNS yang dibuat di atas;

mysql -u pdnsadmin -p kifarunixdemopdns < /usr/share/pdns-backend-mysql/schema/schema.mysql.sql 

Untuk memverifikasi impor skema database PowerDNS, coba daftarkan tabel yang tersedia;

mysqlshow kifarunixdemopdns
Database: kifarunixdemopdns +----------------+ | Tables | +----------------+ | comments | | cryptokeys | | domainmetadata | | domains | | records | | supermasters | | tsigkeys | +----------------+

Konfigurasi Detail Koneksi Database PowerDNS

Buat file konfigurasi, seperti yang ditunjukkan di bawah ini, tempat untuk menentukan detail koneksi database PowerDNS.

vim /etc/powerdns/pdns.d/pdns.local.gmysql.conf
# MySQL Configuration # # Launch gmysql backend launch+=gmysql # gmysql parameters gmysql-host=127.0.0.1 gmysql-po
rt=3306 gmysql-dbname=kifarunixdemopdns gmysql-user=pdnsadmin gmysql-password=PdnSPassW0rd gmysql-dnssec=yes # gmysql-socket=

Ganti detail koneksi Anda sesuai dengan itu.

Simpan dan keluar dari file.

Sesuaikan izin detail koneksi database.

chmod 640 /etc/powerdns/pdns.d/pdns.local.gmysql.conf

Verifikasi koneksi database PowerDNS

Jika PowerDNS sudah berjalan, hentikan dan jalankan di latar depan untuk memverifikasi apakah dapat terhubung ke database;

systemctl stop pdns.service
pdns_server --daemon=no --guardian=no --loglevel=9
... Oct 09 21:31:53 Creating backend connection for TCP Oct 09 21:31:53 [bindbackend] Parsing 0 domain(s), will report when done Oct 09 21:31:53 [bindbackend] Done parsing domains, 0 rejected, 0 new, 0 removed Oct 09 21:31:53 gmysql Connection successful. Connected to database 'kifarunixdemopdns' on 'localhost'. Oct 09 21:31:53 About to create 3 backend threads for UDP Oct 09 21:31:53 gmysql Connection successful. Connected to database 'kifarunixdemopdns' on 'localhost'. Oct 09 21:31:54 gmysql Connection successful. Connected to database 'kifarunixdemopdns' on 'localhost'. Oct 09 21:31:54 gmysql Connection successful. Connected to database 'kifarunixdemopdns' on 'localhost'. Oct 09 21:31:54 Done launching threads, ready to distribute questions

Jika Anda menemukan error, harap perbaiki sebelum Anda dapat melanjutkan.

Mulai ulang PowerDNS

Mulai ulang PowerDNS untuk menerapkan perubahan yang dibuat.

systemctl restart pdns

Pastikan port DNS UDP/TCP port 53 dibuka

netstat -alnp4 | grep pdns
tcp 0 0 0.0.0.0:53 0.0.0.0:* LISTEN 14608/pdns_server udp 0 0 0.0.0.0:53 0.0.0.0:* 14608/pdns_server

Membuat Catatan PowerDNS Forward Zone

Memasukkan Data DNS Zona Teruskan ke dalam Basis Data PowerDNS

Konfigurasi dasar PowerDNS sekarang selesai. Anda dapat melanjutkan untuk menambahkan catatan DNS Anda ke dalam database.

Masuk ke database PowerDNS;

mysql -u pdnsadmin -p -D kifarunixdemopdns

Tentukan Mode Operasi PowerDNS

Untuk memulainya, tentukan mode operasi PowerDNS. Ada berbagai mode operasi DNS yang dapat Anda tentukan saat memasukkan catatan ke dalam database PowerDNS. Dalam tutorial dasar ini, kita akan menggunakan mode operasi Native default.

insert into domains (name, type) values ('kifarunix-demo.com', 'NATIVE');

Buat catatan SOA (Start Of Authority) domain.

Format yang disimpan SOA adalah:

primary hostmaster serial refresh retry expire default_ttl

Di mana:

  • primer:   opsi konfigurasi default-soa-name
  • tuan rumah: [email protected]
  • seri: 0
  • menyegarkan: 10800 (3 jam)
  • coba lagi: 3600 (1 jam)
  • kedaluwarsa: 604800 (1 minggu)
  • default_ttl: 3600 (1 jam)
INSERT INTO records (domain_id, name, content, type,ttl,prio) VALUES (1,'kifarunix-demo.com','localhost admin.kifarunix-demo.com 1 10380 3600 604800 3600','SOA',86400,NULL);

Buat catatan NS Nameserver

INSERT INTO records (domain_id, name, content, type,ttl,prio) VALUES (1,'kifarunix-demo.com','ns1.kifarunix-demo.com','NS',86400,NULL);

Masukkan Catatan A untuk Server Nama

INSERT INTO records (domain_id, name, content, type,ttl,prio) VALUES (1,'ns1.kifarunix-demo.com','192.168.57.3','A',120,NULL);
INSERT INTO records (domain_id, name, content, type,ttl,prio) VALUES (1,'news.kifarunix-demo.com','192.168.58.45','A',120,NULL);

Masukkan data MX

INSERT INTO records (domain_id, name, content, type,ttl,prio) VALUES (1,'kifarunix-demo.com','mail.kifarunix-demo.com','MX',120,25);

Sejauh ini bagus, itu sudah cukup untuk demo kami dan seperti inilah tampilan catatan kami;

select * from records;
+----+-----------+-------------------------+------+-------------------------------------------------------------+-------+------+----------+-----------+------+ | id | domain_id | name | type | content | ttl | prio | disabled | ordername | auth | +----+-----------+-------------------------+------+-------------------------------------------------------------+-------+------+----------+-----------+------+ | 1 | 1 | kifarunix-demo.com | SOA | localhost admin.kifarunix-demo.com 1 10380 3600 604800 3600 | 86400 | NULL | 0 | NULL | 1 | | 2 | 1 | kifarunix-demo.com | NS | ns1.kifarunix-demo.com | 86400 | NULL | 0 | NULL | 1 | | 3 | 1 | ns1.kifarunix-demo.com | A | 192.168.57.3 | 120 | NULL | 0 | NULL | 1 | | 4 | 1 | news.kifarunix-demo.com | A | 192.168.58.45 | 120 | NULL | 0 | NULL | 1 | | 5 | 1 | kifarunix-demo.com | MX | mail.kifarunix-demo.com | 120 | 25 | 0 | NULL | 1 | +----+-----------+-------------------------+------+-------------------------------------------------------------+-------+------+----------+-----------+------+ 5 rows in set (0.001 sec)

Verifikasi Resolusi Maju PowerDNS

Setelah catatan diisi ke dalam DB, sangat resolusi PowerDNS;

dig ns1.kifarunix-demo.com @127.0.0.1
; <<>> DiG 9.16.1-Ubuntu <<>> ns1.kifarunix-demo.com @127.0.0.1 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 21371 ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; WARNING: recursion requested but not available ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 1232 ;; QUESTION SECTION: ;ns1.kifarunix-demo.com.		IN	A ;; ANSWER SECTION: ns1.kifarunix-demo.com.	120	IN	A	192.168.57.3 ;; Query time: 0 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) ;; WHEN: Fri Oct 09 22:54:43 UTC 2020 ;; MSG SIZE rcvd: 67
dig MX kifarunix-demo.com @127.0.0.1
25 mail.kifarunix-demo.com.

Membuat Catatan Zona Terbalik PowerDNS

Masuk ke database PowerDNS lagi;

mysql -u pdnsadmin -p -D kifarunixdemopdns

Masukkan Catatan SOA untuk Zona Terbalik

INSERT INTO records (domain_id, name, content, type,ttl,prio) VALUES (2,'57.168.192.in-addr.arpa','localhost admin.kifarunix-demo.com 1 10380 3600 604800 3600','SOA',86400,NULL);

Masukkan Catatan Zona Terbalik NS

INSERT INTO records (domain_id, name, content, type,ttl,prio) VALUES (2,'57.168.192.in-addr.arpa','ns1.kifarunix-demo.com','NS',120,NULL);

Masukkan Catatan PTR untuk NS

INSERT INTO records (domain_id, name, content, type,ttl,prio) VALUES (2,'3.57.168.192.in-addr.arpa','ns1.kifarunix-demo.com','PTR',120,NULL);

Sisipkan Data PTR Domain Lain

INSERT INTO records (domain_id, name, content, type,ttl,prio) VALUES (2,'45.57.168.192.in-addr.arpa','news.kifarunix-demo.com','PTR',120,NULL);

Sekarang catatan database umum terlihat seperti;

select * from records;
+----+-----------+----------------------------+------+-------------------------------------------------------------+-------+------+----------+-----------+------+ | id | domain_id | name | type | content | ttl | prio | disabled | ordername | auth | +----+-----------+----------------------------+------+-------------------------------------------------------------+-------+------+----------+-----------+------+ | 1 | 1 | kifarunix-demo.com | SOA | localhost admin.kifarunix-demo.com 1 10380 3600 604800 3600 | 86400 | NULL | 0 | NULL | 1 | | 2 | 1 | kifarunix-demo.com | NS | ns1.kifarunix-demo.com | 86400 | NULL | 0 | NULL | 1 | | 3 | 1 | ns1.kifarunix-demo.com | A | 192.168.57.3 | 120 | NULL | 0 | NULL | 1 | | 4 | 1 | news.kifarunix-demo.com | A | 19
2.168.58.45 | 120 | NULL | 0 | NULL | 1 | | 5 | 1 | kifarunix-demo.com | MX | mail.kifarunix-demo.com | 120 | 25 | 0 | NULL | 1 | | 6 | 2 | 57.168.192.in-addr.arpa | SOA | localhost admin.kifarunix-demo.com 1 10380 3600 604800 3600 | 86400 | NULL | 0 | NULL | 1 | | 7 | 2 | 57.168.192.in-addr.arpa | NS | ns1.kifarunix-demo.com | 120 | NULL | 0 | NULL | 1 | | 8 | 2 | 3.57.168.192.in-addr.arpa | PTR | ns1.kifarunix-demo.com | 120 | NULL | 0 | NULL | 1 | | 9 | 2 | 45.57.168.192.in-addr.arpa | PTR | news.kifarunix-demo.com | 120 | NULL | 0 | NULL | 1 | +----+-----------+----------------------------+------+-------------------------------------------------------------+-------+------+----------+-----------+------+

So what is domain_id, name, type, prio, ttl? Baca tentang mereka di halaman Pertanyaan Reguler PowerDNS.

Verifikasi Resolusi Terbalik PowerDNS

Keluar dari database dan jalankan kueri DNS terbalik untuk mengonfirmasi apakah semuanya baik-baik saja.

dig -x 192.168.57.45 @127.0.0.1 +short
news.kifarunix-demo.com.
dig -x 192.168.57.3 @127.0.0.1 +short
ns1.kifarunix-demo.com.

Agung!!!

Perhatikan bahwa semua ini dapat dengan mudah dilakukan dari web tetapi, itu adalah tutorial untuk hari lain.

Buka DNS Port di UFW

Agar host jarak jauh dapat menggunakan PowerDNS untuk resolusi namanya, Anda perlu membuka port DNS 53/UDP;

ufw allow from 192.168.0.0/16 to any port 53 proto udp

Ini memungkinkan permintaan DNS dari subnet 192.168.0.0/16.

Konfigurasi DNS Server di Sistem Client

Untuk tujuan pengujian, timpa Anda /etc/resolv.conf file dengan entri server nama PowerDNS.

echo "nameserver 192.168.57.3" > /etc/resolv.conf

Verifikasi Resolusi DNS Penerusan Client

Selanjutnya, lakukan resolusi DNS menggunakan utilitas DNS apa pun.

dig news.kifarunix-demo.com
; <<>> DiG 9.16.1-Ubuntu <<>> news.kifarunix-demo.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 56258 ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; WARNING: recursion requested but not available ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 1232 ;; QUESTION SECTION: ;news.kifarunix-demo.com.	IN	A ;; ANSWER SECTION: news.kifarunix-demo.com. 120	IN	A	192.168.58.45 ;; Query time: 3 msec ;; SERVER: 192.168.57.3#53(192.168.57.3) ;; WHEN: Sat Oct 10 09:18:54 EAT 2020 ;; MSG SIZE rcvd: 68
nslookup ns1.kifarunix-demo.com
Server:		192.168.57.3 Address:	192.168.57.3#53 Name:	ns1.kifarunix-demo.com Address: 192.168.57.3
host ns1.kifarunix-demo.com
ns1.kifarunix-demo.com has address 192.168.57.3

Verifikasi Resolusi DNS Terbalik Client

dig -x 192.168.57.3 +short
ns1.kifarunix-demo.com.
nslookup 192.168.57.3
3.57.168.192.in-addr.arpa name = ns1.kifarunix-demo.com.
host 192.168.57.3
3.57.168.192.in-addr.arpa domain name pointer ns1.kifarunix-demo.com.

Cantik. Dalam panduan berikutnya, kita akan mempelajari cara mengelola PowerDNS menggunakan alat web yang disebut Admin PowerDNS (tautan tersedia di bawah). Untuk saat ini, begitulah mudahnya menginstal dan mengatur PowerDNS di Ubuntu 20.04.

Instal dan Atur Admin PowerDNS dengan Mudah di Ubuntu 20.04

Referensi

Dokumentasi Server Nama Resmi PowerDNS n

Tutorial Terkait

Konfigurasi Server DNS Lokal menggunakan Dnsmasq di Ubuntu 20.04

Setup Server DNS Caching-Only menggunakan BIND9 di Ubuntu 20.04

Konfigurasikan BIND DNS Server menggunakan Webmin di CentOS 8

Setup Bind DNS Menggunakan Webmin di Debian 10

Konfigurasikan BIND sebagai Server DNS Budak di Ubuntu 18.04

Setup Master-Slave DNS Server menggunakan BIND di CentOS 7