Cara Konfigurasi Server DNS BIND untuk PFSense

· 2 min read

Di PFSense terdapat banyak sekali layanan aplikasi DNS yang dapat Anda gunakan, seperti Unbound dan DNS Forwarding. Namun, pada artikel ini kami khusu

Firewall PFSense memiliki banyak fungsi, tugasnya tidak hanya sebagai router yang menyediakan layanan internet bagi klien. Dengan berbagai fitur yang dimilikinya, fungsi PFSense dapat ditingkatkan. Sebab, banyak plugin bawaan FreeBSD yang telah dimodifikasi oleh PFSense, seperti server DNS ISC-Bind.

Keberadaan plugin ISC-Bind dapat dirasakan oleh pengguna PFSense yang memiliki jaringan internet lambat. Dengan bantuan server DNS yang mampu melakukan caching dan melayani name server, kecepatan internet Anda akan meningkat. Sebab, setiap klien yang mengakses internet dari PFSense Anda tidak lagi mencari server DNS, hanya database PFSense yang melayani permintaan DNS.

Di PFSense terdapat banyak sekali layanan aplikasi DNS yang dapat Anda gunakan, seperti Unbound dan DNS Forwarding. Namun, pada artikel ini kami khususkan untuk menjelaskan secara detail proses instalasi dan konfigurasi server DNS ISC-Bind. Tidak hanya itu, artikel ini juga membahas layanan name server yang dapat dimanfaatkan oleh server DHCP.

1. Konfigurasi Dasar

Sebelum kita melangkah lebih jauh, tentang cara memasang dan mengonfigurasi ISC-Bind, langkah pertama yang harus Anda lakukan adalah mengatur nama host dan resolver PFsense.


informasi sistem pfsense


Setelah itu, Anda lanjutkan dengan mengklik menu System ->> General Setup. Silakan atur sesuai dengan spesifikasi komputer PFSense Anda. Untuk lebih jelasnya, lihat gambar di bawah ini.


general setup pfsense


Yang perlu diperhatikan di sini adalah "DNS Resolution Behavior", jangan sampai salah pilih. Untuk pengaturan lainnya, biarkan saja default.

2. Instal DNS server ISC-Bind

Jika Anda menggunakan ISC-Bind sebagai server yang melayani permintaan DNS, PFSense menyediakan kemudahan. Mengapa?, karena PFSense telah menyediakan repositori resmi ISC-Bind. Repositori tersebut diambil dari repositori FreeBSD, tetapi telah dimodifikasi agar dapat digunakan di PFSense. Oke, sekarang kita langsung saja install ISC-Bind, klik System ->> Package Manager >>> Available Packages. Kemudian cari aplikasi bind, lanjutkan dengan menekan tombol Install berwarna hijau.

Setelah proses instalasi selesai, saatnya untuk mulai melakukan konfigurasi. Kita mulai dengan mengklik Services ->> Bind DNS Server. Untuk pengaturannya, Anda dapat melihat gambar berikut.


bind setting pfsense



bind setting pfsense2


bind setting pfsense3


Pada gambar di atas, yang perlu Anda garis bawahi adalah pengaturan pada opsi "Forwarder IPs" dan "Custom Options". Untuk mengatur "Custom Options", Anda ketikkan skrip di bawah ini.

Custom Options
allow-query { localnets; };
allow-query-cache { localnets; };
allow-transfer { none; };
empty-zones-enable yes;
auth-nxdomain no;
Setelah itu kita lanjut ke pengaturan "ACL". Hapus semua "ACL" bawaan Bind PFSense. Kemudian Anda buat "ACL" baru. Ikuti petunjuk yang kami jelaskan pada gambar untuk membuat "ACL" baru. Dalam contoh ini, kita akan membuat dua ACL:
  1. localnets,
  2. localhosts.

bind acls pfsense


edit bind acls pfsense


Langkah selanjutnya adalah membuat pengaturan di "Views". Lihat gambar di bawah untuk panduan pengaturan "Views".

bind general option



3. Setup Zones

Langkah terakhir adalah mengatur "Zones". Kita akan membuat 4 Zones, yaitu kursor.my.id, localhost, 7.168.192.in-addr.arpa dan 127.in-addr.arpa.

a. Zone kursor.my.id

Zone Name: kursor.my.id
Zone Type: Master
View: dnspfsense
Name Server: ns5.kursor.my.id


pfsense zona domain



b. Zone localhost

Zone Name: localhost
Zone Type: Master
View: dnspfsense
Name Server: ns5.localhost
allow-transfer: localhosts


zona domain record pfsense


c. Zone 7.168.192.in-addr.arpa

Zone Name: 7.168.192.in-addr.arpa
Zone Type: Master
View: dnspfsense
Name Server: ns5.kursor.my.id


pfsense domain zone


d. Zone 127.in-addr.arpa

Zone Name: 127.in-addr.arpa
Zone Type: Master
View: dnspfsense
Name Server: ns5.localhost
allow-transfer: localhosts


