wiki.100indie.org

Buat DNS Server Pakai NSD dan Unbound di OpenBSD

Permulaan

Belum afdol selfhosting kalau melewatkan membuat server DNS sendiri. Beruntung ada kombo nsd dan dovecot yang gampang banget, terutama di OpenBSD.

Cara Setup NSD

Karena NSD adalah paket bawaan, kita tidak perlu mengunduh.

Buka konfigurasi NSD dengan keadaan root. Sesuaikan dengan keadaan server kamu.

$ doas vim /var/nsd/etc/nsd.conf
---
server:
        hide-version: yes
        verbosity: 2
        database: "" # disable database
        username: _nsd
        logfile: "/var/log/nsd.log"
        ip-address: 192.168.1.10
remote-control:
        control-enable: yes
        control-interface: /var/run/nsd.sock
zone:
       name: "domain.com"
       zonefile: "master/domain.com"

Lalu, buatlah zone baru untuk domain kamu seperti ini.

$ doas vim /var/nsd/zones/master/domain.com
---
$TTL 86400
@    IN    SOA   ns1.domain.com. admin.domain.com. (
              2023082201 ; Serial
              3600       ; Refresh
              1800       ; Retry
              1209600    ; Expire
              86400 )    ; Minimum TTL

     IN    NS    ns1.domain.com.
     IN    NS    ns2.domain.com.

www  IN    A     192.0.2.1

Terakhir, jalankan layanan nsd.

$ doas rcctl enable nsd
$ doas rcctl start nsd

Cara Setup Unbound

Selanjutnya kita setup juga Unbound.

Pertama, unduh dulu berkas Root Anchor dari IANA.

$ doas unbound-anchor -a "/var/unbound/db/root.key"

Kalau udah, lanjut konfigurasi Unbound-nya.

$ doas vim /var/unbound/etc/unbound.conf
---
server:
        interface: 127.0.0.1
        interface: ::1

        access-control: 0.0.0.0/0 refuse
        access-control: 127.0.0.0/8 allow
        access-control: ::0/0 refuse
        access-control: ::1 allow

        hide-identity: yes
        hide-version: yes
        auto-trust-anchor-file: "/var/unbound/db/root.key"
        val-log-level: 2

        aggressive-nsec: yes

remote-control:
        control-enable: yes
        control-interface: /var/run/unbound.sock

Lalu, atur berkas resolv agar berhasil query.

nameserver 127.0.0.1
lookup file bind

Jalankan unboundnya dan selesai!

$ doas rcctl enable unbound
$ doas  rcctl start unbound

Terakhir, kita atur glue records pada domain kita pada panel domain.

Nameserver 1: ns1.domain.com
Nameserver 2: ns2.domain.com