Konfigurasi Private DNS Server Menggunakan Unbound
Konfigurasi Private DNS Server Menggunakan Unbound. Oke di tutorial ini saya akan sharing sedikit bagaimana cara konfigurasi server DNS menggunakan Unbound. Kenapa saya memilih unbound dibanding bind9 adalah karena menurut saya pribadi untuk saat ini bind sudah terlalu usang, dan terlalu bloat juga bila dibanding dengan unbound.
Untuk konfigurasinya sendiri juga lebih simple dibanding dengan bind9.Oke langsung saja ya ke tutorial. Disini saya menggunakan VPS Ubuntu yang akan digunakan sebagai private DNS server.
Install Unbound
Unbound sudah tersedia di repository Ubuntu dan bisa langsung diinstall menggunakan apt.
sudo apt update && sudo apt install unbound -y
Seluruh file konfigurasi Unbound berlokasi di /etc/unbound. Namun sebelum ke konfigurasi, kita mengunduh root-hints terlebih dahulu. File ini berisi list primary root DNS servers. Unbound sebenarnya memiliki list primary root DNS server dalam kodenya, tetapi kita ingin memastikan bahwa kita memiliki salinan terbarunya. Kalian bisa mengupdate file ini secara berkala. Misalnya, enam bulan sekali.
wget https://www.internic.net/domain/named.root -O /var/lib/unbound/root.hints
Konfigurasi Unbound
Selanjutnya kalian bisa edit file /etc/unbound/unbound.conf.
Berikut konfigurasi yang saya gunakan. Sesuaikan sendiri di beberapa parameter yang perlu diubah.
server:
# IP interface yang digunakan. Bisa dicek menggunakan command "ip addr".
verbosity: 1
interface: 192.168.1.1
port: 53
# Mendefinisikan log unbound.
logfile: /var/log/unbound.log
log-queries: yes
# Enable or Disable
do-ip4: yes
do-ip6: no
do-udp: yes
do-tcp: yes
# Mengijinkan maupun memblokir client. Bisa menggunakan IP maupun subnet.
access-control: 10.0.0.0/8 allow
access-control: 127.0.0.0/8 allow
access-control: 192.168.0.0/16 allow
# Mendefinisikan lokasi file root.hints
root-hints: "/var/lib/unbound/root.hints"
# Memblokir query id.server, hostname.bind, version.server, version.bind.
hide-identity: yes
hide-version: yes
harden-glue: yes
harden-dnssec-stripped: yes
# https://tools.ietf.org/html/draft-vixie-dnsext-dns0x20-00
use-caps-for-id: yes
# Caching
cache-min-ttl: 3600
cache-max-ttl: 86400
# perform prefetching of close to expired message cache entries.
prefetch: yes
# Threading. Sesuaikan dengan jumlah CPU. Bisa dicek menggunakan perintah "nproc".
num-threads: 2
# Unbound tweaks
msg-cache-slabs: 8
rrset-cache-slabs: 8
infra-cache-slabs: 8
key-cache-slabs: 8
rrset-cache-size: 256m
msg-cache-size: 128m
so-rcvbuf: 1m
# End of unbound tweak.
# Private address untuk menghindari DNS Rebinding. Hanya boleh digunakan oleh private-domain.
private-address: 192.168.0.0/16
private-address: 172.16.0.0/12
private-address: 10.0.0.0/8
# Private-domain
private-domain: "linuxsec.lan"
unwanted-reply-threshold: 10000
do-not-query-localhost: no
# auto-trust-anchor-file: "/var/lib/unbound/root.key"
val-clean-additional: yes
# Memblokir Ads Server
local-zone: "doubleclick.net" redirect
local-data: "doubleclick.net A 127.0.0.1"
local-zone: "googlesyndication.com" redirect
local-data: "googlesyndication.com A 127.0.0.1"
local-zone: "googleadservices.com" redirect
local-data: "googleadservices.com A 127.0.0.1"
local-zone: "google-analytics.com" redirect
local-data: "google-analytics.com A 127.0.0.1"
local-zone: "ads.youtube.com" redirect
local-data: "ads.youtube.com A 127.0.0.1"
local-zone: "adserver.yahoo.com" redirect
local-data: "adserver.yahoo.com A 127.0.0.1"
local-zone: "ask.com" redirect
local-data: "ask.com A 127.0.0.1"
#include: "/etc/unbound/unbound_ad_servers"
# Contoh zones di local network.
local-zone: "linuxsec.lan." static
local-data: "firewall.linuxsec.lan. IN A 10.0.0.1"
local-data-ptr: "10.0.0.1 firewall.linuxsec.lan"
# Unbound can query your NSD or BIND server for private domain queries too.
# On our NSD page we have NSD configured to serve the private domain,
# "home.lan". Here we can tell Unbound to connect to the NSD server when it
# needs to resolve a *.home.lan hostname or IP.
#
# private-domain: "home.lan"
# local-zone: "0.0.10.in-addr.arpa." nodefault
# stub-zone:
# name: "home.lan"
# stub-addr: 10.0.0.111@53
# If you have an internal or private DNS names the external DNS servers can
# not resolve, then you can assign domain name strings to be redirected to a
# seperate dns server. For example, our comapny has the domain
# organization.com and the domain name internal.organization.com can not be
# resolved by Google's public DNS, but can be resolved by our private DNS
# server located at 1.1.1.1. The following tells Unbound that any
# organization.com domain, i.e. *.organization.com be dns resolved by 1.1.1.1
# instead of the public dns servers.
#
# forward-zone:
# name: "organization.com"
# forward-addr: 1.1.1.1 # Internal or private DNS
# Use the following forward-zone to forward all queries to Google DNS,
# OpenDNS.com or your local ISP's dns servers for example. To test resolution
# speeds use "drill calomel.org @8.8.8.8" and look for the "Query time:" in
# milliseconds.
#
# Query DNS akan diteruskan ke server berikut, dan jika gagal baru akan dikembalikan ke root DNS.
forward-zone:
name: "."
forward-addr: 1.1.1.1@53#one.one.one.one
forward-addr: 8.8.8.8@53#dns.google
forward-addr: 9.9.9.9@53#dns.quad9.net
forward-addr: 1.0.0.1@53#one.one.one.one
forward-addr: 8.8.4.4@53#dns.google
forward-addr: 149.112.112.112@53#dns.quad9.net
# EOF
Selanjutnya, buat file log di direktori /var/log dan pastikan usernya adalah unbound.sudo touch /var/log/unbound.log
sudo chown unbound: /var/log/unbound.log
sudo service unbound restart
unbound-control status
/var/log/unbound.log {
su root root
daily
missingok
rotate 10
compress
copytruncate
notifempty
create 0644 unbound unbound
postrotate
systemctl restart unbound
endscript
}

Posting Komentar untuk "Konfigurasi Private DNS Server Menggunakan Unbound"
Posting Komentar
Silahkan tinggalkan komentar jika ada masukan, pertanyaan, kritik ataupun dukungan. Namun pastikan untuk berkomentar secara sopan.