top of page
Search

Cara Membuat Server DNS Sendiri dengan Ubuntu Linux Menggunakan BIND9

  • Writer: mohnovil22134
    mohnovil22134
  • Mar 14
  • 5 min read

DNS (Domain Name System) adalah sistem yang bertanggung jawab untuk menerjemahkan nama domain yang kita ketikkan di browser menjadi alamat IP yang dapat dimengerti oleh komputer. Sebagai contoh, ketika kamu mengetikkan www.google.com, DNS akan mengubahnya menjadi alamat IP seperti 172.217.12.174 yang digunakan untuk menghubungkan ke server yang tepat.


Di dunia yang semakin mengandalkan koneksi internet, memiliki kontrol penuh atas server DNS bisa memberi banyak manfaat. Keuntungan seperti meningkatkan keamanan, kontrol lebih besar terhadap pengaturan domain, dan meningkatkan kecepatan browsing bisa diperoleh dengan mengatur server DNS sendiri. Salah satu cara untuk melakukan ini adalah dengan menggunakan Ubuntu Linux sebagai sistem operasi server dan BIND9 (Berkeley Internet Name Domain) sebagai perangkat lunak DNS. Pada artikel ini, kita akan membahas langkah-langkah untuk mengatur server DNS sendiri di Ubuntu menggunakan BIND9.


Sebelum memulai, pastikan kamu sudah memiliki Ubuntu Linux yang terinstal di server atau komputer yang akan digunakan. Jika belum, kamu dapat mengunduh dan menginstal Ubuntu dari situs resminya.


Setelah memastikan Ubuntu terinstal, hal pertama yang perlu dilakukan adalah memperbarui sistem untuk memastikan semua paket perangkat lunak yang terpasang dalam keadaan terbaru dan aman. Cukup buka terminal dan jalankan perintah berikut:

sudo apt update && sudo apt upgrade

Dengan ini, sistem kamu akan terbarui, dan kamu siap untuk melanjutkan ke langkah berikutnya.


Instalasi BIND9

BIND9 adalah perangkat lunak DNS server yang paling banyak digunakan di dunia. Ini sangat kuat dan fleksibel, mendukung berbagai fitur canggih untuk mengelola DNS. Pada Ubuntu, BIND9 dapat diinstal dengan mudah menggunakan perintah apt.


Untuk menginstal BIND9, buka terminal dan jalankan perintah berikut:

sudo apt install bind9 bind9utils bind9-doc

Perintah ini akan menginstal BIND9, bersama dengan beberapa utilitas tambahan yang berguna untuk memelihara server DNS, serta dokumentasi untuk referensi lebih lanjut.


Setelah instalasi selesai, kamu dapat memeriksa apakah BIND9 sudah berjalan dengan lancar dengan menjalankan:

sudo systemctl status bind9

Jika layanan BIND9 berjalan dengan benar, statusnya akan menunjukkan bahwa BIND9 sedang aktif.


Konfigurasi Server DNS dengan BIND9


Sekarang kita akan memulai pengaturan server DNS. Ada beberapa file konfigurasi penting yang perlu kamu modifikasi, dimulai dengan named.conf.options. File ini berisi pengaturan penting seperti pengaturan forwarder DNS (untuk mengarahkan query DNS ke server lain) dan pengaturan lainnya.


Mengonfigurasi named.conf.options

Untuk mengedit file konfigurasi BIND9, buka file berikut menggunakan editor teks seperti nano/vim:

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

Di dalam file ini, kamu bisa menambahkan pengaturan forwarders, yang akan mengarahkan query DNS ke server DNS eksternal jika server kamu tidak dapat menyelesaikan query tersebut. Sebagai contoh, kamu bisa menambahkan pengaturan forwarder Google DNS:

forwarders {
	8.8.8.8;
	8.8.4.4;
};

Selain itu, pastikan untuk mengatur opsi listen-on untuk menentukan IP yang dapat menerima query DNS, dan allow-query untuk membatasi siapa saja yang bisa melakukan query ke server DNS kamu. Sebagai contoh:

listen-on { 127.0.0.1; };  // Hanya menerima query dari localhost
allow-query { localhost; }; // Hanya memungkinkan query dari localhost

Setelah selesai, simpan file dan tutup editor.


Membuat Zone File untuk Domain

Zone file adalah tempat di mana kamu mendefinisikan catatan DNS untuk domain yang akan dilayani. Misalnya, untuk domain example.com, kamu perlu membuat zone file yang berisi catatan A, MX, dan lainnya.

Untuk membuat zone file, buka file /etc/bind/db.example.com (pastikan kamu mengganti example.com dengan nama domainmu sendiri) dan tambahkan konfigurasi berikut:

$TTL    86400
@       IN      SOA     ns1.example.com. admin.example.com. (
                              2025031401 ; Serial
                              3600       ; Refresh
                              1800       ; Retry
                              1209600    ; Expire
                              86400 )    ; Minimum TTL
        IN      NS      ns1.example.com.
        IN      A       192.168.1.100
        IN      MX      10 mail.example.com.


ns1     IN      A       192.168.1.100
mail    IN      A       192.168.1.101

File ini menyatakan bahwa server DNS utama untuk example.com adalah ns1.example.com dengan alamat IP 192.168.1.100, dan mengatur catatan MX untuk server mail.


