Konfigurasi DNSCrypt Proxy Dengan Unbound di Router PFSense

· 2 min read

Dnscrypt-proxy adalah aplikasi gratis dan open source yang mendukung protokol seperti DNSCrypt v2 dan DNS-over-HTTPS (DoH) yang dapat mencegah spoofin

Proksi DNSCrypt adalah protokol yang mengautentikasi komunikasi antara klien DNS dan resolver DNS. Proksi DNSCrypt dapat mencegah pemalsuan DNS, karena menggunakan tanda tangan kriptografi untuk memverifikasi bahwa respons berasal dari resolver DNS yang dipilih dan belum dirusak.

Secara sederhana, proksi DNSCrypt adalah perangkat lunak ringan yang memungkinkan pengguna untuk berkomunikasi daring secara pribadi, tanpa masalah keamanan. Karena ia melakukannya dengan mengambil semua lalu lintas yang melewati antara pengguna dan server DNS dan mengenkripsinya, dan pada gilirannya, menghentikan gangguan berbahaya, yang mencegah serangan peretas.

Spesifikasi Sistem

OS: PFSense 2.6.0-RELEASE (amd64)
CPU Type : Intel(R) Core(TM)2 Duo CPU E8400 @ 3.00GHz
IP LAN: 192.168.9.1/24
IP & Port Unbound : 127.0.0.1@53
IP & Port Port DNSCrypt proxy : 127.0.0.1@5300


Untuk menginstal dan mengkonfigurasi proxy Unbound dan DNSCrypt pada router PFSense, hal pertama yang harus dilakukan adalah mengatur menu pengaturan umum, klik menu System >> General Setup. Pada menu ini, yang harus Anda atur adalah Hostname, Domain, DNS Servers dan DNS Resolution Behavior.

Yang perlu Anda perhatikan adalah DNS Servers harus kosong dan DNS Resolution Behavior = Gunakan DNS lokal (127.0.0.1), abaikan DNS Servers jarak jauh.


Konfigurasi Unbound DNS Server

Unbound merupakan program atau paket bawaan yang telah disediakan oleh PFSense, jadi kita tidak perlu menginstal Unbound, PFSense telah menyediakannya, yang perlu kita lakukan hanyalah melakukan pengaturan Unbound.

Untuk melakukan konfigurasi Unbound, klik menu Services >> DNS Resolver lalu pilih General Settings.

Enable DNS resolver = Checklist
Listen Port = 53
Network Interfaces = LANWIFI dan Localhost
Outgoing Network Interfaces = WANINDIHOME
System Domain Local Zone Type = Transparent
Enable DNSSEC Support = Checklist
Register DHCP leases in the DNS Resolver = Checklist
Register DHCP static mappings in the DNS Resolver = Checklist
Custom options =
do-not-query-localhost: no
forward-zone:
name: "."
forward-addr: 127.0.0.1@5300


Setelah itu, klik tombol Save. Yang perlu diperhatikan adalah mengisi opsi Custom. IP 127.0.0.1@5300 merupakan IP proxy DNSCrypt, artinya Unbound DNS Server akan diteruskan ke proxy server DNSCrypt. Setelah itu, klik menu Advanced Settings. Isi sesuai petunjuk berikut:

Hide Identity = Checklist
Hide Version = Checklist
Query Name Minimization = Checklist
Prefetch Support = Checklist
Prefetch DNS Key Support = Checklist
Harden DNSSEC Data = Checklist

Yang lainnya dibiarkan sebagai default atau kosong. Lihat gambar berikut untuk mengisi menu Pengaturan Lanjutan.

Setelah semuanya terisi, klik tombol Simpan, dan konfigurasi Unbound selesai. Sekarang kita lanjutkan untuk membahas proksi DNSCrypt.


Proses Instalsi dan Konfigurasi DNSCrypt proxy

Proxy DNSCrypt merupakan proxy DNS yang fleksibel, dengan dukungan protokol DNS terenkripsi modern seperti DNSCrypt v2, DNS-over-HTTPS, Anonymous DNSCrypt, dan ODoH (Oblivious DoH).

Proxy DNSCrypt tidak tersedia dalam paket PFSense, proxy DNSCrypt tersedia dalam repositori FreeBSD. Untuk menginstal proxy DNSCrypt pada PFSense kita harus menginstalnya dari repositori FreeBSD.

