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 konfigurasi 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 dengan 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.

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

  1. Andry

    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. Sulaiman

      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.

  2. Bagas Arya Ferdiansyah

    Waktu saya set ns nya di panel domain, is not valid Nameserver, padahal semua sudah sesuai dari awal sampai akhir.

    1. Omar

      Itu disebabkan domain Nameserver belum diregisterkan. Cara register nameserver (dengan domain sendiri) dilakukan di panel domain, biasanya nama menunya: Child nameserver / Private nameserver / Personal nameserver.
      1. Daftarkan ns1.domainanda.com ke IP server dan juga ns2.domainanda.com ke IP server
      2. Setelah berhasil mendaftarkan domain nameserver ns1 dan ns2 baru bisa mengganti Nameserver domain

  3. nanang

    saya memakai server fisik(pakai vmware untuk ns1 dan ns2) rencana saya pakaikan IP publik 2 2 nya, saya masih setting 1 ip saja dan sukses sampai akhir, yang saya bingung kemana selanjutnya? panel domain itu dimana? saya pakai ISP MLD.

    1. Omar

      Panel domain umumnya di provider tempat Anda membeli nama domain, bisa diakses melalui Client Area.

      1. nanang

        misal saya ingin membuat semuanya sendiri membuat dns server sendiri supaya bisa membuan child domain sendiri gimana mas?
        panel domain misal mungkin pakai ISPConfig, ns1 dan ns2, ke 3nya itu di pasang di 3 server yg berbeda2?
        misal saya punya 3 ip public ,192.168.111.1,192.168.111.2,192.168.111.3,
        dan 3 server fisik siap pakai.
        apa yg bisa saya lakukan?

        1. Omar

          Tutorial ini untuk 1 IP publik (Primary/Master) pada Virtual Private Server (VPS), jadi tidak ada backup. Kalau mau setup Master dan slave (backup), caranya sama. Ketiga server semua diinstall BIND, misal: Server1 sebagai tipe Master (primary), server2 sebagai tipe Slave (secondary) dan server3 sebagai Slave juga (tertiary). Kemudian untuk Name server domain, alurnya seperti ini:

          1. Pertama beli nama domain, contoh: idnetter.com
          2. Setelah domain aktif, nanti baru bisa akses panel domain (di Client Area tempat membeli domain)
          3. Di Panel domain, buat Child Nameserver (Private nameserver), misal
            • ns1.idnetter.com diarahkan ke 192.168.111.1
            • ns2.idnetter.com diarahkan ke 192.168.111.2
            • ns3.idnetter.com diarahkan ke 192.168.111.3
          4. Berikutnya, ganti Nameservernya menjadi ns1 sampai ns3.idnetter.com
  4. Muhammad Faisal Zulmaulidin

    ‘options’ redefined near ‘options’ error ini terus di conf.options nya bang, butuh pencerahannya

    1. Omar

      ganti spasi dengan TAB

  5. Arif

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

    Itu subdomain admin.idnetter.com untuk apa ya? Harus sama membuat subdomain admin juga?

    1. Omar

      Itu adalah SOA record (A Start of Authority record)
      admin.idnetter.com. adalah RNAME representasi administratornya, atau sama dengan [email protected]

      Coba cek lengkapnya disini.

Add a comment