Cara Konfigurasi DNS Filtering Menggunakan BIND RPZ Pada Debian

Wednesday, April 15, 2020

PENDAHULUAN
Halo semuanya!!! Salam sobat networkers, balik lagi dengan saya di blog ini tentunya. pada postingan saya kali ini saya akan membahas Cara Konfigurasi DNS Filtering Menggunakan BIND RPZ Pada Debian. Karna ini tentang DNS saya harap sobat sudah paham mengenai konfigurasi dasar DNS Server. Sobat bisa kunjungi postingan saya sebelumnya pada Link di bawah yang membahas juga tentang DNS Server.

Seperti biasa sebelum masuk ke konfigurasi saya akan bahas terlebih dahalu sedikit pengertin tentan BIND RPZ ini serta skenario jaringan yang akan digunakan.

Pengertian BIND RPZ
Bind RPZ (Respone Policy Zone) merupakan fitur dari bind9.8+ yang memungkikan untuk melakukan penerjemahan atau resolve terhadap request  dan zone sudah didefinisikan lalu meredirect ke web tertentu yang berisi peringatan. {Reference}

Skenario Jaringan
Pada skenario jaringan kali ini saya menggunakan topologi jaringan sebagai berikut.
Pada topologi tersebut saya memiliki satu client, satu dns server, serta satu router sebagai Internet Gateway karna konfigurasi kali ini antara client dan server harus sudah terkoneksi ke internet. Pada dns-filter juga harus sudah dikonfigurasikan cache hint dns agar client bisa meresolv domain yang ada di  jaringan public mneggunakan dns server lokal, sobat bisa baca link diatas. Routernya saya menggunakan mikrotik, untuk konfigurasi menghubungkan mikrotik ke internet sobat bisa klik link dibawah.

Konfigurasi kali ini bertujuan untuk memblokir situs-situs terlangan yang ada di internet. Dengan memanfaatkan fitur dari BIND RPZ Ini, sehingga nantinya pada saat client mengakses situs-situs terlangan kita bisa meredirect request tersebut ke web/server terntu yang berisikan halaman web peringatan.

KONFIGURASI DNS FILTERING DENGAN BIND RPZ
Langkah yang pertama kita harus menentukan/menyiapkan domain-domain yang akan kita filter/block. Kita bisa menentukannya sendiri ataupun kita bisa download kumpulan list domain-domain yang berisikan situs terlarang tersebut dari kominfo. Sobat bisa download kumpulan list tersebut pada link dibawah ini.

Dalam database tersebut terdapat sekitar 1.143.825 list domain yang mengandung konten terlarang. Dengan jumlah yang begitu banyak tentunya untuk memfilter domain-domain tersebut tentunya memerlukan spesifikasi server yang sangat lumayan tinggi. Karna saat ini hanya untuk pembelajaran dan saya hanya menggunakan mesin virtual maka kita bisa menggunakan sebagian dari domain tersebut, contohnya saya hanya menggunakan 50 list domain saja dari keseluruhan domain. Kita bisa menggunakan aplikasi teks editor untuk menghapus list domain tersebut dan menyisakankannya sebagian seperti contoh berikut.
Selanjutnya kita harus upload/mengirimkan file yang sudah kita edit tadi ke dns server. Disini saya menggunakan sftp untuk mengupload file tersebut.
Sekarang pindahkan file tersebut pada direktori /etc/bind, pastikan file yang sudah kita upload sudah ada pada direktori tersebut seperti berikut.
Setelah itu kita harus membuat zone untuk RPZ pada file konfigurasi named.conf, berikut perintah dan juga script yang digunakan.
root@dns-filter:/etc/bind# nano named.conf
zone "rpz.zone" {
        type master;
        file "/etc/bind/db.rpz";
        allow-query { any; };
};

Selanjutnya kita edit file konfigiruasi named.conf.options untuk mengaktifkan fitur RPZ, berikut perintah dan script yang digunakan.
root@dns-filter:/etc/bind# nano named.conf.options 
response-policy { zone "rpz.zone"; };

Kita harus membuat file forward untuk rpz.zone, kita bisa copy file forward dari db.local menjadi db.rpz sesuai nama file pada konfigurasi rpz.zone di file named.conf.
root@dns-filter:/etc/bind# cp db.local db.rpz

Selanjutnya kita akan menginputkan list domain pada file domain.txt ke file forward RPZ (db.rpz) tersebut. Berikut adalah perintah yang digunakan.
root@dns-filter:/etc/bind# awk '{print $1" IN A 10.30.100.16"}' domains.txt >> db.rpz 
root@dns-filter:/etc/bind# awk '{print "*."$1" IN A 10.30.100.16"}' domains.txt >> db.rpz
Perbedaan dari kedua perintah diatas terletak pada perintah "*. " yang merupakan seluruh sub domain dari list domain yang diinputkan.
Pastikan list domain tersebut sudah ada pada file db.rpz, kita bisa cek dengan edit file tersebut menggunakan nano seperti berikut. 
Setelah kita menginputkan list domain tersebut terakhir kita bisa restart service bind9 sekarang, bisa menggunakan perintah dibawah.
root@dns-filter:/etc/bind# /etc/init.d/bind9 restart
[ ok ] Restarting bind9 (via systemctl): bind9.service.

PENGUJIAN PADA CLIENT
Sampai saat ini kita telah mengkonfigurasi DNS Filtering menggunakan BIND RPZ. Sekarang kita akan mecoba melakukan pengujian apakah konfigurasi kita telah berhasil. 
Pertama saya akan coba melakukan pengujian menggunakan tools PING dan nslookup, dimana nantinya pada saat kita PING dan nslookup salah satu domain yang tadi kita filter maka akan mengarah ke IP Address yang sudah kita tentukan bukan mengarah ke IP Public. Seperti contoh berikut.
Yang kedua saya akan menggunakan web browser untuk melakukan pengujian, dimana pada saat client mengakses domain tersebut maka otomatis akan redirect ke web sever ataupun virtualhost yang sudah ditentukan. Jadi pengujian ini butuh sedikit konfigurasi Web Server, kali ini saya tidak akan bahas mengenai web server. Berikut pengujian client pada saat mengakses salah satu list domain yang telah difilter. 
PENUTUP
Oke lah sobat segitu dulu pembelajaran kita kali ini, semoga bisa bermanfaat dan mudah dimengerti. Postingan saya tersebut jauh dari kata 'SEMPURNA' jIka ada kesalahan pada postingan saya kali ini saya mohon maaf karna saya juga masih dalam tahap belajar. Jangan lupa berbagi ilmu yang kita bisa kepada orang lain agar kita bisa manjadi manusia yang bermanfaat. Salam sobat networkers.

You Might Also Like

0 comments