Linux dan DNS Bind Named - Instalasi Konfigurasi dan Penerapan Server DNS pada Jaringan Lokal | UNIX LINUX EXPLORE
Edit

Linux dan DNS Bind Named - Instalasi Konfigurasi dan Penerapan Server DNS pada Jaringan Lokal

2024/09/15
BIND kepanjangan dari Berkeley Internet Name Domain adalah implementasi dari protokol DNS. BIND 9 adalah versi terbaru dari server DNS BIND. Pada versi ini membuat beberapa perbaikan besar, termasuk dukungan IPv6, konfigurasi dan manajemen yang lebih fleksibel, peningkatan kinerja caching, dukungan EDNS0 untuk respons UDP yang besar, dan peningkatan manajemen alamat IP yang ditetapkan secara dinamis.

BIND adalah perangkat lunak server nama yang paling banyak digunakan di Internet. Ini mendukung sejumlah protokol layanan nama domain yang berbeda, termasuk BIND4 (Berkeley Internet Name Domain asli versi 4), BIND8 (penerus historis BIND4), dan layanan DNS untuk IPv6 melalui dua implementasi terpisah: satu berbasis daemon dan yang lainnya disebut lwres (resolver ringan).

1. Spesifikasi Sytem

OS: Ubuntu server 24.04
Host: ns3
IP address: 192.168.5.3
Versi Bind: BIND 9.18.24-0ubuntu5-Ubuntu

2. Install Server DNS Bind 9

Pada sistem operasi Ubuntu, proses instalasi server DNS Bind sangat sederhana dan mudah. Pertama pastikan semua paket apt Ubuntu anda sudah diperbarui, bila belum jalankan perintah berikut:

Update apt
root@ns3:~# apt-get update && sudo apt-get upgrade -y
Sekarang sistem Anda sudah diperbarui, Anda dapat melanjutkan dengan menginstal server DNS - BIND. Hal ini dapat dilakukan dengan menginstal beberapa paket Bind, seperti contoh di bawah ini.

Install Bind
root@ns3:~# apt install bind9 bind9-dev bind9-dnsutils bind9-doc bind9-host bind9-libs bind9-utils
Perintah di atas akan menginstal BIND9 dan dua paket pendukung yang berisi file yang diperlukan agar server DNS dapat berfungsi dengan baik.
  1. BIND9 adalah perangkat lunak server DNS.
  2. bind9utils adalah utilitas manajemen konfigurasi BIND dan juga merupakan nama perintah yang digunakan untuk mengelola BIND dari baris perintah.
  3. bind9-doc adalah paket dokumentasi untuk perangkat lunak BIND.
Setelah instalasi selesai, Anda dapat memverifikasi bahwa semua paket berhasil diinstal dengan menjalankan perintah berikut:

Periksa versi Bind
root@ns3:~# named -v
BIND 9.18.24-0ubuntu5-Ubuntu (Extended Support Version) <id:>

3. Hapus Symlink resolv.conf

Pada saat pertama kali memasang Ubuntu, system Ubuntu secara otomatis atau secara default membuat file symlink /etc/resolv.conf. File ini berisi skrip name server yang menghubungkan sitem Ubuntu anda denan server DNS publik seperti Google, Quad, OpenDNS atau Cloudflare. File resolv.conf tersebut dihubungkan (symlink) ke file /run/systemd/resolve/stub-resolv.conf.

Agar server DNS Bind anda dapat berjalan secara sempurna, diperlukan tindakan untuk menghapus file symlink /etc/resolv.conf. Karena isi skrip file ini akan kita ganti dengan name server IP address server Ubuntu anda. Berikut adalah cara menghapus symlink resolv.conf.

