TUTORIAL BYPASS DPI KOMINFO MENGGUNAKAN OPENWRT
Indonesia | English
Following this instruction is in your own risk. I'm not responsible for content you are trying to access after following this tutorial or the damage you done during the installation process. Please use it wisely and follow the instruction carefully
Langkah Persiapan Instalasi
- Pertama-tama, kita login ke OpenWRT kita melalui SSH sebagai admin dengan mengetikan IP dari OpenWRT kita
- Setelah login, jalankan perintah
opkg updatedi terminal dan tunggu sampai selesai - Setelah itu, jalankan perintah
opkg install iptables ip6tables git git-http nanountuk menginstall package yang digunakan untuk proses installasi Zapret - Pergi ke file tmp dengan mengetikan
cd /tmpdi Terminal - Jalankan perintah
git clone https://github.com/bol-van/zapret.gitdan tunggu sampai selesai
Bypass DNS Nasional
Karena Kominfo menerapkan peraturan DNS Nasional yang dimana setiap ISP wajib membelokan Port 53 ke server ISP masing-masing dan probing tehnik bypassnya Zapret akan menggunakan resolve DNS dari OpenWRT kita, kita harus membypass DNS ISP terlebih dahulu sebelum melakukan proses installasi Zapret
Ada 4 cara untuk bypass:
- Menggunakan host BebasID
- Buatlah file bernama bebasid di system dengan mengetikan
touch /etc/bebasiddi terminal - Buka filenya dengan mengetikan
nano /etc/bebasid - Silahkan copy isi hosts BebasID kedalam file yang kita buat tadi lalu save
- Login ke OpenWRT melalui Web dengan mengetikan IP dari OpenWRT, lalu pergi ke Network >> DHCP & DNS
- Pergi ke bagian Resolv and Hosts Files, tambahkan
/etc/bebasiddibagian Additional hosts files dan klik + seperti dibawah ini:
- Klik Save & Apply
- Untuk mengecek apakah Host BebasID sudah terpasang dengan benar, jalankan
nslookup lamanlabuh.aduankonten.iddi terminal OpenWRT
Jika hasilnya seperti diatas ini, maka konfigurasi host BebasID telah berhasil
- Buatlah file bernama bebasid di system dengan mengetikan
- Menggunakan DNS dengan port selain 53
- Login ke OpenWRT
- Pergi ke Network >> Interfaces dan Edit WAN (atau apapun interface sumber internet kalian)
- Pergi ke Advanced Settings dan uncheck opsi
Use DNS servers advertised by peer - Setting DNS ke 127.0.0.1 dan klik +
- Lalu Save dan Apply
- Setelah itu, pergi ke Network >> DHCP and DNS
- Dibagian DNS Forwarding, silahkan isi DNS dan alt-portnya dengan format
IP#PORTContohnya seperti ini:
Contoh menggunakan DNS dari BebasID dengan alt-port 1753
Untuk pengguna Moratel/Oxygen, jangan menggunakan alt-port 5353 karena Moratel memblokir port tersebut. Gunakan DNS yang mempunyai alternatif port selain 5353 jika anda memakainya
- Lalu klik + dan Save & Apply
- Menggunakan DNS-over-TLS (Stubby)
- Sebelum anda menggunakan DoT di OpenWRT, pastikan port 853 tidak terblokir oleh ISP
- Cek dengan menjalankan perintah
curl -v portquiz.net:853di terminal
Pastikan muncul tulisan `Port test successful!`
Jika tidak, silahkan pakai cara lain seperti memakai hosts, alt port, dan DoH - Jika tes berhasil, jalankan command
opkg updatedi terminal - Lalu jalankan command
opkg install stubbydan tunggu sampai selesai
- Jalankan command
nano /etc/stubby/stubby.ymluntuk mengedit config Stubby - Catat port yang digunakan
Nanti akan digunakan di konfigurasi DNS - Jika anda mau mengganti atau DNS provider default (Cloudflare 1.1.1.1), silahkan ganti bagian
address-data:dantls_auth_name:
Seperti Contoh, untuk mengganti ke DNS-over-TLS milik BebasID:
- Save hasilnya lalu jalankan perintah
nano /etc/config/stubby - Ubah
option manual '0'menjadioption manual '1'lalu save
- Jalankan perintah
service stubby restartdanservice stubby enable - Setelah itu, login ke OpenWRT melalui Web Interface
- Pergi ke Network >> Interfaces dan Edit WAN (atau apapun interface sumber internet kalian)
- Pergi ke Advanced Settings dan uncheck opsi
Use DNS servers advertised by peer - Setting DNS ke 127.0.0.1 dan klik +
- Lalu Save dan Apply
- Pergi ke Network >> DHCP and DNS
- Dibagian DNS Forwarding, silahkan isi DNS dengan hasil settingan tadi
127.0.0.1#5453 - Klik + dan Save and Apply
- Check dengan melakukan nslookup ke domain yang diblokir Kominfo (Mis:
nslookup reddit.com) Pastikan tidak muncul IP internet positif
- Menggunakan DNS-over-HTTPS
( TO BE CONTINUED... )
Installasi Zapret
- Setelah selesai menjalankan perintah git clone di terminal dan membypass DNS Nasional / DNS ISP, silahkan navigasi ke /tmp/zapret dengan mengetikan
cd /tmp/zapretdi terminal - Jalankan
./install-easy.shdi Terminal - Jika muncul pesan
Silahkan ketik
easy install is supported only from default location : /opt/zapret
currently its run from /tmp/zapret
do you want the installer to copy it for you (default : N) (Y/N) ?Ydan Enter - Untuk Firewall, pilih iptables dengan mengetik 1 dan enter
- Untuk enable IPv6 support, silahkan pilih
Yuntuk jaga-jaga
- Untuk Mode, silahkan pilih
3dan enter
- Pastikan enable HTTP support, HTTPS support di enablekan dengan pilih
Ypada saat proses instalasi
- Setelah itu klik Enter sampai selesai
- Hapus folder Zapret di /tmp untuk menyimpan memory dengan cara pergi ke
cd /tmpdan jalankanrm zapret -r
Konfigurasi Zapret
- Pergi ke folder
cd /opt/zapret/dan jalankan script./install_bin.sh - Saat proses sudah berhasil, silahkan jalankan
./blockpage.shuntuk mencari setting Zapret yang optimal untuk ISP anda - Jika muncul pesan:
Silahkan isi dengan domain yang diblokir Kominfo (Misalkan:
specify domain(s) to test. multiple domains are space separated.
domain(s) (default: rutracker.org) :reddit.com,vimeo.com,omegle.com, dll) - Jika muncul presan
ip protocol version, sesuaikan dengan jaringan anda- Misalkan jaringan anda hanya support IPv4, maka ketik
4dan enter - Tetapi, jika Jaringan anda support IPv4 dan IPv6, maka ketik
46dan enter
- Misalkan jaringan anda hanya support IPv4, maka ketik
- Klik Enter sampai pesan
how many times to repeat each test (default: 1). Ketik2dan Enter - Setelah itu, akan muncul pesan berbunyi
do all test despite of result?. Ketik Y dan Enter - Tunggu hingga Zapret menemukan settingan optimal untuk ISP anda
- Jika sudah selesai, akan muncul seperti ini:
Catat hasilnya - Setelah itu, stop service Zapret di OpenWRT dengan mengetikan
service zapret stop - Edit Config nya dengan mengetikan
nano /opt/zapret/config - Cari bagian ini di confignya dan replace dengan config yang sesuai pada gambar yang anda dapat tadi
Hilangkan # pada NFQWS
#NFQWS_OPT_DESYNC_HTTP=
#NFQWS_OPT_DESYNC_HTTPS=
#NFQWS_OPT_DESYNC_HTTP6=
#NFQWS_OPT_DESYNC_HTTPS6=
Untuk curl_test_https_tls12, isi di bagian HTTPS dan HTTPS6 (Tulis setelah huruf nfqws di hasil tadi)
Dan, untuk curl_test_http, isi di bagian HTTP dan HTTP6 (Tulis setelah huruf nfqws di hasil tadi)
Sebagai Contoh: (Jangan ikuti ini melainkan sesuaikan dengan apa yang anda dapat)NFQWS_OPT_DESYNC_HTTP="--hostcase"
NFQWS_OPT_DESYNC_HTTPS="--dpi-desync=split2"
NFQWS_OPT_DESYNC_HTTP6="--hostcase"
NFQWS_OPT_DESYNC_HTTPS6="--dpi-desync=split2" - Lalu, save hasilnya dan nyalakan Zapret dengan mengetikan
service zapret start - Jangan lupa enable iptables dan zapret dengan mengetikan
service zapret enabledanservice iptables enableagar servicenya berjalan saat startup
Masalah pada aplikasi banking (Credit to One for the step)
Beberapa bank akan menolak request anda jika anda mengaktifkan Zapret di Router OpenWRT karena itu, kita harus buat whitelist untuk beberapa situs bank
- Pergi ke folder
/opt/zapretlalu ketik perintahnano whitelist.txt - Lalu isikan:
(Silahkan tambahkan jika kurang)
bankbjb.co.id
bankbsi.co.id
bankmandiri.co.id
bca.co.id
bi.go.id
blubybcadigital.id
bni.co.id
bri.co.id
btn.co.id
cimbniaga.co.id
danamon.co.id
hanabank.co.id
hsbc.co.id
jago.com
klikbca.com
maybank.co.id
permatabank.com
permatanet.com
sc.com - Lalu Save dan jalankan command
chmod 755 whitelist.txtdi terminal - Edit config Zapret dengan mengetikan
nano config - Cari line bertuliskan
NFQWS_OPT_DESYNCdan tambah--hostlist-exclude=/opt/zapret/whitelist.txtdisetiap akhir line sebelum"- Sebagai contoh, Konfigurasi Zapret kita seperti ini:
# CHOOSE NFQWS DAEMON OPTIONS for DPI desync mode. run "nfq/nfqws --help" for option list
DESYNC_MARK=0x40000000
NFQWS_OPT_DESYNC="--dpi-desync=fake --dpi-desync-ttl=0 --dpi-desync-ttl6=0 --dpi-desync-fooling=badsum"
NFQWS_OPT_DESYNC_HTTP="--hostcase"
NFQWS_OPT_DESYNC_HTTPS="--dpi-desync=split2"
NFQWS_OPT_DESYNC_HTTP6="--hostcase"
NFQWS_OPT_DESYNC_HTTPS6="--dpi-desync=split2" - Yang kita harus lakukan adalah menambah
--hostlist-exclude=/opt/zapret/whitelist.txtdibelakang sehingga menjadi seperti ini:# CHOOSE NFQWS DAEMON OPTIONS for DPI desync mode. run "nfq/nfqws --help" for option list
DESYNC_MARK=0x40000000
NFQWS_OPT_DESYNC="--dpi-desync=fake --dpi-desync-ttl=0 --dpi-desync-ttl6=0 --dpi-desync-fooling=badsum --hostlist-exclude=/opt/zapret/whitelist.txt"
NFQWS_OPT_DESYNC_HTTP="--hostcase --hostlist-exclude=/opt/zapret/whitelist.txt"
NFQWS_OPT_DESYNC_HTTPS="--dpi-desync=split2 --hostlist-exclude=/opt/zapret/whitelist.txt"
NFQWS_OPT_DESYNC_HTTP6="--hostcase --hostlist-exclude=/opt/zapret/whitelist.txt"
NFQWS_OPT_DESYNC_HTTPS6="--dpi-desync=split2 --hostlist-exclude=/opt/zapret/whitelist.txt"
- Sebagai contoh, Konfigurasi Zapret kita seperti ini:
- Save dan restart Zapret dengan mengetikan
service zapret restart