Cara Install PowerDNS Recursor dan RPZ Untuk Blokir Situs Tertentu

Mungkin belum banyak yang membahas hal ini ya, jadi saya angkat saja pembahasan ini disini, yaitu bagaimana Cara Install PowerDNS Recursor dan RPZ.

PowerDNS Recursor: berfungsi sebagaimana DNS server menerjemahkan sebuah nama domain menjadi sebuah IP, contohnya adalah DNS Recursor milik google = 8.8.8.8,8.8.4.4 milik cloudflare = 1.1.1.1,1.0.01 dan masih banyak lagi.

RPZ (Response Policy Zone): adalah addon DNS server yang bisa berjalan di BIND, PowerDNS dll yang fungsinya untuk membuat aturan sebelum response dikembalikan kepada user yang mengirim query DNS. RPZ biasa digunakan untuk memblokir situs tertentu, atau di indonesia biasa kita kenal "INTERNET POSITIF"

Ok langsung saja ke inti tutorialnya ya. dan Saat tulisan ini dibuat PowerDNS versi terbarunya 4.5.x


Dalam kasus ini saya menggunakan:

(VPS Linux Ubuntu 20.04.3 LTS)
Contoh IP public : 103.123.123.123

1. Tambahkan repo powerdns

bisa dilihat disini: https://repo.powerdns.com/

Create the file '/etc/apt/sources.list.d/pdns.list' with this content:

deb [arch=amd64] http://repo.powerdns.com/ubuntu focal-rec-45 main

And this to '/etc/apt/preferences.d/pdns':

Package: pdns-*
Pin: origin repo.powerdns.com
Pin-Priority: 600

and execute the following commands:

curl https://repo.powerdns.com/FD380FBB-pub.asc | sudo apt-key add - &&
sudo apt-get update &&
sudo apt-get install pdns-recursor

Edit file recursor.conf di /etc/powerdns/recursor.conf

Timpa semua dengan kode dibawah ini.


config-dir = /etc/powerdns
hint-file = /usr/share/dns/root.hints
include-dir = /etc/powerdns/recursor.d
local-address = 103.123.123.123
allow-from = 0.0.0.0/0
local-port = 53
lua-config-file = /etc/powerdns/recursor.lua
quiet = yes
setgid = pdns
setuid = pdns

Edit dan tambahkan kode dibawah ini pada file /etc/powerdns/recursor.lua


rpzFile("/etc/powerdns/basic.rpz")

Lalu bikin file Zone seperti dibawah ini dengan nama /etc/powerdns/basic.rpz


$TTL 60;
$ORIGIN localhost.
@ SOA localhost. hostmaster.localhost ( 9 120 15m 3w 1h)
NS localhost. // out-of-zone no A/AAAA RR required

//pornhub.com IN CNAME @
pornhub.com IN A 103.123.123.123

Dalam contoh file zone, saya ingin memblokir situs pornhub.com yang akan saya arahkan ke ip server VPS yaitu 103.123.123.123

Edit /etc/resolv.conf hapus semua isinya dan ganti dengan "nameserver 103.123.123.123"


nameserver 103.123.123.123


baca juga: cara disable sistem resolv https://niamweb.blogspot.com/2021/10/cara-disable-sistem-resolv-pada-linux.html

Restart PowerDNS Recursor


$ /etc/init.d/pdns-recursor restart

Waktunya test dengan perintah dig


$ dig pornhub.com +short
    103.123.123.123

Jika hasil IPnya adalah 103.123.123.123 artinya RPZ berhasil.

Silahkan dicoba pada perangkat HP/PC/Router


Selamat mencoba.