Mengamankan jaringan internet di rumah
9 min read

Mengamankan jaringan internet di rumah

DNS edition
Mengamankan jaringan internet di rumah

Rumah adalah tempat yang paling pribadi, dan ketika berbicara tentang pribadi, artinya, ya pribadi.

Bukan tanpa alasan mengapa rumah memiliki pintu sekalipun dikelilingi pagar setinggi langit. Bukan tanpa alasan mengapa rumah memiliki gorden sekalipun jendela tidak bisa dibuka dan cahaya matahari masuk dari atap.

Alasannya sederhana: privasi.

Perihal privasi seringkali dianalogikan seperti aktivitas lo di kamar mandi sebagai contoh yang paling sederhana. Ya, orang-orang tau apa yang lo lakuin di kamar mandi, namun faktanya: orang-orang tidak tau secara persisnya apa yang lo lakuin di kamar mandi. Dan aktivitas yang lo lakuin di kamar mandi tersebut biarlah tetap menjadi rahasia lo karena itu urusan pribadi dan bukan bisnis orang lain.

Dan apa yang terjadi ketika ada orang lain yang mencoba mengintip aktivitasmu di dalam kamar mandi tersebut sekalipun aktivitas yang kamu lakukan bukanlah aib ataupun kejahatan?

You know the answer, right?

Perihal menggunakan internet pun adalah aktivitas pribadi.

Dan ketika berbicara tentang pribadi, artinya, sekali lagi, ya pribadi.

Mengapa harus ada orang lain yang peduli ketika gue mencari informasi tentang biaya pernikahan lalu somehow mendapatkan iklan promosi harga cincin dengan diskon 40%? Oke, let's say gue memang butuh dan bukankah iklan tersebut seharusnya membantu gue? Namun poinnya bukan disitu, melainkan iklan tersebut muncul tanpa izin gue dan menggunakan informasi gue tanpa izin gue.

Kalau memang gue butuh cincin diskonan, gue harusnya tau kata kunci apa yang harus gue pilih, kan?

Anyway, mari kita berbicara kabar baiknya.

Sudah ada beberapa vendor yang menggunakan privilege nya untuk membantu melindungi privasi pengguna internet. Kita mulai dari pasar pengguna mobile phone: Apple. Apple menguasai 26.46% (per Mei 2021) pasar HP di dunia menurut StatCounter. Yang berarti, jika jumlah pengguna mobile di dunia adalah 5,027,000,000 berarti jumlah pengguna iPhone sekitar 1,329,641,500. Ada 1.5 milyar perangkat yang Apple lindungi terkait privasi pengguna internet tersebut.

Yang gue suka dari Apple adalah mereka menjual kata privasi tanpa menjual FUD ke pengguna nya sebagaimana yang biasa dilakukan oleh para penyedia layanan VPN. Menguasai pasar sekitar 26.46% tersebut termasuk privilege, dan Apple menggunakan privilege nya untuk sesuatu yang bagus untuk bisnis nya Apple dan juga pribadi penggunanya: Privacy by default.

Tidak perlu mengkonfigurasi banyak hal sebagaimana yang dilakukan oleh 'superuser' karena hal tersebut sudah dikonfigurasi, by default.

tangkapan layar membuka mozilla.org di Safari

Tidak perlu memasang uBlock Origin ataupun menggunakan DNS Sinkhole untuk mencegah "web tracker" melacak aktivitasmu, karena di Safari sudah ada fitur Intelligent Tracking Prevention (ITP) dan opt-in.

Apple bisa saja menggunakan privilege nya dan menawarkan solusi end-to-end terkait melindungi privasi pengguna nya dengan menjadi ISP juga. Google Fiber adalah salah satu contoh yang menggunakan privilege nya terkait pengguna produk Google dan infrastruktur yang mereka miliki dengan menjadi ISP.

situs Google Fiber

Namun Apple tidak melakukannya. Melainkan, mereka membuat layanan bernama Apple Private Relay yang secara teknis adalah Onion Routing yang hampir sama seperti yang dilakukan oleh TOR Project,  namun menggunakan server Apple sebagai "relay" daripada server yang dijalankan oleh komunitas.

Oke, selesai membagus-baguskan Apple.

Melindungi privasi pengguna dengan menjadi ISP bukanlah solusi yang efektif khususnya untuk bisnis. Namun berbeda cerita bila perlindungan tersebut berada dilapisan atasnya, seperti yang dilakukan Apple dengan Apple Private Relay nya.

