Cara membuat private nameserver dengan BIND di Ubuntu/Debian

Cara membuat private nameserver (child name server) atau dikenal dengan name server dengan domain sendiri di server Linux Ubuntu menggunakan BIND9 hanya dengan 1 IPv4.

Metode ini juga dikenal dengan vanity nameserver yaitu name server dengan branding domain yang anda tentukan sendiri. Nah untuk mewujudkan hal tersebut, kita akan melakukan konfiguarsi BIND DNS server.

Hasilnya nanti Anda akan mempunyai nameserver seperti:

  • ns1.domainanda.com
  • ns2.domainanda.com

Pada panduan ini, sebagai contoh domain yang digunakan adalah idnetter.com dengan IPv4 192.168.0.1, jadi silahkan diganti dengan nama domain dan IP server anda.

Informasi update:

  • Artikel diperbarui pada 04 September 2018, Uji coba menggunakan Linux CentOS 7
  • Diperbarui pada Sabtu, 22 September 2018, Uji coba Ubuntu 18.04 Bionic Beaver

Cara install BIND di Ubuntu/Debian

Sebelum install BIND9 pastikan sistem sudah terupdate

apt-get update -y
apt-get install bind9 bind9utils -y

Buka konfigurasi default bind9 dan edit

nano /etc/default/bind9

Set BIND ke mode IPv4, tambahkan -4 pada baris kode seperti berikut:

# startup options for the server
OPTIONS="-4 -u bind"

Simpan perubahan.

Konfigurasi DNS server

Karena IP hanya satu maka ns2 juga akan memakai IP yang sama dengan ns1 yaitu 192.168.0.1 sebagai contoh.

nano /etc/bind/named.conf.options

Tambahkan blok baru bernama trusted di baris paling atas, dan set sesuai IP aktual.

acl "trusted" {
	192.168.0.1; # ns1, daftarkan IP slave (ns2, ns3 dst.) disini
};

options {

	directory "/var/cache/bind";

	recursion yes;
	allow-recursion {trusted; }; 
	listen-on { 192.168.0.1; };
	allow-transfer { none; };
	version "Onde onde"; # menyamarkan versi

	forwarders {
		8.8.8.8;
		8.8.4.4;
	};

	dnssec-validation auto;

	auth-nxdomain no; # conform to RFC1035
	# listen-on-v6 { any; }; # kita ingin IPv4 saja
};

Catatan:

Setiap awal baris pada di dalam konfigurasi block seperti ada spasi kan? tapi itu bukan karakter spasi melainkan karakater Tab,  kalau pakai spasi nanti terdeteksi sebagai option, kalau dicek nanti kelihatan error unknown option ' '

Menambahkan forward dan reverse zone

Langkah selanjutnya menambahkan forward dan reverse lookup zone, buka file /etc/bind/named.conf.local

nano /etc/bind/named.conf.local

Tambahkan baris berikut, jangan lupa di sesuaikan dengan domain dan IPv4 server Anda

zone "idnetter.com" {
     type master;
     file "/etc/bind/zones/db.idnetter.com";
     allow-transfer { 192.168.0.1; }; # catatan: ini IP slave (ns2), jika ada
};

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

Konfigurasi forward lookup dan reverse lookup zone

Buat folder baru bernama zones untuk menyimpan file konfigurasi forward dan reverse zone BIND.

mkdir /etc/bind/zones

Buat file db.idnetter.com di dalam folder /etc/bind/zones

nano /etc/bind/zones/db.idnetter.com

Isi dengan konfig berikut, sesuaikan

$TTL 604800
@	IN	SOA	ns1.idnetter.com.	admin.idnetter.com. (
	3	; Serial
	604800	; Refresh
	86400	; Retry
	2419200	; Expire
	604800)	; Negative Cache TTL
;
; name servers - NS records
@	14400	IN	NS	ns1.idnetter.com.
@	14400	IN	NS	ns2.idnetter.com.

