Sebelum kita masuk ke pembahasan, gue akan bercerita sedikit kenapa gue beli router ini.

Sudah lama sebenarnya ingin membeli router sendiri terlebih sekarang di kos gue menggunakan WAN yang setiap kamar dapet jatah 1 router. Dan brengseknya, sejauh yang gue tau cuma router di kamar gue aja yang langsung dihadang Mikrotik yang—kredensialnya hanya sysadmin dan tuhan yang tau—beda dengan kamar-kamar lain ataupun router di teras yang pakai gateway nya dari si router.

Kedua, perangkat gue 90% selalu terhubung dengan jaringan VPN dan seringnya gue pakai fitur Exit Node nya dari Tailscale untuk meneruskan paket (yang ter-enkripsi) dari perangkat gue ke server yang gue kontrol.

Ketiga, Captive Portal sangat membenci VPN. Lalu gue sedang riset cara kerja Captive Portal under the hood nya plus cara bypass nya. You know, the hacker mindset: untuk mencegah maling, lo harus tau & paham cara pikir & kerja maling.

Keempat, gue kepikiran daripada gue setup VPN di semua perangkat gue, kenapa gak di 1 perangkat aja dan semua paket dari perangkat gue diarahkan kesitu.

Nah, berdasarkan 4 poin diatas, gue bertanya ke teman-teman underground buat rekomendasi router yang yoi & menggunakan openWrt, lalu ada yang merekomendasikan produk dari GL.iNet ini yang setelah gue pelajari banyak produknya, ternyata sangat yoi. Dan gue putuskan membeli ini: Landing page nya Yang asik dari router ini—selain bentuk & warnanya yang imut—adalah built-in VPN support (OpenVPN & Wireguard), DoT (NextDNS & Cloudflare) dan DNSCrypt Proxy.

Dan aneh sih kalau gue gak beli, lalu gue cek harganya yang cuma $27.90 atau sekitar 397,000 IDR. Lalu gue cek di Tokopedia, dan menemukan ini yang harganya cuma 345,000 IDR yang bahkan lebih murah dari harga aslinya yang gue yakin dia pake harga grosir.

Lalu gas lah membeli aaaand here we are! Sumber gambar dari twit gue (actually just Fariz megang router) Dan berikut review ala-ala nya.

Setup

Ini pretty straightforward, gue rasa gak perlu kerja di Indihome untuk bisa setup router. Si router ini ada 4 mode sebagai AP: WAN, repeater, tethering via smartphone dan modem.

Karena gue pakai WAN, jadi gue tinggal colok ke port WAN, mengakses 192.168.8.1 dengan kata sandi “goodlife” sebagai default passwordnya, mengatur koneksi WiFi, lalu terhubung seperti biasa. Web interface nya yang bisa diakses di 192.168.8.1 Fitur pertama yang gue lakukan adalah tentu saja SSH karena pakai openWRT.

Tinggal ssh root@192.168.8.1, lalu masukkan password yang sama dengan yang di Web UI, lalu explore under the hood nya si router ini selagi bisa sambil digunakan sebagai router normal.

DoT/DNScrypt Proxy

Fitur kedua yang mau gue gunakan adalah built-in encrypted DNS ini. Gue cuma benci saat DNS Query gue dijawab sama ISP yang gue pakai. Sayangnya setting custom DNSCrypt proxy lumayan ribet dan juga menggunakan built-in DoT nya hanya dukung NextDNS dan Cloudflare.

Karena gue menjalankan DNS resolver server sendiri dan kagak lucuk kalo gue gak dogfooding, jadi gak gue pakai dulu built-in DoT tersebut kecuali bisa custom via web UI. Nah, karena dia pakai stubby, harusnya lumayan gampang buat set custom upstream untuk built-in DoT nya, tapi karena gue gak ada waktu buat coba-coba jadi gak gue pakai si fitur DoT tersebut.

So far pas gue pakai DNS nya Cloudflare via DoT tersebut berjalan dengan lancar dan ketika gue cek di dnsleaktest.com enggak ada DNS resolver lain yang ikutan ngejawab dns query, jadi gue rasa fitur DoT tersebut oke punya kalau lo percaya dengan Cloudflare ataupun punya akun di NextDNS.

VPN

Fitur ketiga yang ingin gue gunakan adalah built-in VPN support nya.

Karena sekarang tahun 2021, gue pakai Wireguard® daripada OpenVPN terlebih keunggulan Wireguard lebih oke daripada OpenVPN di berbagai aspek, termasuk di throughput.

Lalu gue spin up VM buat setup Wireguard dan gue pakai Compute Engine nya Google Cloud Platform karena gue punya banyak duit dan terlebih dia ada data center di Indonesia juga, sepertinya worth a try.

Setup Wireguard relatif mudah, cuma ada 5 langkah yang bisa lo lakukan setelah spin up instance sejauh yang gue tau (in case pakai varian Debian nya GNU/Linux):

  • apt update
  • apt install wireguard
  • vim /etc/wireguard/wg0.conf
  • setup firewall (both di level GCP & VM)
  • wg-quick up wg0

