MENU

Blog ini ane buat catatan aja biar gak lupa. Semoga catatan ini bisa bermanfaat juga buat yang mengunjungi dan membaca Blog ini . Terima kasih

MEMBUAT DNS SERVER DENGAN BIND9 DI UBUNTU SERVER 24.04.4 LTS noble


Informasi dasar

    - IP PC server DNS: 192.168.15.81
    - Jaringan lokal: 192.168.15.0/24
    - Root hints: menggunakan file /usr/share/dns/root.hints.
    - OS menggunakan UBUNTU Server 24
    - domain : nocgc.com (ini contoh aja)

secara default untuk merubah IP di ubuntu server menggunakan netplan disini tidak menggunakan network manager atau yang lainnya untuk merubah ip
karna kalau netplan dan network manager aktif tejadi ip akan berubah ubah

Konfigurasi IP Statik Netplan
ip addr

di pc saya terbaca ens33 jadi sesuaikan saja sesuai pc ente ya

masuk ke netplan
cd /etc/netplan

liat isi nya di pc saya terbaca 50-cloud-init.yaml
ls

baru ubah ip menjadi statik
sudo nano /etc/netplan/50-cloud-init.yaml

Isi:

network:
    version: 2
    ethernets:
       ens33:
          dhcp4: false
          dhcp6: false
          addresses:
              - 192.168.15.81/24
        routes:
              - to: default
                via: 192.168.15.1
        nameservers:
              addresses:
                  - 8.8.4.4
                  - 1.1.1.1

simpan perubahan ctrl + x lalu y

simpan netplan
sudo netplan apply

Atur Hostname ini bebas ya. hostname pc noc-server
sudo hostnamectl set-hostname noc-server

atur hosts
sudo nano /etc/hosts

isi di sesuaikan ya
127.0.0.1       localhost
192.168.15.81  noc-server.nocgc.com noc-server 

Baris di /etc/hosts memang bisa terlihat panjang, tapi formatnya memang seperti itu. Setiap baris berisi:
IP_ADDRESS       hostname_FQDN           hostname_alias
192.168.15.81     noc-server.nocgc.com     noc-server 

sebelum lanjut install bind9 matikan systemd-resolve agar tidak bentrok dengan bind9 yang sama sama menggunakan port 53
sudo systemctl disable --now systemd-resolved

cek untuk memastikan systemd-resolved sudah tidak aktif
systemctl status systemd-resolved

Baru hapus symlink /etc/resolv.conf tapi cek dulu:
ls -l /etc/resolv.conf

Beikut hasil contoh kondisi masih symlink 
/etc/resolv.conf -> ../run/systemd/resolve/stub-resolv.conf

baru hapus symlink nya
sudo rm /etc/resolv.conf

Buat /etc/resolv.conf baru
sudo nano /etc/resolv.conf

isi seperti berikut
nameserver 127.0.0.1

kalau sudah tekan ctrl+x lalu y enter

coba cek lagi harusnya sudah tidak symlink /etc/resolv.conf -> ../run/systemd/resolve/stub-resolv.conf tapi menjadi  -rw-r--r-- 1 root root 58 Jul 15 10:53 /etc/resolv.conf
ls -l /etc/resolv.conf

sampai pada tahap ini systemd-resolve sudah tidak aktif dan alasan di non aktifkan karna nanti kita akan menggunakan bind9 sebagai dns resolver nya jadi kalau dua-duanya aktif bisa bentrok untuk port nya karna sama sama menggunakan port 53

lanjut cek nama host pc, contoh disini noc-server 
hostname

Cek FQDN biasanya default masih sama dengan hostname di atas sebelumya
hostname -f

Sekarang lanjut konfig /etc/hosts
sudo nano /etc/hosts

isi seperti berikut
127.0.0.1       localhost
192.168.15.81  noc-server.nocgc.com noc-server

kalau simpan tekan ctrl+x lalu y kemudian enter

Penjelasan
IP-address     canonical/ FQDN         alias1 
192.168.15.81     noc-server.nocgc.com     noc-server 
ini sebagai identitas bahwa dns ini di kelola oleh noc-server.nocgc.com. 
untuk nocgc.com bebas ya tergantung mau di buat apa nama nya 

Cek FQDN setelah hosts di konfig harusnya jadi 
noc-server.nocgc.com

lanjut lagi sekarang install bind9
sudo apt update
sudo apt install bind9 bind9-utils dnsutils -y

cek untuk memastikan bind9 sudah running
sudo systemctl status bind9

sekarang kita ke directory bind9
cd /etc/bind

liat isi didalam folder bind
ls
biasanya akan ada file seperti berikut
bind.keys  db.127  db.empty  db.local      named.conf.default-zones  named.conf.options      rndc.key
db.0       db.255   named.conf  named.conf.local     zones.rfc1918