; name servers - A records
@	14400	IN	A	192.168.0.1
ns1	14400	IN	A	192.168.0.1
ns2	14400	IN	A	192.168.0.1
mail	14400	IN	A	192.168.0.1

; CNAME
www	14400	IN	CNAME	idnetter.com.

; MX records - paling tidak ada 2 mx (backup)
@	14400	IN	MX	10	idnetter.com.
@	14400	IN	MX	20	mail.idnetter.com.

; TXT value - SPF
@	14400	IN	TXT	"v=spf1 a mx ip4:192.168.0.1 ~all"

; DMARC1
_dmarc  14400	IN	TXT	"v=DMARC1; p=none"

Kemudian membuat file reverse zone

nano /etc/bind/zones/db.168.192

Isinya sebagai berikut, sesuaikan :

$TTL 604800
@	IN	SOA	ns1.idnetter.com.	admin.idnetter.com. (
	3	; Serial
	604800	; Refresh
	86400	; Retry
	2419200	; Expire
	604800)	; Negative Cache TTL

; Name servers
@	14400	IN	NS	ns1.idnetter.com.
@	14400	IN	NS	ns2.idnetter.com.

; PTR Records
1.0	14400	IN	PTR idnetter.com.	; 192.168.0.1
1.0	14400	IN	PTR ns1.idnetter.com.	; 192.168.0.1
1.0	14400	IN	PTR ns2.idnetter.com. 	; 192.168.0.1
1.0	14400	IN	PTR mail.idnetter.com.	; 192.168.0.1

Sampai pada titik ini BIND sudah selesai disetup. Untuk mengetahui berhasil tidaknya sebelum service BIND direstart, sebaiknya cek konfigurasi satu persatu agar dapat diketahui jika ada kesalahan pada konfigurasi.

Cek konfigurasi BIND

Cek konfigurasi BIND dengana perintah berikut:

named-checkconf

Kalu tidak ada output apa-apa berarti konfigurasi sudah benar.

Cek konfigurasi file named forward lookup zone

named-checkzone idnetter.com /etc/bind/zones/db.idnetter.com

Hasilnya

zone idnetter.com/IN: loaded serial 3
OK

Cek konfigurasi reverse zone file

named-checkzone 168.129.in-addr.arpa /etc/bind/zones/db.168.192

kalau berhasil, jawabanya

zone 168.129.in-addr.arpa/IN: loaded serial 3
OK

Restart BIND

Setiap kali mengedit konfigurasi named, jangan lupa restart service bind9 dengan menjalankan perintah berikut:

service bind9 restart

Selesai..

Sekarang saatnya menuju panel domain, kemudian membuat child nameserver ns1.idnetter.com dan ns2.idnetter.com yang diarahkan ke IP VPS. Berikutnya arahkan nameservernya ke ns1.idnetter.com dan ns2.idnetter.com , tentunya ganti dengan nama domain milik Anda sendiri.

Selamat mencoba, semoga berhasil. Tapi seandainya gagal, jangan ragu untuk order  jasa setting VPS di idnetter.com ya :-D, salam.

5/5 (4)

Please rate this

Related Posts

2 thoughts on “Cara membuat private nameserver dengan BIND di Ubuntu/Debian

  • Mantap bang tutorialnya ,

    tapi kenapa ya pas di step Cek konfigurasi file named forward lookup zone

    ada warning ignoring out-of-zone data, gitu
    saya udah googling tapi bingung 😀

    btw saya pake redhat bang

    1. Maaf mas Andry, saya baru sadar, ini memang ada kesalahan pada tutorial. Perintah cek zone pada parameter pertama 168.129.in-addr.arpa gak cocok sama zone "189.206.in-addr.arpa". Sekali lagi minta maaf, tutorial akan saya uji coba ulang dan akan saya update segera.

  • Leave a Reply

    Your email address will not be published. Required fields are marked *