Skip to content

Latest commit

 

History

History
204 lines (194 loc) · 13.3 KB

openwrt-tutorial.md

File metadata and controls

204 lines (194 loc) · 13.3 KB

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

  1. Pertama-tama, kita login ke OpenWRT kita melalui SSH sebagai admin dengan mengetikan IP dari OpenWRT kita
  2. Setelah login, jalankan perintah opkg update di terminal dan tunggu sampai selesai
  3. Setelah itu, jalankan perintah opkg install iptables ip6tables git git-http nano untuk menginstall package yang digunakan untuk proses installasi Zapret
  4. Pergi ke file tmp dengan mengetikan cd /tmp di Terminal
  5. Jalankan perintah git clone https://github.com/bol-van/zapret.git dan 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/bebasid di 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
      image
    • Pergi ke bagian Resolv and Hosts Files, tambahkan /etc/bebasid dibagian Additional hosts files dan klik + seperti dibawah ini:
      image
    • Klik Save & Apply
    • Untuk mengecek apakah Host BebasID sudah terpasang dengan benar, jalankan nslookup lamanlabuh.aduankonten.id di terminal OpenWRT


      Jika hasilnya seperti diatas ini, maka konfigurasi host BebasID telah berhasil


  • Menggunakan DNS dengan port selain 53
    • Login ke OpenWRT
    • Pergi ke Network >> Interfaces dan Edit WAN (atau apapun interface sumber internet kalian) image
    • Pergi ke Advanced Settings dan uncheck opsi Use DNS servers advertised by peer image
    • Setting DNS ke 127.0.0.1 dan klik +
    • Lalu Save dan Apply
    • Setelah itu, pergi ke Network >> DHCP and DNS
      image
    • Dibagian DNS Forwarding, silahkan isi DNS dan alt-portnya dengan format IP#PORT Contohnya seperti ini:
      image
      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:853 di 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 update di terminal
    • Lalu jalankan command opkg install stubby dan tunggu sampai selesai
      image
    • Jalankan command nano /etc/stubby/stubby.yml untuk mengedit config Stubby
    • Catat port yang digunakan
      image
      Nanti akan digunakan di konfigurasi DNS
    • Jika anda mau mengganti atau DNS provider default (Cloudflare 1.1.1.1), silahkan ganti bagian address-data: dan tls_auth_name:
      image
      Seperti Contoh, untuk mengganti ke DNS-over-TLS milik BebasID:
      image
    • Save hasilnya lalu jalankan perintah nano /etc/config/stubby
    • Ubah option manual '0' menjadi option manual '1' lalu save
      image
    • Jalankan perintah service stubby restart dan service stubby enable
    • Setelah itu, login ke OpenWRT melalui Web Interface
    • Pergi ke Network >> Interfaces dan Edit WAN (atau apapun interface sumber internet kalian) image
    • Pergi ke Advanced Settings dan uncheck opsi Use DNS servers advertised by peer image
    • Setting DNS ke 127.0.0.1 dan klik +
    • Lalu Save dan Apply
    • Pergi ke Network >> DHCP and DNS
      image
    • Dibagian DNS Forwarding, silahkan isi DNS dengan hasil settingan tadi 127.0.0.1#5453 image
    • Klik + dan Save and Apply
    • Check dengan melakukan nslookup ke domain yang diblokir Kominfo (Mis: nslookup reddit.com) Pastikan tidak muncul IP internet positif
      image
  • Menggunakan DNS-over-HTTPS

( TO BE CONTINUED... )

Installasi Zapret

  1. Setelah selesai menjalankan perintah git clone di terminal dan membypass DNS Nasional / DNS ISP, silahkan navigasi ke /tmp/zapret dengan mengetikan cd /tmp/zapret di terminal
  2. Jalankan ./install-easy.sh di Terminal
  3. Jika muncul pesan
    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) ?
    
    Silahkan ketik Y dan Enter
  4. Untuk Firewall, pilih iptables dengan mengetik 1 dan enter
    image
  5. Untuk enable IPv6 support, silahkan pilih Y untuk jaga-jaga
    image
  6. Untuk Mode, silahkan pilih 3 dan enter
    image
  7. Pastikan enable HTTP support, HTTPS support di enablekan dengan pilih Y pada saat proses instalasi
    image
  8. Setelah itu klik Enter sampai selesai
  9. Hapus folder Zapret di /tmp untuk menyimpan memory dengan cara pergi ke cd /tmp dan jalankan rm zapret -r

Konfigurasi Zapret

  1. Pergi ke folder cd /opt/zapret/ dan jalankan script ./install_bin.sh
  2. Saat proses sudah berhasil, silahkan jalankan ./blockpage.sh untuk mencari setting Zapret yang optimal untuk ISP anda
  3. Jika muncul pesan:
    specify domain(s) to test. multiple domains are space separated.
    domain(s) (default: rutracker.org) :
    
    Silahkan isi dengan domain yang diblokir Kominfo (Misalkan: reddit.com, vimeo.com, omegle.com, dll)
  4. Jika muncul presan ip protocol version, sesuaikan dengan jaringan anda
    • Misalkan jaringan anda hanya support IPv4, maka ketik 4 dan enter
    • Tetapi, jika Jaringan anda support IPv4 dan IPv6, maka ketik 46 dan enter
  5. Klik Enter sampai pesan how many times to repeat each test (default: 1). Ketik 2 dan Enter
  6. Setelah itu, akan muncul pesan berbunyi do all test despite of result?. Ketik Y dan Enter
  7. Tunggu hingga Zapret menemukan settingan optimal untuk ISP anda
  8. Jika sudah selesai, akan muncul seperti ini:
    image
    Catat hasilnya
  9. Setelah itu, stop service Zapret di OpenWRT dengan mengetikan service zapret stop
  10. Edit Config nya dengan mengetikan nano /opt/zapret/config
  11. Cari bagian ini di confignya dan replace dengan config yang sesuai pada gambar yang anda dapat tadi
    #NFQWS_OPT_DESYNC_HTTP=
    #NFQWS_OPT_DESYNC_HTTPS=
    #NFQWS_OPT_DESYNC_HTTP6=
    #NFQWS_OPT_DESYNC_HTTPS6=
    
    Hilangkan # pada NFQWS
    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"
    
  12. Lalu, save hasilnya dan nyalakan Zapret dengan mengetikan service zapret start
  13. Jangan lupa enable iptables dan zapret dengan mengetikan service zapret enable dan service iptables enable agar 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

  1. Pergi ke folder /opt/zapret lalu ketik perintah nano whitelist.txt
  2. Lalu isikan:
    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
    
    (Silahkan tambahkan jika kurang)
  3. Lalu Save dan jalankan command chmod 755 whitelist.txt di terminal
  4. Edit config Zapret dengan mengetikan nano config
  5. Cari line bertuliskan NFQWS_OPT_DESYNC dan tambah --hostlist-exclude=/opt/zapret/whitelist.txt disetiap 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.txt dibelakang 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"
      
  6. Save dan restart Zapret dengan mengetikan service zapret restart