Periksa Symlink /etc/resolv.conf
root@ns3:~# ls -l /etc/resolv.conf
lrwxrwxrwx 1 root root 39 Apr 23 09:40 /etc/resolv.conf -> ../run/systemd/resolve/stub-resolv.conf
Hapus Symlink /etc/resolv.conf
root@ns3:~# unlink /etc/resolv.conf
Setelah anda berhasil menghapus symlink /etc/resolv.conf, buat file resolv.conf baru dengan perintah berikut.

Buat file /etc/resolv.conf
root@ns3:~# touch /etc/resolv.conf
Langkah selanjutnya, anda ketikkan skrip di bawah ini pada file /etc/resolv.conf.

Skrip /etc/resolv.conf
domain kursor.my.id
nameserver 192.168.5.3
#nameserver 8.8.8.8

4. Konfigurasi Server DNS Bind 9

Letak file konfigurasi utama server DNS bind pada tiap sistem operasi berbeda, pada Ubuntu letak file konfigurasi utama Bind berada di folder /etc/bind. Anda harus mengubah beberapa file pada folder tersebut dan file utamanya bernama "named.conf". Biarkan saja isi skrip file "named.conf" secara default, anda ikuti saja perintah yang ada di dalam file tersebut.

Skrip /etc/bind/named.conf
include "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.local";
include "/etc/bind/named.conf.default-zones";
Skrip /etc/bind/named.conf.default-zones
zone "." {
	type hint;
	file "/usr/share/dns/root.hints";
};

zone "localhost" {
	type master;
	file "/etc/bind/db.local";
};

zone "127.in-addr.arpa" {
	type master;
	file "/etc/bind/db.127";
};

zone "0.in-addr.arpa" {
	type master;
	file "/etc/bind/db.0";
};

zone "255.in-addr.arpa" {
	type master;
	file "/etc/bind/db.255";
};
Kemudian lanjutkan dengan membuat zona untuk nama domain server Ubuntu anda. Buka file named.conf.local, hapus semua isi skrip dari file tersebut edan ganti dengan skrip di bawah ini.

Skrip /etc/bind/named.conf.local
zone "kursor.my.id" {
    type master;
    file "/etc/bind/zones/db.kursor.my.id";
    // allow-transfer { };
    };

zone "5.168.192.in-addr.arpa" {
    type master;
    file "/etc/bind/zones/db.5.168.192";
    // allow-transfer { };
    };

5. Buat Zona

Karena letak file zona berada di folder /etc/bind/zones, anda buat folder untuk menaruh fle zona tersebut.

buat folder zones dan file untuk nama zona
root@ns3:~# mkdir -p /etc/bind/zones
root@ns3:~# touch /etc/bind/zones/db.5.168.192
root@ns3:~# touch /etc/bind/zones/db.kursor.my.id
Pada tiap-tiap file zona tersebut anda masukkan skrip berikut ini.

Skrip /etc/bind/zones/db.kursor.my.id
$TTL    604800
@    IN    SOA    ns3.kursor.my.id. admin.kursor.my.id. (
             2019061308    ; Serial
             604800        ; Refresh
              86400        ; Retry
            2419200        ; Expire
             604800 )    ; Negative Cache TTL
;
; name servers - NS records
    IN    NS    ns3.kursor.my.id.

; name servers - A records
ns3.kursor.my.id.    IN    A    192.168.5.3
Skrip /etc/bind/zones/db.5.168.192
$TTL    604800
@    IN    SOA    kursor.my.id. root.kursor.my.id. (
            2019061304    ; Serial
             604800        ; Refresh
              86400        ; Retry
            2419200        ; Expire
             604800 )    ; Negative Cache TTL
; name servers
    IN    NS    ns3.kursor.my.id.

; PTR Records
204    IN    PTR    ns3.kursor.my.id.
Skrip /etc/bind/db.0
$TTL	604800
@	IN	SOA	localhost. root.localhost. (
			      1		; Serial
			 604800		; Refresh
			  86400		; Retry
			2419200		; Expire
			 604800 )	; Negative Cache TTL
