Konfigurasi Server DNS Lokal menggunakan Dnsmasq di Ubuntu 20.04

Selamat datang di tutorial kami tentang cara menginstal dan mengkonfigurasi Server DNS lokal menggunakan Dnsmasq di Ubuntu 20.04. “ Dnsmasq adalah ringan, mudah dikonfigurasi, DNS forwarder dan server DHCP. Ini dirancang untuk menyediakan DNS dan opsional, DHCP dan TFTP, ke jaringan kecil. Itu dapat melayani nama-nama engine lokal yang tidak ada dalam DNS global “.

Jika Anda ingin menghemat kerumitan karena harus mengonfigurasi server DNS dengan cara BIND9, menggunakan Dnsmasq adalah cara termudah dan tercepat untuk mengaktifkan dan menjalankan server DNS lokal Anda.

Oleh karena itu, dalam pengaturan ini, kami akan mengonfigurasi Dnsmasq sebagai server DNS caching lokal kami untuk mempercepat resolusi DNS lokal.

Konfigurasi Server DNS Lokal menggunakan Dnsmasq di Ubuntu 20.04

Jalankan Pembaruan Sistem

Perbarui cache paket sistem Anda;

apt update

Instal Dnsmasq di Ubuntu 20.04

Dnsmasq tersedia di repo Ubuntu 20.04 Universe. Namun, sebelum Anda dapat menginstal dnsmasqdi Ubuntu 20.04, nonaktifkan service yang diselesaikan Systemd ( service sistem yang menyediakan resolusi nama jaringan ke aplikasi lokal ).

systemctl disable --now systemd-resolved

Hapus file resolv.conf 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, Dnsmasq dapat diinstal dengan menjalankan perintah di bawah ini;

apt install dnsmasq
Reading package lists... Done Building dependency tree Reading state information... Done following additional packages will be installed: dns-root-data dnsmasq-base libidn11 Suggested packages: resolvconf following NEW packages will be installed: dns-root-data dnsmasq dnsmasq-base libidn11 0 upgraded, 4 newly installed, 0 to remove and 73 not upgraded. Need to get 382 kB of archives. After this operation, 1,155 kB of additional disk space will be used. Do you want to continue? [Y/n] y

Ini menginstal dan memulai dan memungkinkan service Dnsmasq berjalan pada boot sistem.

