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