Entri di berkas hosts dan filter router memblokir situs yang sama karena alasan yang sama sekali berbeda, itulah sebabnya yang satu tetap berfungsi di bawah VPN dan yang lain diam-diam berhenti. Berkas hosts menjawab nama sebelum paket apa pun meninggalkan mesin. Filter router memeriksa lalu lintas yang melewatinya. Letakkan terowongan di antara kedua titik itu dan yang kedua kehilangan pandangannya, sementara yang pertama tidak menyadari apa pun.

Di mana nama diresolusi menentukan segalanya

Setiap pemblokiran dimulai dengan pertanyaan: siapa yang mengubah nama menjadi alamat? Pada desktop biasa jawabannya adalah resolver sistem, yang mengikuti urutan terkonfigurasi dan biasanya membaca berkas hosts sebelum bertanya ke DNS. Pada jaringan tersaring jawabannya mungkin router, yang hanya melihat kueri jika klien mengirimkannya melewatinya tanpa perlindungan. Ubah jalurnya dan Anda mengubah siapa yang boleh menjawab.

VPN melakukan dua hal sekaligus di sini: ia memindahkan rute bawaan, dan ia mungkin mendorong server DNS-nya sendiri. Salah satu perubahan itu cukup untuk memindahkan resolusi nama dari perangkat yang menegakkan pemblokiran.

Itulah mekanisme di balik keluhan umum bahwa filter bekerja sampai VPN tersambung.

Entri hosts menjawab sebelum terowongan itu ada

Baris seperti 127.0.0.1 www.example.com dibaca oleh resolver lokal, jadi jawabannya dihasilkan di mesin tanpa melibatkan jaringan. Sambungkan terowongan, ubah server DNS, ganti jaringan: entri itu tetap mengembalikan loopback. Karena itulah pemblokiran hosts adalah satu-satunya dari keduanya yang tidak terpengaruh oleh tempat VPN berakhir.

Titik butanya sama-sama lokal. Aplikasi yang membawa resolver sendiri, berbicara DNS over HTTPS, atau terhubung ke alamat literal tidak pernah bertanya ke sistem, jadi entri itu tidak diperiksa. Alamat yang di-cache di dalam proses yang berjalan memiliki efek yang sama sampai proses itu dimulai ulang.

Konfirmasi jawabannya dengan getent ahosts di Linux atau Resolve-DnsName di Windows daripada memercayai tab peramban.

Filter router hanya melihat apa yang melewatinya

Filter konten atau URL pada router rumah mencocokkan nama dan permintaan yang melewatinya dalam bentuk terbaca. Ketika klien membangun terowongan terenkripsi ke server di tempat lain, router melihat satu aliran ke server itu dan tidak ada apa pun di dalamnya. Filter tidak punya nama untuk dicocokkan, jadi ia meloloskan lalu lintas, dan itu tampak seperti filter gagal, bukan seperti diakali.

Topologi yang berhasil adalah yang lain: router memegang terowongannya sendiri, mendekripsi di titik akhir dan menerapkan filter di sana. Dalam desain itu filter berada di tempat teks polos muncul.

Jika terowongan berakhir di laptop, router berada di luar jalur terlindungi menurut definisi, tidak peduli bagaimana aturannya ditulis.

Empat titik penegakan dan apa yang terlewat oleh masing-masing

Empat tempat dapat menegakkan pemblokiran, dan masing-masing gagal dengan cara berbeda. Bacalah daftar itu sebagai peta cakupan, bukan peringkat.

  • Berkas hosts atau resolver lokal: bekerja luring dan di bawah terowongan apa pun, tetapi diakali oleh resolver bawaan atau alamat yang dikodekan keras.
  • Penyaringan DNS di gerbang VPN: mencakup klien yang memakai resolver yang didorong, dan melewatkan klien yang menimpa DNS.
  • Aturan keluar gerbang berdasarkan alamat atau SNI: tidak bergantung pada DNS klien, tetapi buta terhadap nama yang tidak dapat dibacanya dan alamat yang belum dipelajarinya.
  • Kebijakan peramban atau perangkat terkelola: kuat pada perangkat keras terkelola, tidak ada pada perangkat pribadi.

Tidak satu pun dari ini adalah batas keamanan terhadap pengguna yang bertekad pada perangkat tidak terkelola. Ini adalah kendali kebijakan, dan deskripsi yang jujur mengatakan lalu lintas mana yang benar-benar dicakup masing-masing.

Pilih lapisan yang sesuai dengan maksud: kenyamanan rumah tangga ada pada perangkat, dan aturan organisasi ada di gerbang.

Uji kedua keadaan sebelum menyebutnya selesai

Jalankan tiga perintah yang sama dengan VPN tersambung dan terputus: getent ahosts untuk melihat jawaban resolver, nslookup untuk melihat apa yang dikembalikan kueri, dan curl -I ke situs untuk melihat apakah koneksi masih selesai. Jika yang pertama mengembalikan loopback sementara yang ketiga terhubung ke alamat asli, sesuatu telah melewati resolver dan entri hosts bukan kendali yang Anda kira.

Di router, bacalah penghitung filter sebelum dan sesudah permintaan. Penghitung yang tidak pernah bergerak berarti lalu lintas tidak pernah mencapai filter, dan itu jawaban perutean, bukan jawaban aturan.

Catat hasilnya bersama topologi, karena perubahan VPN berikutnya akan memindahkan jalur lagi.

Artikel terkait