Dan di tulisan ini, gue akan membahas tentang pendekatan gue membuat lapisan tersebut untuk skala rumahan yang penggunanya sekitar 6 perangkat, bukan 1,329,641,500 yang dimiliki oleh Apple.

The internet always starts with a router

Jaringan Wi-Fi yang kamu gunakan didapat dari sinyal yang dihantarkan oleh router kamu yang tersambung ke router ISP. Begitupula dengan jaringan 4G/5G yang kamu gunakan yang ditenagai oleh Base Transceiver Station (BTS) yang tersambung ke router ISP.

Dan, ya, internet selalu berawal dari router. Tugas router adalah membuat rute paket dan meneruskannya.

Topologi jaringan rumah umumnya seperti ini:

Topologi-topologian

Router tersambung dengan kabel fiber yang intinya mengarah ke ISP yang digunakan.

Berdasarkan topologi kocak diatas, diasumsikan kita mempercayai paket yang dikirim ataupun diterima oleh router. Perlindungan berada di level tiap perangkat, jika lo ingin memblokir paket yang mengarah ke pornhub.com, berarti harus dilakukan di level perangkat.

Hampir setiap perangkat bisa menjadi router, sekalipun itu Raspberry Pi.

Masih ingat kan kalau tugas router adalah merutekan dan meneruskan paket?

Anggap Raspberry Pi lo bekerja seperti router pada umumnya di pasaran:

  • Bertindak sebagai DHCP server (DHCP/DHCPv6)
  • Bertindak sebagai DNS server (stub/recursive)
  • Bertindak sebagai dispatcher (mengantarkan sinyal Wi-Fi misalnya)

Maka Raspberry Pi lo sudah menjadi router!

Namun Raspberry Pi adalah "general purpose" berbeda dengan router yang "special purpose" yang dioptimasi untuk mengantarkan paket yang mungkin bisa meneruskan paket 300MB per-detik.

Beberapa router ada yang sudah dioptimasi untuk keamanan juga (yang biasanya bertindak sebagai Firewall) seperti pfSense nya Netgate ataupun Fortigate nya Fortinet. Apapun itu, mereka bertindak untuk mengamankan jaringan internet.

Namun pertanyaan yang paling penting adalah: Apa yang diamankan dan dari siapa?

Keamanan untuk pribadi/keluarga dalam ber-internet

Jawaban singkat dari pertanyaan diatas adalah: melindungi bisnis dari serangan "cyber" apapun itu. Botnet? Phishing? DDoS? Literally semuanya.

Tidak jarang perusahaan mengharuskan karyawannya untuk tersambung ke jaringan pribadi (VPN) kantor, atau mewajibkan untuk menggunakan properti dari kantor yang sudah dikonfigurasi sedemikan rupa.

Jadi, ketika salah satu karwayan misalnya ada yang terkena soceng dan mengakses situs phishing, kemungkinan besar serangan tersebut gagal karena router di VPN tersebut mendeteksi jika situs yang ingin dikunjungi adalah situs phishing dan di peramban nya menampilkan "warning" or something like that misalnya.

Jika tujuan perusahaan adalah untuk melindungi properti berharganya, sekarang bagaimana kita ke melindungi orang-orang yang kita cintai: keluarga.

Bagaimana bila mamah kita memasang aplikasi yang mengandung virus? Bagaimana bila komputer adik kita ternyata mengirim berkas yang ada di D:\ setiap jam 20? Bagaimana bila kakak kita login ke situs yang terlihat seperti Tokopedia padahal bukan?

Apapun itu, semua bisa saja terjadi, kalau kata 8 ball.

Sebagai seseorang yang 'tau' dan 'peduli' tentu terasa naif jika gue hanya memperdulikan diri sendiri.

ketika mengakses youtuybe.com

Ya, browser gue memunculkan warning tersebut ketika gue tidak menggunakan DNS Sinkhole dan gue menggunakan uBlock Origin, tapi bagaimana dengan di perangkat adik gue? Atau nyokap gue?

Kalau itu untuk keamanan ya, bagaimana bila kamu peduli dengan privasi juga dan membiarkan pacamu "dilacak" oleh siapapun itu ketika sedang mencari seprai baru di Google dan (un)surprisingly mendapatkan iklan seprai juga di Instagram?

Namun kuncinya bukan di seprai, jika mereka bisa melacak kata kunci 'seprai' dan memanfaatkannya, secara teknis mereka bisa melacak semuanya.