And it’s done. Untuk bikin konfigurasi Wireguard tinggal buat dari sini buat yang males kek gue. Dan gue pakai private subnet 172.16.0.0/24 biar gak bentrok sama VPC nya GCP (10.x.x.x) dan private subnet dari ISP (192.168.x.x).

Oh iya, kalau pakai GCP harus setup MTU nya jadi 1360 both di server & klien, dan itu known issues. Anyway, berikut hasil Speedtest nya: Link hasil Speedtest Di setup biasa (langsung pakai router dan tanpa VPN) untuk Download speed tembus sekitar 30Mbps dan Upload speed bisa sampai 50Mbps. Paket internet yang dipakai di kos gue adalah Biznet yang 50Mbps, dan gue rasa kecepatan segitu masih bisa ditoleransi oleh gue as far as masih bisa streaming Netflix ataupun Pornhub di 720p.

Encrypted DNS Queries

Karena gue anaknya dogfooding banget, masalah DoT sebelumnya bisa diselesaikan dengan mengirim DNS Query ke VPN server gue via Wireguard.

Paket yang dikirim sudah ter-enkripsi, dan di VPN server gue tinggal pakai [dnsproxy](https://github.com/AdguardTeam/dnsproxy) yang upstream nya adalah DoT nya dns.edgy.network, dan gue rasa cuma ada overhead 1-3ms.

Caranya relatif sederhana: matikan stub resolver di sistem operasi VPN server sehingga si dnsproxy bisa bind ke :53, lalu di VPN client (router) tinggal tambahkan bagian DNS yang mengarah ke private IP nya si Wireguard di VPN server (kalau gue berarti 172.16.0.1).

Ketika gue cek di DNSLeaktest, strongleaktest, whoer dns leak test dan ESNI checker nya Cloudflare, yang menjawab DNS query gue hanya si dns.edgy.network dan plus DNSSEC bekerja sebagaimana seharusnya, yeay! Hasil strongleakstest.com By the way, gue mematikan DNS Query via Plain DNS di IPv4 for some reason, dan kalau memang terpaksa harus menggunakan Plain DNS, edgyDNS hanya menawarkan via IPv6 yakni:

  • 2001:470:ecbf::53
  • 2001:470:ecbf::666

Dan karena ISP gue belum mendukung IPv6 natively, itulah alasan kenapa DNS query nya gue forward ke VPN server daripada langsung dari komputer gue.

Penutup

Ketika gue coba traceroute—ke server nya cloudflare-dns.com (1.1.1.1) sebagai contoh—output nya adalah seperti ini: traceroute ke 1.1.1.1 Paket diteruskan ke router gue, terus ke VPN server gue, terus somehow tiba lah dia ke server 1.1.1.1 yang bahkan gue tidak melihat komunikasi dengan ISP & IXP sama sekali.

Eksperimen selanjutnya adalah gue ingin tau apakah si router ini bisa *bypass *atau setidaknya mendeteksi captive portal atau kagak tanpa harus mengubah konfigurasi sekalipun.

Sebelumnya, setiap kali gue menggunakan public Wi-Fi yang dihadang captive portal, hal yang harus gue lakukan adalah:

  • Disconnect VPN
  • Revert DNS dari yang pakai Secured DNS nya Big Sur jadi DNS server yang whatever dikasih ISP
  • Kalau gue lagi pakai Firefox, disable DoH level Firefox
  • Kalau gue lagi pakai SOCKS5 proxy, disable that too baik di Firefox ataupun system-wide

Lalu captive portal muncul, dan klik tombol Lanjutkan deh.

Gue akan membahas panjang lebar seputar captive portal secara under the hood, stay tune untuk yang tertarik!

Sebagai penutup, sekarang perangkat gue hanya ingin konek ke Wi-Fi yang bernama edgy aja yang mana adalah SSID dari router gue ini. Router ini bisa toggle VPN connectivity via configurable button yang bisa di setting di Web UI, serta menggunakan USB sebagai power source nya (bisa pakai Powerbank!), dan bentukannya lebih kecil dari rokok gue, ada IGMP Snooping, ada fitur kill-switch buat yang level paranoid nya ekstrim, dan masih banyak lagi yang gak bisa gue sebut satu-satu.

Dan sekarang gue bisa menggunakan “double VPN” diseluruh perangkat gue karena VPN utama diatur di router dan untuk “internal VPN” sebagaimana yang banyak dipakai di aplikasi iOS/iPadOS bisa gue gunakan secara smooth tanpa harus bentrok dengan Tailscale or something like that.

Overall gue sangat puas dengan produknya GL.iNET ini dan merekomendasikan produk mereka khususnya jika butuh *router *pribadi yang by design membantu melindungi privasi kita sebagai pengguna internet dalam menggunakan internet.

Dan selalu akan gue bawa kemanapun gue pergi!