Pengantar: Apa itu BIND9?

BIND9 (Berkeley Internet Name Domain) adalah software open-source yang digunakan untuk membangun dan mengelola DNS server. DNS (Domain Name System) berfungsi sebagai penerjemah nama domain (contoh: tjktkel8.org) menjadi alamat IP (contoh: 192.168.78.116), sehingga memudahkan komunikasi di internet.


Langkah-Langkah Instalasi dan Konfigurasi DNS Server di Debian 10

1. Update Sistem Operasi

Sebelum instalasi, pastikan paket sistem diperbarui.

sudo apt update && sudo apt upgrade -y

2. Instal BIND9

Instal BIND9 beserta alat-alat bantu yang dibutuhkan.

sudo apt install bind9 bind9utils bind9-doc -y

Periksa apakah layanan BIND9 berjalan:

sudo systemctl status bind9

Jika belum berjalan, aktifkan dan mulai layanan:

sudo systemctl enable bind9
sudo systemctl start bind9

3. Konfigurasi BIND9 sebagai DNS Server

3.1 Edit Konfigurasi Utama BIND9

File utama konfigurasi BIND9 ada di /etc/bind/named.conf.options. Edit file tersebut:

sudo nano /etc/bind/named.conf.options

Temukan dan edit blok berikut untuk mengatur DNS forwarding (opsional):

options {
directory "/var/cache/bind";

recursion yes; // Aktifkan rekursi untuk DNS resolver.
allow-query { any; };

forwarders {
8.8.8.8; // DNS Google sebagai resolver cadangan.
8.8.4.4;
};

dnssec-validation auto;
};

Simpan dan keluar dari editor.

3.2 Buat Zona untuk Domain

Tambahkan zona untuk domain Anda di file /etc/bind/named.conf.local.

sudo nano /etc/bind/named.conf.local

Tambahkan konfigurasi berikut:

zone "tjktkel8.org" {
type master;
file "/etc/bind/db.tjkt1";
};

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

File di atas mendefinisikan dua zona:

  • Zona forward: untuk memetakan domain ke IP.
  • Zona reverse: untuk memetakan IP ke domain.

3.3 Konfigurasi File Zona Forward

Buat file zona untuk db.tjkt1.

sudo nano /etc/bind/db.tjkt1.com

Isi file:

$TTL    604800
@ IN SOA ns1.tjktkel8.org. root.tjktkel8.org. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL


@ IN NS ns1.tjktkel8.org.
@ IN A 192.168.78.116
ns1 IN A 192.168.78.116
www IN A 192.168.78.116

3.4 Konfigurasi File Zona Reverse

Buat file zona reverse untuk IP 192.168.78.0/24.

sudo nano /etc/bind/db.tjkt2

Isi file:

$TTL    604800
@ IN SOA ns1.tjktkel8.org. root.tjktkel8.org. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL


@ IN NS ns1.tjktkel8.org.
116 IN PTR tjktkel8.org.
116 IN PTR www.tjktkel8.org.

4. Verifikasi dan Restart BIND9

4.1 Verifikasi Konfigurasi

Periksa apakah konfigurasi BIND9 benar:

sudo named-checkconf

Periksa file zona:

sudo named-checkzone example.com /etc/bind/db.tjkt1
sudo named-checkzone 1.168.192.in-addr.arpa /etc/bind/db.tjkt1

Jika tidak ada kesalahan, lanjutkan.

4.2 Restart Layanan BIND9

Restart BIND9 untuk menerapkan perubahan:

sudo systemctl restart bind9

5. Buka Port DNS di Firewall (UFW)

BIND9 menggunakan port 53 untuk DNS. Pastikan port tersebut terbuka di firewall.

sudo ufw allow 53/tcp
sudo ufw allow 53/udp

Periksa status firewall:

sudo ufw status

6. Konfigurasi Klien untuk Menggunakan DNS Server

Pada klien (misalnya komputer lain), ubah pengaturan DNS agar menggunakan IP server Debian sebagai DNS resolver.

  • Pada Linux: Edit file /etc/resolv.conf:Copy codenameserver 192.168.1.10
  • Pada Windows:
    1. Buka Control Panel > Network and Internet > Network Connections.
    2. Klik kanan pada jaringan, pilih Properties.
    3. Pilih Internet Protocol Version 4 (TCP/IPv4), klik Properties.
    4. Masukkan IP server Debian pada kolom Preferred DNS server.

7. Pengujian DNS Server

7.1 Tes Resolusi Nama Domain

Pada server atau klien yang menggunakan DNS server, jalankan perintah:

nslookup tjktkel8.org 192.168.78.116

Output yang diharapkan:

Server:  192.168.78.116
Address: 192.168.78.116#53

Name: tjktkel8.org.com
Address: 192.168.78.116

7.2 Tes Resolusi IP (Reverse Lookup)

Jalankan perintah berikut:

nslookup 192.168.78.116

Output yang diharapkan:

116.78.168.192.in-addr.arpa  name = tjktkel8.org.

8. Troubleshooting

  • Cek Log BIND9:
    Jika ada masalah, cek log di /var/log/syslog:bashCopy codesudo tail -f /var/log/syslog
  • Periksa Status Layanan:
    Pastikan layanan berjalan dengan benar:bashCopy codesudo systemctl status bind9