Jika itu (web tracking) menurutmu bukanlah sebuah ancaman, silahkan pertanyakan:

  • Mengapa Apple membuat Intelligent Tracking Prevention di Safari?
  • Mengapa Mozilla Firefox (dan Enhanced Tracking Prevention) ada?
  • Mengapa Cloudflare menawarkan 1.1.1.1 sebagai DNS Resolver secara gratis?
  • Mengapa gordenmu ditutup ketika malam yang padahal tidak ada cahaya matahari?
  • Mengapa menutup pintu ketika buang air kecil yang padahal orang lain tau kalau kamu sedang BAK?

Jika kita simpulkan, yang bisa kita lindungi dari serangan keamanan (dan privasi) yang ada dalam aktivitas ber-internet antara lain:

  • Jaringan iklan & pelacak
  • Situs scam, phishing dan malvertising
  • Situs berita palsu
  • Spyware, malware, dan ransomware

Hal diatas adalah yang umum, ya.

Dan serangan diatas bisa dimulai dari DNS. Ya, internet hampir selalu tentang DNS, dan rekomendasi gue adalah:

Jika router (ataupun perangkatmu) sudah menggunakan DNS yang ada diatas, perangkatmu seharusnya menjadi sedikit aman. Tapi itu untuk pribadi, ya.

Untuk kepentingan keluarga harusnya sedikit advance, ada beberapa aturan tambahan, misalnya:

  • Melindungi dari situs judi, porno dan online dating
  • Membatasi penggunaan media sosial
  • Melindungi dari situs piracy
  • Menggunakan "SafeSearch" untuk Google, DuckDuckGo, YouTube, dsb

Dan khusus untuk pendekatan diatas bisa menggunakan layanan dari:

3 layanan diatas dapat mengatur dan memonitor situs apa yang pernah; boleh, terblokir oleh pengguna nya, dan untuk penerapannya tinggal atur DNS yang ada di setiap perangkat anggota keluarga.

Bagaimana untuk solusi yang lebih sederhana? Baiklah, mari kita masuk ke inti dari tulisan ini!

Setup home router & DNS pribadi

Kalau lo ada akses ke router, bisa menggunakan 3 layanan diatas yang gue sebut sebelumnya. Pengalaman pribadi gue kalau pakai router bawaan dari ISP kurang bagus, ISP membajak DNS query yang dilakukan oleh perangkat gue yang berarti setup akan menjadi sia-sia seolah-olah ISP dapat melindungi kita dari serangan yang ada.

Namun jika ISP tidak meng-hijack router lo, setup nya sesederhana mengatur alamat IP ke DNS yang sudah dipilih, misal Cloudflare Teams:

Setup untuk router di Cloudflare Teams (Gateway)

Lalu bisa melihat DNS queries apa saja yang terjadi dan mana yang diblokir:

gambaran menggunakan Cloudflare Gateway

Karena Cloudflare Teams Gateway menyediakan query via DoH, gue pakai untuk contoh agar DNS query tidak dijawab oleh DNS Sinkhole gue.

Cloudflare for teams gratis untuk 50 pengguna, selain menawarkan DNS pribadi juga menawarkan VPN melalui Cloudflare Warp+ nya yang harganya dapat dijangkau oleh kantong plus memiliki performa yang oke.

Jika ISP kamu meng-hijack DNS query, mungkin kamu harus menggunakan router lain yang "dirancang khusus" untuk melindungi privasi pengguna internet seperti GL-MT300N dari GL-iNet yang mendukung Encrypted DNS menggunakan 1.1.1.1 nya Cloudflare ataupun NextDNS.

Jika menggunakan router yang gue cantumkan diatas, cukup tambahkan "Endpoint ID" nya NextDNS di router dan tidak ada langkah kedua!

Gambaran menggunakan NextDNS

Solusi terakhir untuk superuser adalah dengan menggunakan AdGuardHome dan menjalankannya sendiri. Gue pribadi menggunakan itu, setup gue adalah:

  1. Menjalankan AdGuardHome di Raspberry Pi gue
  2. Menggunakan edgyDNS sebagai upstream server sehingga gue tidak perlu maintenance 2x, dan menggunakan encrypted DNS
  3. Setiap perangkat menggunakan alamat IP Raspberry Pi gue untuk bagian DNS server

Gambarannya adalah seperti berikut:

AdGuardHome di Raspberry Pi

Gue proxy DNS query gue karena edgyDNS tidak menulis log sedangkan gue butuh itu. Bagian "0 blocked by filter" adalah expected karena sudah diblock oleh edgyDNS :))

Selain itu Raspberry Pi gue juga tersambung ke VPN (via Tailscale) sehingga ketika gue sedang diluar, gue masih bisa menggunakan DNS server yang ada di Raspberry Pi gue.

Kenapa gue tidak langsung menembak ke edgyDNS aja? Sentralisasi.

