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