Merangkai dua VPN: apa yang disembunyikan dan berapa biayanya
Tunnel bersarang mengubah siapa yang melihat ujung mana, bukan siapa yang melihat Anda. Rutekan ujung dalam melalui tunnel luar, lalu periksa DNS, MTU, dan jalur cadangan.
Dua tunnel bersarang tidak membuat Anda anonim. Yang mereka lakukan adalah membagi pengamatan di antara dua penyedia, sehingga tidak ada yang melihat alamat rumah dan tujuan Anda bersamaan. Ini manfaat nyata tetapi sempit, dan datang bersama masalah routing, DNS, dan MTU yang muncul pertama kali Anda bergantung padanya.
1. Putuskan untuk apa hop kedua
Tulis tujuan dalam satu kalimat sebelum Anda mengonfigurasi apa pun. Jika tujuannya agar ISP Anda tidak bisa melihat situs mana yang Anda kunjungi, satu tunnel mencapainya. Jika tujuannya agar tidak ada penyedia tunggal yang bisa mengaitkan alamat Anda dengan lalu lintas Anda, dua tunnel melakukannya. Jika tujuannya agar tidak ada yang bisa mengidentifikasi Anda, berapa pun hopnya tidak sampai ke sana.
Rantai hanya sekuat log penyedia yang lebih lemah dan catatan akun yang disimpan keduanya. Pembayaran, email pendaftaran, dan telemetri aplikasi berada sepenuhnya di luar tunnel.
2. Buat ujung dalam dapat dijangkau melalui tunnel luar
Kegagalan yang biasa adalah tunnel dalam tidak pernah terbentuk. Koneksi luar tunnel penuh memiliki rute default, sehingga upaya klien dalam menjangkau ujungnya sendiri ditelan tunnel luar dan dibuang atau masuk loop. Ujung dalam membutuhkan rute eksplisit melalui antarmuka luar, dipasang sebelum klien dalam mulai. Kalau tidak, handshake berlomba dengan rute dan kalah.
WireGuard menunjukkan konflik yang sama dari arah lain. AllowedIPs tiap peer menentukan tujuan mana yang masuk ke tunnel itu, sehingga antarmuka dalam yang mengklaim semua alamat juga mengklaim ujung luar, kecuali rute yang lebih spesifik menang. Tumpang tindih AllowedIPs di dua antarmuka adalah konfigurasi di mana satu sisi kalah diam-diam.
Perangkaian kontainer membuat pemisahan eksplisit dan jebakannya jelas. Kontainer dengan namespace sendiri, rute default sendiri, dan klien di dalamnya meneruskan apa yang dikirim host kepadanya; host tidak mulai memakai jalur itu sendiri. Aktifkan penerusan, tambahkan rute untuk tunnel kontainer, dan arahkan layanan ke alamat kontainer.
3. Jaga DNS di jalur yang sama
DNS harus berjalan ke tempat lalu lintas berjalan. Jika penyedia dalam mendorong resolver dan host masih menanyakan yang lokal, pencarian itu mengungkap persis situs yang seharusnya disembunyikan tunnel. Periksa dengan tangkapan pada tiap antarmuka tunnel alih-alih memercayai panel status klien. Kebocoran di sini tak terlihat saat menjelajah normal dan jelas dalam tangkapan.
Desain DNS terpisah membuat ini lebih sulit, karena kueri untuk nama lokal bisa sah berada di luar tunnel. Tulis daftar pengecualian dengan sengaja alih-alih menemukannya dari resolver mana yang kebetulan menjawab.
4. Atur MTU sebelum pengguna mengetahuinya untuk Anda
MTU adalah korban lain yang bisa diprediksi. Dua enkapsulasi mengurangi dua header, dan tunnel luar yang sudah menurunkan MTU jalur menyisakan lebih sedikit ruang di dalam. Gejalanya akrab: permintaan kecil berhasil, transfer besar dan handshake TLS macet.
ip link set dev wg1 mtu 1280 adalah perbaikan kasar, dan membatasi MSS di penerus adalah yang lebih rapi. Mencoba ulang koneksi sama sekali bukan perbaikan.
5. Uji kegagalan yang benar-benar akan Anda dapat
Putuskan tunnel luar dengan sengaja dan lihat apa yang terjadi. Rantai yang diam-diam jatuh ke jalur langsung saat hop luar mati lebih buruk daripada tanpa rantai, karena bocor tepat pada saat Anda mengira sudah terlindungi. Perilaku yang dituju adalah kill switch yang menghentikan semua lalu lintas. Catat hasilnya, karena Anda tidak akan ingin menemukannya lagi di tengah insiden.
Latensi dan titik kegagalan kedua adalah biaya tetap. Dua hop juga berarti dua antrean dukungan saat sesuatu rusak pada jam yang tidak nyaman.