Membuat DNS server Lokal dengan bind9

Instalasi

agar lebih mudah dalam melakukan konfigurasi kita menggunakan user root

sudo su
apt install bind9 dnsutils

Konfigurasi

Tujuan kali ini membuat DNS server lokal (LAN) agar kita bisa mengakses web server lokal dengan menggunakan nama domain, sekaligus menjadi dns server untuk kita terhubung ke internet

Konfigurasi file /etc/bind/named.conf.local

Beralih ke direktori bind

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

Isikan ini kedalamnya

//
// Do any local configuration here
//

// Consider adding the 1918 zones here, if they are not used in your
// organization
//include "/etc/bind/zones.rfc1918";

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

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

Keterangan:

  • zone “fariz.local” – akan menerjemahkan domain fariz.local kedalam IP address atau juga biasa disebut forward
  • zone “50.5.10.in-addr.arpa” – akan menerjemahkan alamat ip kedalam domain atau juga bisa disebut reverse
  • 50.5.10.in-addr.arpa – ip address 3 oktet awal yang dibalik
  • file “/lokasi/file” adalah tempat dimana kita akan membuat file konfigurasi nya

Membuat file konfigurasi untuk forward domain

Agar kita tidak perlu repot repot mengetikkan perintah dari awal kita akan menyalin isi file db.local kedalam file db.fariz

cp db.local db.fariz

sekarang kita lakukan konfigurasi pada file db.fariz

nano db.fariz

isikan ini kedalamnya

;
; BIND data file for local loopback interface
;
$TTL	604800
@	IN	SOA	fariz.local. root.fariz.local. (
			      2		; Serial
			 604800		; Refresh
			  86400		; Retry
			2419200		; Expire
			 604800 )	; Negative Cache TTL
;
@	IN	NS	fariz.local.
@	IN	A	10.5.50.107
www	IN	A	10.5.50.107

Keterangan:

  • fariz.local – domain yang akan kita gunakan
  • root.fariz.local – nama email yang akan kita gunakan bisa juga diartikan sebagai [email protected]
  • NS record atau catatan server nama – memberitahukan daftar name server (NS) yang membawa informasi tentang sebuah domain.
  • A record atau catatan alamat – memetakan sebuah nama host ke alamat IP 32-bit (untuk IPv4).
  • SOA record atau catatan otoritas awal (Start of Authority) – memberikan informasi server DNS yang mempunyai autoritas tertinggi untuk sebuah domain.
  • www – service web server

Catatan: Pastikan nomor serial tidak sama dengan file konfigurasi lain

Membuat file konfigurasi untuk reverse alamat IP (kedalam domain)

Agar kita tidak perlu repot repot mengetikkan perintah dari awal kita akan menyalin isi file db.127 kedalam file db.10

cp db.127 db.10

Sekarang kita lakukan konfigurasi pada file db.10

nano db.10

Isikan ini kedalamnya

;
; BIND reverse data file for local loopback interface
;
$TTL	604800
@	IN	SOA	fariz.local. root.fariz.local. (
			      1		; Serial
			 604800		; Refresh
			  86400		; Retry
			2419200		; Expire
			 604800 )	; Negative Cache TTL
;
@	IN	NS	fariz.local.
107	IN	PTR	fariz.local.
107	IN	PTR	www.fariz.local.

Keterangan:

  • 107 – oktet terakhir IP address (semisal IP address web server yang kita gunakan adalah 10.5.50.107 maka ditulis 107)

Catatan: Pastikan nomor serial tidak sama dengan file konfigurasi lain

Membuat DNS server lokal agar bisa digunakan sebagai DNS server untuk mengakses internet

backup terlebih dahulu file asli named.conf.options agar saat terjadi eror kita masih mempunyai file asli nya.

cp named.conf.options named.conf.options.original

lakukan konfigurasi pada file named.conf.options

nano named.conf.options

tambahkan ini didalamnya

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

        // If there is a firewall between you and nameservers you want
        // to talk to, you may need to fix the firewall to allow multiple
        // ports to talk.  See http://www.kb.cert.org/vuls/id/800113

        // If your ISP provided one or more IP addresses for stable
        // nameservers, you probably want to use them as forwarders.
        // Uncomment the following block, and insert the addresses replacing
        // the all-0's placeholder.

         allow-query { any; };
        forwarders {
               8.8.8.8;
        };

        //========================================================================
        // If BIND logs error messages about the root key being expired,
        // you will need to update your keys.  See https://www.isc.org/bind-keys
        //========================================================================
        dnssec-validation yes;


        listen-on-v6 { any; };
};

Cek syntax konfigurasi bind

cek konfigurasi keseluruhan

named-checkconf

cek konfigurasi tertentu

sudo named-checkzone fariz.local db.fariz
sudo named-checkzone 168.192.in-addr.arpa /etc/bind/zones/db.192.168

Restart service bind9

/etc/init.d/bind9 restart

atau

systemctl restart bind9

Pastikan tidak ada eror

Cek dengan nslookup

nslookup namadomain.com

pastikan output yang keluar sudah sesuai

nslookup 10.5.50.107

pastikan output yang keluar sudah sesuai

Tested on: Debian 10 buster

Catatan: Pastikan konfigurasi IP dan DNS server pada client sudah benar