record zna domain


4. Test Zones

Bagian ini juga sangat penting, karena kita akan memeriksa setiap zona untuk melihat apakah zona tersebut dapat memuat nomor seri. Sebelum kita memeriksa zona tersebut, buatlah symlink terlebih dahulu dengan perintah di bawah ini.

Create symlink
[2.7.2-RELEASE][root@ns5.kursor.my.id]/root: ln -s /var/etc/named/etc/namedb /etc
Kita akan memeriksa berkas konfigurasi utama terlebih dahulu, yaitu named.conf. Jalankan perintah berikut untuk memeriksa berkas named.conf.

Check named.conf
[2.7.2-RELEASE][root@ns5.kursor.my.id]/root: named-checkconf /etc/namedb/named.conf
Setelah itu, periksa setiap zona. Jalankan perintah di bawah ini untuk memeriksa zona tersebut.

Check kursor.my.id zone
[2.7.2-RELEASE][root@ns5.kursor.my.id]/root: named-checkzone kursor.my.id /etc/namedb/master/dnspfsense/kursor.my.id.DB
zone kursor.my.id/IN: loaded serial 2714365806
OK
Check 7.168.192.in-addr.arpa zone
[2.7.2-RELEASE][root@ns5.kursor.my.id]/root: named-checkzone 7.168.192.in-addr.arpa /etc/namedb/master/dnspfsense/7.168.192.in-addr.arpa.DB
zone 7.168.192.in-addr.arpa/IN: loaded serial 2714374177
OK
Check localhost zone
[2.7.2-RELEASE][root@ns5.kursor.my.id]/root: named-checkzone localhost /etc/namedb/master/dnspfsense/localhost.DB
zone localhost/IN: loaded serial 2714373907
OK
Check 127.in-addr.arpa zone
[2.7.2-RELEASE][root@ns5.kursor.my.id]/root: named-checkzone 127.in-addr.arpa /etc/namedb/master/dnspfsense/127.in-addr.arpa.DB
zone 127.in-addr.arpa/IN: loaded serial 2714374263
OK

5. Cara Test Bind DNS Server

Setelah kita memeriksa semua zona dan tidak ada masalah, saatnya untuk memeriksa server DNS BIND. Kita akan menggunakan perintah dig dan nslookup untuk memeriksa BIND. Jalankan perintah berikut untuk memeriksa Server DNS BIND.

Check BIND
[2.7.2-RELEASE][root@ns5.kursor.my.id]/root: dig yahoo.com

; <<>> DiG 9.18.19 <<>> yahoo.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 25968
;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; COOKIE: 6c557890f8ed5b2401000000662f72862924cfbb3f954331 (good)
;; QUESTION SECTION:
;yahoo.com.			IN	A

;; ANSWER SECTION:
yahoo.com.		1800	IN	A	74.6.143.26
yahoo.com.		1800	IN	A	98.137.11.164
yahoo.com.		1800	IN	A	74.6.231.21
yahoo.com.		1800	IN	A	98.137.11.163
yahoo.com.		1800	IN	A	74.6.143.25
yahoo.com.		1800	IN	A	74.6.231.20

;; Query time: 34 msec
;; SERVER: 192.168.7.1#53(192.168.7.1) (UDP)
;; WHEN: Mon Apr 29 10:12:22 UTC 2024
;; MSG SIZE  rcvd: 162
Check BIND
[2.7.2-RELEASE][root@ns5.kursor.my.id]/root: nslookup google.com
Server:		192.168.7.1
Address:	192.168.7.1#53

Non-authoritative answer:
google.com	canonical name = forcesafesearch.google.com.
Name:	forcesafesearch.google.com
Address: 216.239.38.120
Name:	forcesafesearch.google.com
Address: 2001:4860:4802:32::78

6. Buat DNS Dinamis Untuk Server DHCP

Setelah memastikan bahwa server DNS BIND Anda berjalan normal di mesin PFSense, kita lanjutkan dengan membuat "Dynamic DNS". Untuk melakukannya, klik Services ->> DHCP Server. Untuk lebih mudah menjelaskannya, silakan lihat gambar di bawah ini.


lan general dhcp pfsense


pfsense bind dns


dynamic dns pfsense

7. Skrip yang Dihasilkan oleh Server DNS BIND PFSense

Agar artikel ini lengkap dan dapat menjadi bahan pembelajaran bagi Anda, berikut ini kami lampirkan contoh skrip server DNS BIND.

/var/etc/named/etc/namedb/named.conf
#Bind pfsense configuration
#Do not edit this file!!!

 key "rndc-key" {
 	algorithm hmac-sha256;
 	secret "4vgWNftJMHE59MIczVG+I0OkMTAE0GHGi1TNQmgbv/4=";
 };

 controls {
 	inet 127.0.0.1 port 8953
 		allow { 127.0.0.1; } keys { "rndc-key"; };
 };



