Tidak terikat adalah server caching DNS gratis, sumber terbuka, rekursif, dan memvalidasi. Ini menggunakan DNS-over-TLS dan DNS-over-HTTPS untuk mengenkripsi koneksi antar klien. Dibandingkan dengan Bind9, Unbound lebih ringan dan sangat cepat. Server caching akan membantu Anda mengurangi waktu pemuatan situs web dengan menyimpan basis data cache di server Tidak Terikat. Hal ini juga mampu validasi DNSSEC dan dapat berfungsi sebagai jangkar kepercayaan.
Dalam posting ini, kami akan menunjukkan cara mengatur Resolver DNS Tidak Terikat di Ubuntu 20.04.
Prasyarat
- Server Ubuntu 20.04 baru di Atlantic.Net Cloud Platform
- Kata sandi root yang dikonfigurasi di server Anda
Langkah 1 – Buat Server Cloud Atlantic.Net
Pertama, masuk ke Server Cloud Atlantic.Net Anda. Buat server baru, pilih Ubuntu 20.04 sebagai sistem operasi dengan setidaknya 2GB RAM. Hubungkan ke Server Cloud Anda melalui SSH dan masuk menggunakan kredensial yang disorot di bagian atas halaman.
Setelah Anda masuk ke server Ubuntu 20.04 Anda, jalankan perintah berikut untuk memperbarui sistem dasar Anda dengan paket terbaru yang tersedia.
apt-get update -y
Langkah 2 – Instal Dependensi yang Diperlukan
Sebelum memulai, Anda perlu menginstal beberapa alat DNS dasar di sistem Anda. Anda dapat menginstal semuanya menggunakan perintah berikut:
apt-get install bind9-utils dnsutils net-tools -y
Setelah semua paket terinstal, Anda dapat melanjutkan ke langkah berikutnya.
Langkah 3 – Instal dan Konfigurasi DNS Tidak Terikat
apt-get install unbound -y
Setelah menginstal DNS Tidak Terikat, Anda harus mengonfigurasinya. Secara default, file konfigurasi utama Unbound terletak di /etc/unbound/unbound.conf. Namun, disarankan untuk membuat file konfigurasi terpisah:
nano /etc/unbound/unbound.conf.d/myunbound.conf
Tambahkan baris berikut:
server: port: 53 verbosity: 0 num-threads: 2 outgoing-range: 512 num-queries-per-thread: 1024 msg-cache-size: 32m interface: 0.0.0.0 rrset-cache-size: 64m cache-max-ttl: 86400 infra-host-ttl: 60 infra-lame-ttl: 120 access-control: 127.0.0.0/8 allow access-control: 0.0.0.0/0 allow username: unbound directory: "/etc/unbound" logfile: "/var/log/unbound.log" use-syslog: no hide-version: yes so-rcvbuf: 4m so-sndbuf: 4m do-ip4: yes do-ip6: no do-udp: yes do-tcp: yes remote-control: control-enable: yes control-port: 953 control-interface: 0.0.0.0
Simpan dan tutup file, kemudian validasi file konfigurasi dengan perintah berikut:
unbound-checkconf /etc/unbound/unbound.conf.d/myunbound.conf
Anda akan mendapatkan output berikut:
unbound-checkconf: no errors in /etc/unbound/unbound.conf.d/myunbound.conf
Selanjutnya, buat file log untuk Tidak Terikat dan atur izin yang tepat:
touch /var/log/unbound.log chown unbound:unbound /var/log/unbound.log
Langkah 4 – Mulai Layanan DNS Tidak Terikat
Pada titik ini, DNS Tidak Terikat diinstal dan dikonfigurasi. Sekarang, mulai ulang layanan Tidak Terikat dan aktifkan untuk memulai saat reboot sistem:
systemctl restart unbound systemctl enable unbound
Anda juga dapat memverifikasi status Tidak Terikat dengan perintah berikut:
systemctl status unbound
Contoh keluaran:
● unbound.service - Unbound DNS server Loaded: loaded (/lib/systemd/system/unbound.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2021-08-15 06:30:33 UTC; 7s ago Docs: man:unbound(8) Process: 2788 ExecStartPre=/usr/lib/unbound/package-helper chroot_setup (code=exited, status=0/SUCCESS) Process: 2791 ExecStartPre=/usr/lib/unbound/package-helper root_trust_anchor_update (code=exited, status=0/SUCCESS) Main PID: 2804 (unbound) Tasks: 2 (limit: 2353) Memory: 4.8M CGroup: /system.slice/unbound.service └─2804 /usr/sbin/unbound -d Aug 15 06:30:32 ubuntu2004 systemd[1]: Starting Unbound DNS server... Aug 15 06:30:33 ubuntu2004 package-helper[2796]: /var/lib/unbound/root.key has content Aug 15 06:30:33 ubuntu2004 package-helper[2796]: success: the anchor is ok Aug 15 06:30:33 ubuntu2004 systemd[1]: Started Unbound DNS server.
Pada titik ini, layanan Tidak Terikat dimulai dan mendengarkan pada port 53. Anda dapat memeriksanya menggunakan perintah berikut:
ss -antpl | grep 53
Contoh keluaran:
LISTEN 0 256 0.0.0.0:53 0.0.0.0:* users:(("unbound",pid=3407,fd=6)) LISTEN 0 256 0.0.0.0:53 0.0.0.0:* users:(("unbound",pid=3407,fd=4)) LISTEN 0 4096 127.0.0.53%lo:53 0.0.0.0:* users:(("systemd-resolve",pid=356,fd=13)) LISTEN 0 256 0.0.0.0:953 0.0.0.0:* users:(("unbound",pid=3407,fd=7))
Langkah 5 – Uji DNS Tidak Terikat
Sekarang, Anda perlu menggunakan perintah dig dan melakukan beberapa kueri DNS untuk menguji server DNS Tidak Terikat.
Kami akan menggunakan ubuntu.com untuk pengujian.
dig ubuntu.com @localhost
Contoh keluaran:
; <<>> DiG 9.16.1-Ubuntu <<>> ubuntu.com @localhost ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 6037 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;ubuntu.com. IN A ;; ANSWER SECTION: ubuntu.com. 60 IN A 91.189.88.181 ubuntu.com. 60 IN A 91.189.88.180 ;; Query time: 307 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) ;; WHEN: Sun Aug 15 06:32:18 UTC 2021 ;; MSG SIZE rcvd: 71
Seperti yang Anda lihat, waktu kueri adalah 307 msec di kueri pertama. Kueri Anda sekarang di-cache.
Selanjutnya, mari kita jalankan kueri yang sama lagi:
dig ubuntu.com @localhost
Contoh keluaran:
; <<>> DiG 9.16.1-Ubuntu <<>> ubuntu.com @localhost ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37832 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;ubuntu.com. IN A ;; ANSWER SECTION: ubuntu.com. 49 IN A 91.189.88.180 ubuntu.com. 49 IN A 91.189.88.181 ;; Query time: 0 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) ;; WHEN: Sun Aug 15 06:33:36 UTC 2021 ;; MSG SIZE rcvd: 71
Seperti yang Anda lihat, waktu kueri adalah 0 mdtk.
Anda juga dapat menguji server DNS Tidak Terikat dari mesin klien. Dalam hal ini, Anda perlu menentukan IP server DNS Tidak Terikat Anda dengan kueri:
dig ubuntu.com @69.87.221.220
Contoh keluaran:
; <<>> DiG 9.9.5-3ubuntu0.4-Ubuntu <<>> ubuntu.com @69.87.221.220 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: REFUSED, id: 28051 ;; flags: qr rd ad; QUERY: 0, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0 ;; WARNING: recursion requested but not available ;; Query time: 365 msec ;; SERVER: 69.87.221.220#53(69.87.221.220) ;; WHEN: Sun Aug 15 12:04:37 IST 2021 ;; MSG SIZE rcvd: 12
Langkah 6 – Pemecahan Masalah Tidak Terikat
Jika Anda ingin memeriksa status DNS Tidak Terikat, jalankan perintah berikut:
unbound-control status
Contoh keluaran:
version: 1.9.4 verbosity: 0 threads: 2 modules: 3 [ subnet validator iterator ] uptime: 65 seconds options: reuseport control(ssl) unbound (pid 3407) is running...
Jika Anda ingin mencadangkan Cache DNS ke file teks, jalankan perintah berikut:
unbound-control dump_cache > cache.txt
Anda dapat memverifikasi file cache.txt dengan perintah berikut:
cat cache.txt
Contoh keluaran:
START_RRSET_CACHE END_RRSET_CACHE START_MSG_CACHE END_MSG_CACHE EOF
Dalam beberapa kasus, server DNS Anda tidak dapat membalas permintaan Anda. Dalam hal ini, Anda dapat membersihkan cache DNS menggunakan perintah berikut:
unbound-control flush ubuntu.com
Kesimpulan
Dalam panduan di atas, kami menjelaskan cara menginstal dan menggunakan server caching DNS Tidak Terikat di Ubuntu 20.04. Kami juga melakukan beberapa pengujian menggunakan perintah dig untuk menanyakan DNS Tidak Terikat dan mendapatkan respons. Cobalah di VPS Anda dari Atlantic.Net hari ini!