;
@	IN	NS	localhost.
Skrip /etc/bind/db.127
$TTL	604800
@	IN	SOA	localhost. root.localhost. (
			      1		; Serial
			 604800		; Refresh
			  86400		; Retry
			2419200		; Expire
			 604800 )	; Negative Cache TTL
;
@	IN	NS	localhost.
1.0.0	IN	PTR	localhost.
Skrip /etc/bind/db.255
$TTL	604800
@	IN	SOA	localhost. root.localhost. (
			      1		; Serial
			 604800		; Refresh
			  86400		; Retry
			2419200		; Expire
			 604800 )	; Negative Cache TTL
;
@	IN	NS	localhost.
Skrip /etc/bind/db.empty
$TTL	86400
@	IN	SOA	localhost. root.localhost. (
			      1		; Serial
			 604800		; Refresh
			  86400		; Retry
			2419200		; Expire
			  86400 )	; Negative Cache TTL
;
@	IN	NS	localhost.
Skrip /etc/bind/db.local
$TTL	604800
@	IN	SOA	localhost. root.localhost. (
			      2		; Serial
			 604800		; Refresh
			  86400		; Retry
			2419200		; Expire
			 604800 )	; Negative Cache TTL
;
@	IN	NS	localhost.
@	IN	A	127.0.0.1
@	IN	AAAA	::1

6. Periksa/Check Zona

Untuk memastikan semua zona tersebut dapat berfungsi denan baik, kita dapat melakukan pemeriksaan pada tiap- tiap zona. Pertama kita lakukan pemeriksaan terhadap file named.conf.

Check file /etc/bind/named.conf
root@ns3:~# named-checkconf /etc/bind/named.conf
Kemudian anda lanjutkan dengan memeriksa zona kursor.my.id dan zona - zona lainya.

Check zone
root@ns3:~# named-checkzone kursor.my.id /etc/bind/zones/db.kursor.my.id
zone kursor.my.id/IN: loaded serial 2019061308
OK
root@ns3:~# named-checkzone 5.168.192.in-addr.arpa /etc/bind/zones/db.5.168.192
zone 5.168.192.in-addr.arpa/IN: loaded serial 2019061304
OK
Bila telah muncul pesan "OK", itu artinya zona telah berjalan dan berfungsi dengan baik. Kemudian anda periksa juga zona lainnya, seperti contoh di bawah ini.

Check zone
root@ns3:~# named-checkzone localhost /etc/bind/db.local
root@ns3:~# named-checkzone 127.in-addr.arpa /etc/bind/db.127
root@ns3:~# named-checkzone 0.in-addr.arpa /etc/bind/db.0
root@ns3:~# named-checkzone 255.in-addr.arpa /etc/bind/db.255

7. Aktifkan dan Jalankan Bind

Langkah terakhir dari artikel ini adalah mengaktifkan dan menjalankan DNS server Bind. Sebelum anda mengaktifkan Bind, pastikan anda telah mengaktifkan DNS server Bind, dengan perintah berikut ini.

Aktifkan Bind
root@ns3:~# systemctl enable named
Setelah itu anda jalankan Bind dengan perintah systemctl atau service.

Aktifkan Bind
root@ns3:~# systemctl restart named
root@ns3:~# service named restart
BIND dimulai secara otomatis setelah instalasi. Anda dapat memeriksa statusnya menggunakan perintah systemctl seperti yang ditunjukkan di bawah ini.

Check staus Bind
root@ns3:~# systemctl status named
● named.service - BIND Domain Name Server
     Loaded: loaded (/usr/lib/systemd/system/named.service; enabled; preset: enabled)
     Active: active (running) since Wed 2024-05-22 06:43:50 UTC; 1s ago
       Docs: man:named(8)
   Main PID: 2147 (named)
     Status: "running"
      Tasks: 6 (limit: 1972)
     Memory: 5.4M (peak: 5.9M)
        CPU: 39ms
     CGroup: /system.slice/named.service
             └─2147 /usr/sbin/named -f -u bind