options {
	directory "/etc/namedb";
	pid-file "/var/run/named/pid";
	statistics-file "/var/log/named.stats";
	max-cache-size 256M;
	dnssec-validation yes;

	listen-on-v6 port 53 { none; };
	listen-on port 53 { 192.168.7.1;  };
	forwarders { 1.1.1.1; 8.8.8.8; };
	allow-query { localnets; };
	allow-query-cache { localnets; };
	allow-transfer { none; };
	empty-zones-enable yes;
	auth-nxdomain no;
};

logging { category default { null; }; };

acl "localhosts" {
	127.0.0.1;
};

view "dnspfsense" { 
	recursion yes;
	match-clients { localnets; localhosts; };
	allow-recursion { localnets; localhosts; };

	zone "kursor.my.id" {
		type master;
		file "/etc/namedb/master/dnspfsense/kursor.my.id.DB";
		allow-query { none; };
		allow-transfer { none; };
		allow-update { none; };
	};

	zone "localhost" {
		type master;
		file "/etc/namedb/master/dnspfsense/localhost.DB";
		allow-query { none; };
		allow-transfer { localhosts; };
		allow-update { none; };
	};

	zone "7.168.192.in-addr.arpa" {
		type master;
		file "/etc/namedb/master/dnspfsense/7.168.192.in-addr.arpa.DB";
		allow-query { none; };
		allow-transfer { none; };
		allow-update { none; };
	};

	zone "127.in-addr.arpa" {
		type master;
		file "/etc/namedb/master/dnspfsense/127.in-addr.arpa.DB";
		allow-query { none; };
		allow-transfer { localhosts; };
		allow-update { none; };
	};

};
/var/etc/named/etc/namedb/master/dnspfsense/kursor.my.id.DB
$TTL 43200
;
$ORIGIN kursor.my.id.

;	Database file kursor.my.id.DB for kursor.my.id zone.
;	Do not edit this file!!!
;	Zone version 2714365806
;
kursor.my.id.	 IN  SOA ns5.kursor.my.id. 	 zonemaster.kursor.my.id. (
		2714365806 ; serial
		1d ; refresh
		2h ; retry
		4w ; expire
		1h ; default_ttl
		)

;
; Zone Records
;
@ 	 IN NS 	ns5.kursor.my.id.
ns5 	 IN A  	192.168.7.1
/var/etc/named/etc/namedb/master/dnspfsense/7.168.192.in-addr.arpa.DB
$TTL 43200
;
$ORIGIN 7.168.192.in-addr.arpa.

;	Database file 7.168.192.in-addr.arpa.DB for 7.168.192.in-addr.arpa zone.
;	Do not edit this file!!!
;	Zone version 2714374177
;
7.168.192.in-addr.arpa.	 IN  SOA ns5.kursor.my.id. 	 zonemaster.7.168.192.in-addr.arpa. (
		2714374177 ; serial
		1d ; refresh
		2h ; retry
		4w ; expire
		1h ; default_ttl
		)

;
; Zone Records
;
@ 	 IN NS 	ns5.kursor.my.id.
100 	 IN PTR  	ns5.kursor.my.id.
/var/etc/named/etc/namedb/master/dnspfsense/localhost.DB
$TTL 43200
;
$ORIGIN localhost.

;	Database file localhost.DB for localhost zone.
;	Do not edit this file!!!
;	Zone version 2714373907
;
localhost.	 IN  SOA ns5.localhost. 	 zonemaster.localhost. (
		2714373907 ; serial
		1d ; refresh
		2h ; retry
		4w ; expire
		1h ; default_ttl
		)

;
; Zone Records
;
@ 	 IN NS 	ns5.localhost.
ns5 	 IN A  	127.0.0.1
/var/etc/named/etc/namedb/master/dnspfsense/127.in-addr.arpa.DB
$TTL 43200
;
$ORIGIN 127.in-addr.arpa.

;	Database file 127.in-addr.arpa.DB for 127.in-addr.arpa zone.
;	Do not edit this file!!!
;	Zone version 2714374263
;
127.in-addr.arpa.	 IN  SOA ns5.localhost. 	 zonemaster.127.in-addr.arpa. (
		2714374263 ; serial
		1d ; refresh
		2h ; retry
		4w ; expire
		1h ; default_ttl
		)

;
; Zone Records
;
@ 	 IN NS 	ns5.localhost.
1.0.0 	 IN PTR  	localhost.
Saat ini Anda memiliki server DNS BIND di mesin PFSense. Anda dapat merasakan kecepatan internet dengan server DNS BIND. Mungkin, Anda merasa puas sekarang, karena internet Anda tidak lambat.
Subscribe on LinkedIn Cara Konfigurasi Server DNS BIND untuk PFSense

Enclosures Link: Cara Konfigurasi Server DNS BIND untuk PFSense

Silahkan Berkomentar, Kakak...! Bunda...!

Posting Komentar