Langkah pertama untuk menginstal dnscrypt-proxy2, kita aktifkan terlebih dahulu server SSH pada PFSense. Caranya adalah dengan mengklik menu System >> Advanced >> Admin Access lalu centang Secure Shell Server. Agar lebih jelas.

Setelah server SSH aktif, kita masuk ke command line PFSense melalui konsol Putty. Ketik LANWIFI IP: 192.168.9.1 lalu klik open. Setelah itu kita diminta memasukkan user dan password PFSense.
Setelah gambar di atas muncul, tekan angka 8, kita akan diarahkan ke menu command line, setelah itu ketik pkg install dnscrypt-proxy2.


Install dnscrypt-proxy2
[2.7.2-RELEASE][root@nspfSense.unixwinbsd.site]/root: pkg install dnscrypt-proxy2
Tunggu hingga proses instalasi selesai.

Setelah itu, ketik cd /usr/local/etc/rc.d dan ubah file dnscrypt-proxy menjadi dnscrypt-proxy.sh (dengan akhiran "sh"). Untuk melakukannya, ketik mv dnscrypt-proxy /usr/local/etc/rc.d/dnscrypt-proxy.sh, lalu HAPUS semua isi file dnscrypt-proxy.sh dan ganti dengan skrip berikut.

#!/bin/sh

# PROVIDE: dnscrypt_proxy
# REQUIRE: cleanvar SERVERS
# BEFORE: unbound

. /etc/rc.subr

name=dnscrypt_proxy
procname=/usr/local/bin/dnscrypt-proxy
pidfile=/var/run/${name}.pid
load_rc_config $name

command=/usr/sbin/daemon
command_args="-p ${pidfile} -f ${procname} -config /usr/local/etc/dnscrypt-proxy/dnscrypt-proxy.toml -syslog"


run_rc_command "$1"

After that, enter the script below in the rc.conf file. How to type ee /etc/rc.conf.


dnscrypt_proxy_enable="YES"
dnscrypt_proxy_conf="/usr/local/etc/dnscrypt-proxy/dnscrypt-proxy.toml"
dnscrypt_proxy_pidfile="/var/run/dnscrypt_proxy.pid"

Kemudian buat file dnscrypt_relaunch.sh di folder /usr/local/bin, how to type
ee /usr/local/bin/dnscrypt_relaunch.sh dan masukkan script di bawah ini.


#/usr/bin/env sh
service /usr/local/etc/rc.d/dnscrypt-proxy.sh status > /dev/null
if [ $? != 0 ]; then
service /usr/local/etc/rc.d/dnscrypt-proxy.sh restart
fi


Edit file crontab di GUI WEB PFSense, ketik Services >> Cron >> menu Settings lalu klik tombol Add di bagian bawah.

Setelah semuanya selesai, klik tombol Save.
Langkah berikutnya, edit file dnscrypt-proxy.toml yang ada di folder /usr/local/etc/dnscrypt-proxy. Untuk mengedit file, ketik ee /usr/local/etc/dnscrypt-proxy/dnscrypt-proxy.toml.

Kemudian HAPUS SEMUA file scrypt dnscrypt-proxy.toml dan ganti dengan skrip berikut.

server_names = ['cloudflare', 'cloudflare-ipv6']
listen_addresses = ['127.0.0.1:5300', '[::1]:5300']
max_clients = 300
force_tcp = false
timeout = 2000
keepalive = 30
bootstrap_resolvers = ['1.1.1.1:53','8.8.8.8:53', '9.9.9.9:53']
ignore_system_dns = true
netprobe_timeout = 30
cache = true
cache_size = 512
cache_min_ttl = 30
cache_max_ttl = 900
cache_neg_min_ttl = 10
cache_neg_max_ttl = 300
dnscrypt_servers = true


[sources]


## An example of a remote source from https://github.com/DNSCrypt/dnscrypt-resolvers


[sources.'public-resolvers']
urls = ['https://raw.githubusercontent.com/DNSCrypt/dnscrypt-resolvers/master/v3/public-resolvers.md', 'https://download.dnscrypt.info/resolvers-list/v3/public-resolvers.md', 'https://ipv6.download.dnscrypt.info/resolvers-list/v3/public-resolvers.md', 'https://download.dnscrypt.net/resolvers-list/v3/public-resolvers.md']
cache_file = 'public-resolvers.md'
minisign_key = 'RWQf6LRCGA9i53mlYecO4IzT51TGPpvWucNSCh1CBM0QTaLn73Y7GFO3'
refresh_delay = 72
prefix = ''


## Anonymized DNS relays