Mengonfigurasi Reverse DNS

Reverse DNS memungkinkan kamu untuk melakukan pencarian berdasarkan alamat IP, bukan nama domain. Ini berguna untuk berbagai alasan, seperti email, untuk memastikan alamat IP benar-benar terkait dengan nama domain yang sah.


Untuk mengonfigurasi reverse DNS, kamu perlu membuat file reverse lookup yang disebut dengan db.192 (untuk alamat IP di jaringan 192.168.1.x, misalnya). Kamu dapat mengedit atau membuat file baru di /etc/bind/db.192.168.1.

Mengaktifkan DNS Server


Setelah selesai mengonfigurasi server DNS, kita perlu mengaktifkan BIND9 dan memastikan bahwa server berjalan dengan baik. Untuk memulai layanan BIND9, jalankan perintah berikut:

sudo systemctl enable bind9
sudo systemctl start bind9

Menggunakan dig untuk Menguji Server DNS


dig adalah alat yang sangat berguna untuk menguji dan mendiagnosis masalah pada server DNS. Alat ini memberikan informasi tentang pencarian DNS, dan bisa digunakan untuk memeriksa berbagai jenis record DNS, misalnya A record (yang mengonversi nama domain ke IP address), MX record (untuk mail server), dan lainnya.


Berikut adalah beberapa cara menggunakan dig untuk menguji server DNS yang sudah kita konfigurasi:


Menggunakan dig untuk Memeriksa A Record

Perintah berikut digunakan untuk memeriksa A record dari domain example.com (yang menghubungkan nama domain ke alamat IP):

dig @localhost example.comdig @localhost example.com

Output yang diharapkan: Setelah menjalankan perintah ini, kamu seharusnya melihat alamat IP yang terkait dengan domain example.com, misalnya:

;; ANSWER SECTION:
example.com.        86400   IN      A       192.168.1.100

Di sini, 192.168.1.100 adalah alamat IP yang didefinisikan di zone file untuk domain tersebut. Jika output ini muncul, maka server DNS kamu berhasil merespons dengan informasi yang benar.


Memeriksa Record DNS Tertentu (Seperti MX, NS, atau TXT)

Selain A record, kamu juga bisa menggunakan dig untuk memeriksa jenis record lainnya, seperti MX record untuk mail server atau NS record untuk server nama.


Untuk MX record (Mail Exchange):

dig @localhost example.com MX

output yang di harapkan:

;; ANSWER SECTION:
example.com.        86400   IN      MX      10 mail.example.com.

Output ini menunjukkan server mail yang digunakan untuk domain example.com (misalnya mail.example.com).


Untuk NS record(Name Server)

dig @localhost example.com NS

output yang di harapkan:

;; ANSWER SECTION:
example.com.        86400   IN      NS      ns1.example.com.

Output ini menunjukkan server nama yang melayani domain example.com.


Memeriksa Record Reverse DNS (PTR Record)


Jika kamu mengonfigurasi reverse DNS (seperti yang dijelaskan sebelumnya dengan PTR record), kamu bisa memeriksanya dengan perintah berikut:

dig @localhost -x 192.168.1.100

-x 192.168.1.100: Ini adalah cara untuk memeriksa reverse lookup (mencari nama domain berdasarkan alamat IP).

output yang diharapkan:

;; ANSWER SECTION:
100.1.168.192.in-addr.arpa. 86400 IN PTR ns1.example.com.

Ini menunjukkan bahwa IP 192.168.1.100 terhubung dengan domain ns1.example.com.


Menggunakan dig dengan Opsi Tambahan

Untuk melihat informasi lebih lengkap tentang query DNS, kamu bisa menambahkan opsi +trace untuk melihat langkah-langkah yang dilalui oleh query DNS:

dig @localhost example.com +trace

Ini akan menampilkan bagaimana query DNS kamu diproses dari root server DNS hingga server DNS lokal.


Untuk memeriksa waktu respons dari server DNS, kamu bisa menggunakan opsi +stats:

dig @localhost example.com +stats

Ini akan menunjukkan statistik tambahan, termasuk waktu yang dibutuhkan untuk menyelesaikan query.

Keamanan Server DNS

Setelah server DNS berhasil berjalan, penting untuk menjaga keamanannya. Salah satu langkah pertama adalah memastikan bahwa firewall diatur dengan benar, hanya mengizinkan koneksi dari alamat yang sah. Kamu bisa menggunakan ufw (Uncomplicated Firewall) untuk mengatur ini.


Misalnya, untuk hanya mengizinkan akses DNS (port 53) dari alamat lokal, kamu bisa menjalankan:

sudo ufw allow from 127.0.0.1 to any port 53

Selain itu, penting juga untuk mengaktifkan DNSSEC untuk memastikan bahwa query DNS yang diterima dan dikirim oleh server adalah sah dan tidak dimanipulasi oleh pihak ketiga.

 
 
 

Comments


AKU NOVIL

Blog ini adalah hasil dari perjalanan belajar dan eksplorasi, semoga bisa menjadi sumber informasi yang bermanfaat dan inspiratif bagi semua pembaca.

UNESA (Universitas Negeri Surabaya)_edit
  • LinkedIn
  • Instagram
  • TikTok
  • Youtube
bottom of page