May 22 06:43:50 ns3 named[2147]: zone 127.in-addr.arpa/IN: loaded serial 1
May 22 06:43:50 ns3 named[2147]: zone 5.168.192.in-addr.arpa/IN: loaded serial 2019061304
May 22 06:43:50 ns3 named[2147]: zone localhost/IN: loaded serial 2
May 22 06:43:50 ns3 named[2147]: zone 0.in-addr.arpa/IN: loaded serial 1
May 22 06:43:50 ns3 named[2147]: zone 255.in-addr.arpa/IN: loaded serial 1
May 22 06:43:50 ns3 named[2147]: zone kursor.my.id/IN: loaded serial 2019061308
May 22 06:43:50 ns3 named[2147]: zone 5.168.192.in-addr.arpa/IN: sending notifies (serial 2019061304)
May 22 06:43:50 ns3 named[2147]: all zones loaded
May 22 06:43:50 ns3 named[2147]: running
May 22 06:43:50 ns3 systemd[1]: Started named.service - BIND Domain Name Server.
Setelah yakin server DNS Bind telah berjalan pada sistem Ubuntu anda, lanjutkan pemeriksaan terhadap semua catatan DNS dari mesin klien. Jalankan perintah dig di bawah ini untuk memeriksa nama domain "kursor.my.id", hasilnya nama domain kursor.my.id diselesaikan ke alamat IP server "192.168.5.3", yaitu IP server Ubuntu anda.

Periksa domain kursor.my.id
root@ns3:~# dig kursor.my.id

; <<>> DiG 9.18.24-0ubuntu5-Ubuntu <<>> kursor.my.id
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 8401
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; COOKIE: 568d13a59ed7a3cb01000000664d95b5f467dd618f2675b8 (good)
;; QUESTION SECTION:
;kursor.my.id.                  IN      A

;; AUTHORITY SECTION:
kursor.my.id.           604800  IN      SOA     ns3.kursor.my.id. admin.kursor.my.id. 2019061308 604800 86400 2419200 604800

;; Query time: 0 msec
;; SERVER: 192.168.5.3#53(192.168.5.3) (UDP)
;; WHEN: Wed May 22 06:50:29 UTC 2024
;; MSG SIZE  rcvd: 115
Periksa juga DNS publik seperti google con, yahoo.com dan lainnya. Hasilnya server DNS Bind anda harus menjawab semua permintaan tersebut.

Periksa DNS Publik
root@ns3:~# dig facebook.com

; <<>> DiG 9.18.24-0ubuntu5-Ubuntu <<>> facebook.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 19504
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; COOKIE: be9840787bbb179701000000664d96c003a4a7009cb47df9 (good)
;; QUESTION SECTION:
;facebook.com.                  IN      A

;; ANSWER SECTION:
facebook.com.           48      IN      A       157.240.235.35

;; Query time: 0 msec
;; SERVER: 192.168.5.3#53(192.168.5.3) (UDP)
;; WHEN: Wed May 22 06:54:56 UTC 2024
;; MSG SIZE  rcvd: 85
Periksa DNS Publik
root@ns3:~#  dig one.one.one.one
root@ns3:~# dig dns9.quad9.net
Dengan mengikuti panduan ini, Anda telah berhasil menginstal dan mengkonfigurasi DNS server Bind sebagai penyelesai DNS lokal di server Ubuntu 24.04 Anda. Anda telah mempelajari cara menyesuaikan file konfigurasi Bind, mengaktifkan cache DNS, meningkatkan privasi dan keamanan, mengoptimalkan kinerja Bind, dan menyiapkan penyelesai DNS pada mesin klien. ISC-Bind Named memberikan resolusi DNS yang handal dan efisien dengan tetap memprioritaskan privasi dan keamanan. Dengan penyelesai DNS lokal, Anda dapat menikmati komunikasi jaringan yang lebih cepat dan aman dengan DNS server Bind.