[sources.'relays']
urls = ['https://raw.githubusercontent.com/DNSCrypt/dnscrypt-resolvers/master/v3/relays.md', 'https://download.dnscrypt.info/resolvers-list/v3/relays.md', 'https://ipv6.download.dnscrypt.info/resolvers-list/v3/relays.md', 'https://download.dnscrypt.net/resolvers-list/v3/relays.md']
cache_file = 'relays.md'
minisign_key = 'RWQf6LRCGA9i53mlYecO4IzT51TGPpvWucNSCh1CBM0QTaLn73Y7GFO3'
refresh_delay = 72
prefix = ''


[static]
# Singapore DoH
[static.'blahdns-sg-doh']
stamp = 'sdns://AgMAAAAAAAAADjEwMy4xNjcuMTUwLjQ1ABJkb2gtc2cuYmxhaGRucy5jb20KL2Rucy1xdWVyeQ'
[static.'blahdns-sg-doh-v6']
stamp = 'sdns://AgMAAAAAAAAAFVsyNDA2OmVmODA6Mjo1ZWU0OjoxXQASZG9oLXNnLmJsYWhkbnMuY29tCi9kbnMtcXVlcnk'


# Singapore Dnscrypt
[static.'blahdns-sg-dnscrypt-v4']
stamp = 'sdns://AQMAAAAAAAAAEzEwMy4xNjcuMTUwLjQ1Ojg0NDMghROpa8Tgg0uVDWO1AujT4tVNBJZrJgKTNOkHHboj_CsbMi5kbnNjcnlwdC1jZXJ0LmJsYWhkbnMuY29t'
[static.'blahdns-sg-dnscrypt-v6']
stamp = 'sdns://AQMAAAAAAAAAGlsyNDA2OmVmODA6Mjo1ZWU0OjoxXTo4NDQzIIUTqWvE4INLlQ1jtQLo0-LVTQSWayYCkzTpBx26I_wrGzIuZG5zY3J5cHQtY2VydC5ibGFoZG5zLmNvbQ'


# Finland DoH
[static.'blahdns-fi-doh']
stamp = 'sdns://AgMAAAAAAAAADjk1LjIxNi4yMTIuMTc3ABJkb2gtZmkuYmxhaGRucy5jb20KL2Rucy1xdWVyeQ'
[static.'blahdns-fi-doh-v6']
stamp = 'sdns://AgMAAAAAAAAAF1syYTAxOjRmOTpjMDEwOjQzY2U6OjFdABJkb2gtZmkuYmxhaGRucy5jb20KL2Rucy1xdWVyeQ'


# Finland Dnscrypt
[static.'blahdns-fi-dnscrypt-v4']
stamp = 'sdns://AQMAAAAAAAAAEzk1LjIxNi4yMTIuMTc3Ojg0NDMghROpa8Tgg0uVDWO1AujT4tVNBJZrJgKTNOkHHboj_CsbMi5kbnNjcnlwdC1jZXJ0LmJsYWhkbnMuY29t'
[static.'blahdns-fi-dnscrypt-v6']
stamp = 'sdns://AQMAAAAAAAAAHFsyYTAxOjRmOTpjMDEwOjQzY2U6OjFdOjg0NDMghROpa8Tgg0uVDWO1AujT4tVNBJZrJgKTNOkHHboj_CsbMi5kbnNjcnlwdC1jZXJ0LmJsYWhkbnMuY29t'


# Japan DoH
[static.'blahdns-jp-doh']
stamp = 'sdns://AgMAAAAAAAAADDIxMi41Mi4wLjEyMgASZG9oLWpwLmJsYWhkbnMuY29tCi9kbnMtcXVlcnk'
[static.'blahdns-jp-doh-v6']
stamp = 'sdns://AgMAAAAAAAAAFVsyNDA2OmVmODA6NDoxNTM3OjoxXQASZG9oLWpwLmJsYWhkbnMuY29tCi9kbnMtcXVlcnk'


# Japan Dnscrypt
[static.'blahdns-jp-dnscrypt-v4']
stamp = 'sdns://AQMAAAAAAAAAETIxMi41Mi4wLjEyMjo4NDQzIIUTqWvE4INLlQ1jtQLo0-LVTQSWayYCkzTpBx26I_wrGzIuZG5zY3J5cHQtY2VydC5ibGFoZG5zLmNvbQ'
[static.'blahdns-jp-dnscrypt-v6']
stamp = 'sdns://AQMAAAAAAAAAGlsyNDA2OmVmODA6NDoxNTM3OjoxXTo4NDQzIIUTqWvE4INLlQ1jtQLo0-LVTQSWayYCkzTpBx26I_wrGzIuZG5zY3J5cHQtY2VydC5ibGFoZG5zLmNvbQ'