systemctl status dnsmasq
● dnsmasq.service - dnsmasq - A lightweight DHCP and caching DNS server Loaded: loaded (/lib/systemd/system/dnsmasq.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2020-10-06 19:12:31 UTC; 15s ago Main PID: 17726 (dnsmasq) Tasks: 1 (limit: 2282) Memory: 868.0K CGroup: /system.slice/dnsmasq.service └─17726 /usr/sbin/dnsmasq -x /run/dnsmasq/dnsmasq.pid -u dnsmasq -7 /etc/dnsmasq.d,.dpkg-dist,.dpkg-old,.dpkg-new --local-service --trust-anchor=.,20326,8,2,e> Oct 06 19:12:31 ubuntu20 systemd[1]: Starting dnsmasq - A lightweight DHCP and caching DNS server... Oct 06 19:12:31 ubuntu20 dnsmasq[17705]: dnsmasq: syntax check OK. Oct 06 19:12:31 ubuntu20 dnsmasq[17726]: started, version 2.80 cachesize 150 Oct 06 19:12:31 ubuntu20 dnsmasq[17726]: DNS service limited to local subnets Oct 06 19:12:31 ubuntu20 dnsmasq[17726]: compile time options: IPv6 GNU-getopt DBus i18n IDN DHCP DHCPv6 no-Lua TFTP conntrack ipset auth DNSSEC loop-detect inotify dumpfi> Oct 06 19:12:31 ubuntu20 dnsmasq[17726]: reading /etc/resolv.conf Oct 06 19:12:31 ubuntu20 dnsmasq[17726]: using nameserver 8.8.8.8#53 Oct 06 19:12:31 ubuntu20 dnsmasq[17726]: read /etc/hosts - 7 addresses Oct 06 19:12:31 ubuntu20 systemd[1]: Started dnsmasq - A lightweight DHCP and caching DNS server.

Konfigurasi Server DNS Lokal menggunakan Dnsmasq di Ubuntu 20.04

Setelah Dnsmasq diinstal, Anda sekarang dapat melanjutkan untuk mengonfigurasinya sebagai server DNS caching lokal di Ubuntu 20.04. /etc/dnsmasq.confadalah file konfigurasi Dnsmasq default. Oleh karena itu, untuk mengkonfigurasi dnsmasq, Anda perlu mengedit /etc/dnsmasq.conffile.

Pertama, buat copyan file konfigurasi;

cp /etc/dnsmasq.conf{,.bak}

Selanjutnya, buka file konfigurasi untuk diedit;

vim /etc/dnsmasq.conf

File dikomentari dengan baik dan semua opsi konfigurasi cukup jelas.

Untuk memulainya, atur port tempat Dnsmasq akan mendengarkan permintaan DNS. Ini default ke port 53 UDP secara default. Anda juga dapat secara eksplisit mengatur port menggunakanport pilihan.

port=53

Nonaktifkan penerusan nama tanpa titik atau bagian domain;

domain-needed

Nonaktifkan penerusan alamat di ruang alamat yang tidak dirutekan;

bogus-priv

Tentukan interface (misalnya, interface=enp0s8) atau alamat IP (misalnya, listen-address=192.168.x.x) di mana Dnsmasq dapat mendengarkan permintaan DNS. Ini biasanya default ke alamat loopback. Dalam pengaturan ini, kami mengatur Dnsmasq untuk merespons permintaan DNS internal dan eksternal melalui IP interface loopback dan non-loopback.

listen-address=127.0.0.1,192.168.57.3 

Ganti alamat IP interface Anda yang sesuai.

Aktifkan Dnsmasq untuk secara otomatis menambahkan bagian domain ke nama sederhana;

expand-hosts

Setel domain untuk dnsmasq agar ditambahkan ke nama sederhana;

domain=kifarunix-demo.com

Sesuaikan ukuran nama domain yang di-cache. Standarnya adalah  150.

cache-size=1000

Opsi konfigurasi di atas sudah cukup untuk server DNS caching lokal dasar menggunakan Dnsmasq.

Tanpa baris komentar, beginilah tampilan file konfigurasi Dnsmasq kita;

port=53 domain-needed bogus-priv listen-address=127.0.0.1,192.168.57.3 expand-hosts domain=kifarunix-demo.com cache-size=1000

Simpan dan keluar dari file konfigurasi setelah selesai melakukan perubahan.

Tambahkan IP server DNS Dnsmasq pada file /etc/hosts

Selanjutnya, tambahkan alamat IP Dnsmasq sebagai server DNS utama pada file /etc/resolv.conf.

sed -i '1i nameserver 192.168.57.3' /etc/resolv.conf

/etc/resolv.confsekarang tampak seperti;

cat /etc/resolv.conf
nameserver 192.168.57.3 nameserver 8.8.8.8

Tambahkan Catatan DNS lokal ke Server Dnsmasq

Tambahkan entri DNS lokal pada /etc/hostsfile server Dnsmasq.

echo -e “192.168.57.19 centos8.kifarunix-demo.comn192.168.57.6 ubuntu18.kifarunix-demo.com” >> /etc/hosts

Lakukan hal yang sama untuk nama domain lokal Anda yang lain.

Mulai ulang Dnsmasq

Jalankan pemeriksaan konfigurasi Dnsmasq;

dnsmasq --test
dnsmasq: syntax check OK.

Mulai ulang DNSmasq;

systemctl restart dnsmasq

Konfirmasi Port 53;

netstat -alnp | grep -i :53
tcp 0 0 0.0.0.0:53 0.0.0.0:* LISTEN 18313/dnsmasq tcp6 0 0 :::53 :::* LISTEN 18313/dnsmasq udp 0 0 0.0.0.0:53 0.0.0.0:* 18313/dnsmasq udp6 0 0 :::53 :::* 18313/dnsmasq

Perhatikan bahwa dnsmasq mengikat ke alamat wildcard, bahkan ketika mendengarkan hanya pada beberapa interface. Ini memiliki keuntungan bekerja bahkan ketika interface datang dan pergi dan mengubah alamat.

Buka DNS Port di UFW

Jika UFW diaktifkan, buka port DNS 53, UDP.

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

Perbarui jaringan sumber Anda sesuai dengan itu.

Verifikasi resolusi DNS

Resolusi domain lokal;

dig ubuntu18.kifarunix-demo.com +short
192.168.57.3

Resolusi DNS eksternal;

dig google.com +short
216.58.223.110

Konfigurasikan Server DNS pada Client
Jarak Jauh

Sekarang setelah Dnsmasq siap untuk mengirimkan kueri DNS lokal dan eksternal melalui server DNS lokal, perbarui entri DNS untuk client di /etc/resolv.conf.

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

Ganti IP Dnsmasq yang sesuai.

Lakukan kueri dns lokal;

dig ubuntu18.kifarunix-demo.com
; <<>> DiG 9.11.13-RedHat-9.11.13-6.el8_2.1 <<>> ubuntu18.kifarunix-demo.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 57550 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;ubuntu18.kifarunix-demo.com.	IN	A ;; ANSWER SECTION: ubuntu18.kifarunix-demo.com. 0	IN	A	192.168.57.3 ;; Query time: 1 msec ;; SERVER: 192.168.57.3#53(192.168.57.3) ;; WHEN: Tue Oct 06 00:20:02 EAT 2020 ;; MSG SIZE rcvd: 72

Sekarang, mari kita mengatur waktu kueri DNS menggunakan drillkegunaan. Untuk menggunakan alat ini, Anda perlu menginstal ldns-utilspaket di CentOS atau ldnsutilspaket di Ubuntu. Dengan asumsi paket diinstal, gunakan drillutilitas untuk memverifikasi caching DNS;

Kueri pertama kali dijalankan;

drill google.com | grep "Query time"
;; Query time: 25 msec

Permintaan kedua kalinya;

drill google.com | grep "Query time"
;; Query time: 1 msec

Horeaaa!! Dnsmasq sekarang dikonfigurasi dan menjalankan server DNS caching lokal. Itu menandai akhir dari tutorial kami tentang cara menginstal dan mengkonfigurasi server DNS lokal menggunakan Dnsmasq di Ubuntu 20.04.

Tutorial Terkait

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

Cara Mengatur Server DNS Master-Slave menggunakan BIND di CentOS 7