Gue ingin semua query log yang ada di perangkat gue (termasuk di smart speakers) tercatat di 1 tempat, yang mana itu adalah di Raspberry Pi gue.

Pendekatan seperti ini so far bekerja untuk gue, gue setup static IP untuk setiap perangkat gue di router jadi bisa gue identifikasi siapa memanggil apa.

Next nya—ketika gue pulang—gue mau setup juga di router rumah gue karena gue dapet informasi kalau di rumah gue sekarang berlangganan layanan internet.

...dan menggunakan IndiHome. Mungkin mau gue bawa aja si Raspberry Pi ini ke rumah gue dan berharap indi****home tidak blokir traffic Tailscale gue.

Kesimpulan

Dengan setup router seperti ini kurang lebih berarti kita membawa "Intelligent Tracking Prevention" nya Safari ataupun "Enhanced Tracking Protection" nya Mozilla Firefox di level router yang membuat pengguna dari router tersebut tidak perlu setting apapun.

Bagian menariknya lagi, bisa bekerja seperti uBlock Origin juga yakni bisa menambah filters yang kita inginkan sesuka hati.

Gue bisa memastikan bahwa jaringan internet yang ada di rumah (kamar kosan) gue aman (dari siapapun), karena:

  1. DNS query menggunakan encrypted DNS yang tidak bisa dibaca oleh siapapun kecuali DNS Server & DNS stub resolver komputer gue
  2. DNS yang gue gunakan memblokir situs-situs yang mengarah ke jaringan iklan & tracker, situs scam, situs phishing, dsb
  3. Gue bisa memonitor perangkat gue memanggil kemana aja

Untuk bagian terakhir, mungkin untuk level "keluarga" tidak terlalu penting. Karena yang paling penting hanyalah "memanggil apa" bukan "siapa memanggil apa". Kalau untuk pribadi—khususnya yang paranoid seperti gue—itu lumayan penting terlebih karena tidak melanggar ranah privasi siapapun but me.

Setiap minggu gue melakukan rsync via cronjob untuk log query gue karena retention nya cuma 90 hari. Dan kalau sedang iseng & ada waktu, gue melakukan grep & awk untuk melacak "perusahaan besar" mana saja yang perangkat gue panggil yang mungkin seharusnya ter-blokir.

Untuk proteksi maksimal, mungkin bisa menggunakan VPN khususnya bila kamu aware dengan hal ini agar semua paket internet yang keluar & masuk dalam bentuk ter-enkripsi.

Berbicara tentang edgyDNS, ada sekitar 50k (encrypted) DNS queries setiap harinya dan ada 20k domain yang diblokir dengan waktu proses query rata-rata 100ms.

https://edgy.network/dns

edgyDNS tidak memblokir situs bokep (karena gue rasa penggunanya sudah cukup dewasa) dan angka "Blocked malware/phishing" hanya berlaku jika gue mengaktifkan fitur "Use AdGuard browsing security web service" yang berarti memanggil server nya AdGuard yang berarti gue menggunakan layanan pihak ketiga.

edgyDNS ini gue bisa menjadi alternatif Quad9 dan Cisco OpenDNS namun dengan filter yang lebih strict (dan terbuka) serta menjadikan pengguna internet di Indonesia sebagai first-class.

Gue tidak bermaksud bias, karena gue rasa setiap pembaca disini sudah mengetahui kalau gue orang dibalik edgyDNS tersebut.

Sebagai shameless plug, untuk melindungi kamu (ataupun orang-orang tercinta) dari potensi serangan yang ada di internet di level DNS, bisa pertimbangkan menggunakan edgyDNS sebagai upstream DNS server, dan jangan lupa transport layer yang menggunakan enkripsi seperti DoH, DoT dan DNSCrypt.

Hal-hal yang gue bahas disini tidak menjamin jaringan/aktivitas internet lo 100% aman, karena tidak ada yang aman di jaringan internet. Namun setidaknya membuatnya menjadi lebih sedikit aman dari yang sebelumnya.

Sebagai penutup, jika dirasa kamu tertarik dengan konten seperti ini, bisa pertimbangkan untuk berlangganan ke newsletter edgy's frontline. Hampir sama kontennya seperti yang ada disini, namun lebih umum dan dikirimkan ke email kamu 😛

Anyway, jika kamu butuh bantuan dalam pemasangan AdGuardHome di level kosanmu ataupun rumah atau ingin bertanya-tanya terkait topik ini, bisa kontak saya disini.

Tetap jaga kesehatan, keselamatan, dan keamanan teman-teman!