karna kita akan konfig di dalam file named.conf.options tapi sebelum nya kita backup dulu file aslinya 
agar kalo nanti ada masalah bisa di restore file nya
cp named.conf.options named.conf.options.bak

liat kembali isi didalam folder bind dengan perintah ls harusnya sekarang ada nambah 1 file lagi dengan nama named.conf.options.bak

sekarang lanjut konfig isi seperti berikut
sudo nano named.conf.options

isi sperti berikut

options {

    directory "/var/cache/bind";

    recursion yes;

    allow-recursion {
        127.0.0.1;
        192.168.15.0/24;
    };

    allow-query {
        127.0.0.1;
        192.168.15.0/24;
    };

    listen-on {
        127.0.0.1;
        192.168.15.81;
    };

    dnssec-validation auto;

    // tidak menggunakan forwarder
    forwarders {};

    max-cache-ttl 86400;
    max-ncache-ttl 3600;
};

Penjelasan
recursion yes;
Mengaktifkan kemampuan BIND menjadi recursive resolver. maksudnya ketika client bertanya misal www.google.com ke DNS server, 
maka DNS server yang mencari jawabannya ke DNS lain. alurnya :

PC Client
    |
    | tanya www.google.com
    |
    v
DNS Server Anda
    |
    | cari ke DNS root
    |
    v
DNS Google
    |
    v
Jawaban kembali ke client

lanjut ke
allow-recursion {
    127.0.0.1;
    192.168.15.0/24;
};

ini Fungsinya utk menentukan siapa saja yang boleh menggunakan recursive DNS. 
127.0.0.1 Artinya server DNS sendiri boleh bertanya dan Semua client jaringan lokal 192.168.15.0/24 dalam segment yang sama boleh

Lanjut lagi
allow-query {
        127.0.0.1;
        192.168.15.0/24;
    };

fungsinya utk Menentukan siapa yang boleh bertanya ke DNS server 

lanjut lagi
dnssec-validation auto;

fungsinya untuk Mengaktifkan validasi DNSSEC secara otomatis dan juga memastikan jawaban DNS tidak dimanipulasi.

lanjut lagi 
  forwarders {};

artinya DNS server kita akan bertanya langsung ke root.hint

lanjut lagi 
max-cache-ttl 86400; (jika user tanya google.com dan ada record maka akan di simpan di dalam cache selama 24 jam saja)
max-ncache-ttl 3600; (jika user tanya abxkns.com  dan ada record maka akan di simpan di dalam cache selama 1 jam saja)

Sekarang lanjut buat Forward Zone dengan nama db.nocgc.com
sudo nano /etc/bind/db.nocgc.com


$TTL 604800

@       IN      SOA     noc-server.nocgc.com. admin.nocgc.com. (
                              1
                         604800
                          86400
                        2419200
                         604800 )

@       IN      NS      noc-server.nocgc.com.

noc-server      IN      A       192.168.15.81
@                   IN      A       192.168.15.81


lanjut Buat Reverse Zone dengan nama db.gc 
sudo nano /etc/bind/db.gc

Isinya

$TTL 604800

@       IN      SOA     noc-server.nocgc.com. admin.nocgc.com. (
                              1
                         604800
                          86400
                        2419200
                         604800 )

@       IN      NS      noc-server.nocgc.com.

81      IN      PTR     nocgc.com.


Daftarkan Zone BIND dengan nama file gandaria 
sudo nano /etc/bind/gandaria

Isinya 

zone "nocgc.com" {
    type master;
    file "/etc/bind/db.nocgc.com";
};


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

lanjut untuk menambahkan include File Zone

sudo nano /etc/bind/named.conf

Tambahkan: include "/etc/bind/gandaria";

Contoh:
include "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.local";
include "/etc/bind/named.conf.default-zones";
include "/etc/bind/gandaria";

Cek Konfigurasi
sudo named-checkconf 
hasilnya Tidak boleh ada output.

Cek forward zone:
sudo named-checkzone nocgc.com /etc/bind/db.nocgc.com

Hasilnya:
zone nocgc.com/IN: loaded serial 1
OK

Cek reverse zone
sudo named-checkzone 15.168.192.in-addr.arpa /etc/bind/db.gc

Hasilnya :
zone 15.168.192.in-addr.arpa/IN: loaded serial 1
OK

Restart BIND9
sudo systemctl restart bind9

Cek Port DNS
sudo ss -tulpn | grep :53

Harus muncul:
192.168.15.81:53
127.0.0.1:53

Cek Zone Sudah Aktif
sudo rndc zonestatus nocgc.com

Hasil:
name: nocgc.com
type: primary
file: /etc/bind/db.nocgc.com

Reverse:
sudo rndc zonestatus 15.168.192.in-addr.arpa

Tidak ada komentar:

Posting Komentar

Komen yang bae-bae aja