# Gearmany DoH
[static.'blahdns-de-doh']
stamp = 'sdns://AgMAAAAAAAAADTc4LjQ2LjI0NC4xNDMAEmRvaC1kZS5ibGFoZG5zLmNvbQovZG5zLXF1ZXJ5'
[static.'blahdns-de-doh-v6']
stamp = 'sdns://AgMAAAAAAAAAFlsyYTAxOjRmODpjMTc6ZWM2Nzo6MV0AEmRvaC1kZS5ibGFoZG5zLmNvbQovZG5zLXF1ZXJ5'


# Germany Dnscrypt
[static.'blahdns-de-dnscrypt-v4']
stamp = 'sdns://AQMAAAAAAAAAEjc4LjQ2LjI0NC4xNDM6ODQ0MyCFE6lrxOCDS5UNY7UC6NPi1U0ElmsmApM06QcduiP8KxsyLmRuc2NyeXB0LWNlcnQuYmxhaGRucy5jb20'
[static.'blahdns-de-dnscrypt-v6']
stamp = 'sdns://AQMAAAAAAAAAG1syYTAxOjRmODpjMTc6ZWM2Nzo6MV06ODQ0MyCFE6lrxOCDS5UNY7UC6NPi1U0ElmsmApM06QcduiP8KxsyLmRuc2NyeXB0LWNlcnQuYmxhaGRucy5jb20'


# Switzerland DoH
[static.'blahdns-ch-doh']
stamp = 'sdns://AgMAAAAAAAAAEDQ1LjkxLjkyLjEyMTo0NDMAEmRvaC1jaC5ibGFoZG5zLmNvbQovZG5zLXF1ZXJ5'
[static.'blahdns-ch-doh-v6']
stamp = 'sdns://AgMAAAAAAAAAFlsyYTBlOmRjMDo2OjIzOjoyXTo0NDMAEmRvaC1jaC5ibGFoZG5zLmNvbQovZG5zLXF1ZXJ5'


# Switzerland Dnscrypt
[static.'blahdns-ch-dnscrypt-v4']
stamp = 'sdns://AQMAAAAAAAAAETQ1LjkxLjkyLjEyMTo4NDQzIIUTqWvE4INLlQ1jtQLo0-LVTQSWayYCkzTpBx26I_wrGzIuZG5zY3J5cHQtY2VydC5ibGFoZG5zLmNvbQ'
[static.'blahdns-ch-dnscrypt-v6']
stamp = 'sdns://AQMAAAAAAAAAF1syYTBlOmRjMDo2OjIzOjoyXTo4NDQzIIUTqWvE4INLlQ1jtQLo0-LVTQSWayYCkzTpBx26I_wrGzIuZG5zY3J5cHQtY2VydC5ibGFoZG5zLmNvbQ'

Jalankan program proxy DNSCrypt, di konsol putty ketik perintah berikut:
[2.6.0-RELEASE][root@router.home.arpa]/root: service dnscrypt-proxy.sh restart

Stopping dnscrypt_proxy.
Waiting for PIDS: 37565, 37565.
Starting dnscrypt_proxy.
Ini berarti bahwa aplikasi proxy DNSCrypt sedang BERJALAN. Masih di konsol putty, sekarang kita menguji dnscrypt-proxy.
[2.6.0-RELEASE][root@router.home.arpa]/root: dig -p 5300 google.com @127.0.0.1
Dnscrypt-proxy adalah aplikasi gratis dan open source yang mendukung protokol seperti DNSCrypt v2 dan DNS-over-HTTPS (DoH) yang dapat mencegah spoofing DNS dan serangan hacker.

Artikel ini mencoba mengulas cara menginstal dan mengonfigurasi aplikasi proxy DNSCrypt. Memiliki aplikasi ini di komputer Anda akan meningkatkan sistem keamanan DNS Anda, terutama untuk port 80 dan 443 yang sering kita gunakan.
Subscribe on LinkedIn Konfigurasi DNSCrypt Proxy Dengan Unbound di Router PFSense

Enclosures Link: Konfigurasi DNSCrypt Proxy Dengan Unbound di Router PFSense

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

Posting Komentar