Subnet hilir vs VPN desktop: kecualikan transit, bukan aplikasi
Bypass per aplikasi hanya mengklasifikasikan keluaran lokal. Perangkat di belakang workstation memerlukan kebijakan masuk, penerusan, dan jalur balik sendiri.
Satu mesin, dua pekerjaan, satu firewall: tautan naik Wi-Fi, subnet Ethernet kecil di belakangnya, dan klien VPN desktop yang menganggap semua yang keluar dari mesin itu lokal. Aplikasi yang dijalankan secara lokal keluar melalui jalur keluaran lokal. Perangkat di belakang workstation tiba di port Ethernet dan memerlukan keputusan penerusan. Pengecualian yang ditulis untuk jalur pertama tidak pernah melihat jalur kedua, dan itulah sebabnya peramban melewati terowongan sementara perangkat tidak.
Dua jalur paket, satu kebijakan
| Origin | Path | Decision owner |
|---|---|---|
| Application on the workstation | OUTPUT then egress | The VPN app's routing policy |
| Device behind the workstation | PREROUTING then FORWARD | The workstation's own forwarding policy |
Baris pertama adalah yang dijelaskan sebagian besar panduan split-tunneling. Baris kedua adalah konfigurasi router yang kebetulan berada di mesin yang sama. Meleburnya menjadi satu model mental adalah kesalahannya; keduanya berbagi kernel, tetapi tidak berbagi kebijakan. Gambarkan kedua jalur sebelum mengubah aturan apa pun, dan sisa desain mengikuti dari jalur mana yang hilang.
Tabel itu juga menjelaskan mengapa satu mesin bisa lulus satu uji dan gagal uji lain. Peramban di workstation membuktikan jalur lokal; laptop yang dicolokkan ke port Ethernet membuktikan jalur penerusan. Validasi setiap perubahan dengan keduanya, atau yang kedua tetap tak teruji berapa kali pun peramban dimuat ulang.
Apa yang sebenarnya diklasifikasikan oleh pengecualian aplikasi
Pengecualian per aplikasi biasanya bekerja dengan menandai paket dari suatu proses atau pengguna, lalu merutekan lalu lintas bertanda ke luar terowongan. Itu konstruksi keluaran lokal. Paket dari perangkat hilir tidak memiliki proses lokal, jadi tidak pernah cocok dengan pemilih, apa pun pemilihnya.
Apa pun pemilihnya, kedua daftar itu bukan daftar yang sama, dan itulah intinya. Panduan Mullvad untuk Linux menjelaskan tanda yang dikonsumsi oleh firewall dan kebijakan peruteannya, dan contoh-contohnya menyasar keluaran lokal; itu bukan deskripsi router hilir yang didukung. Menyalinnya menghasilkan mesin yang percaya punya pengecualian sementara meneruskan semuanya ke terowongan.
Tulis kontrak transit
Sebutkan bersama prefiks sumber hilir dan antarmuka masuk, lalu batasi prefiks itu di pintu masuk. Tanpa pembatasan, perangkat apa pun yang mencapai port dapat mengklaim alamat yang dikecualikan dan keluar melalui bypass. Perlakukan sebagai dua pertanyaan: bolehkah host ini memakai tautan naik ini sama sekali, dan bolehkah mereka mencapai workstation atau rentang privat terowongan? Itu izin tambahan, bukan efek samping dari pilihan tautan.
Izinkan penerusan, lalu saring. Gateway Linux memerlukan penerusan aktif, aturan yang mengizinkan lalu lintas yang dimaksud di kedua arah, dan entah rute balik hulu atau terjemahan sumber yang sengaja dibatasi. NAT saja tidak memilih tautan naik dan tidak memberi jalan melalui filter; ia hanya menulis ulang alamat setelah keputusan itu.
Klasifikasi untuk transit harus terjadi sebelum keputusan rute penerusan, yang berarti tahap prerouting dan bukan output. Aturan yang ditempatkan setelah keputusan masih dapat mengubah paket, tetapi tidak dapat mengubah ke mana paket sudah dikirim.
Tanda milik aplikasi yang memilikinya
Nilai tanda, nomor tabel, dan prioritas rantai adalah bagian dari kebijakan aplikasi VPN, bukan konstanta abadi. Jaringan yang tahan lama dan bergantung pada penyisipan aturan ke tabel yang dibuat ulang program lain akan rusak pada pembaruan berikutnya, biasanya saat menyambung ulang dan bukan pada waktu yang nyaman.
Menambahkan rantai basis kedua dengan putusan accept tidak selalu mengalahkan drop rantai berikutnya. Rantai basis memiliki hook dan prioritas, dan putusan pertama dalam urutan yang menang; accept di satu rantai tidak membatalkan drop yang dicapai rantai lain lebih dulu. Lihat seluruh kumpulan aturan dan urutan kebijakan perutean, bukan satu penghitung yang bertambah. Penghitung membuktikan aturan berjalan, tidak pernah membuktikan putusannya yang diterapkan.
Integrasikan, atau pindahkan subnet
Kedua desain berbeda dalam siapa yang memiliki bypass. Desain terintegrasi mempertahankan satu mesin dan satu kebijakan, dengan biaya bergantung pada siklus hidup tabel aplikasi VPN dan pada sekumpulan tanda yang dokumentasinya dapat berubah. Router khusus untuk jaringan hilir menghapus ketergantungan itu sepenuhnya: subnet punya tautan naik sendiri, dan workstation tetap menjadi klien tanpa peran penerusan.
Pilih yang kedua ketika jaringan hilir harus tetap berfungsi melalui pembaruan VPN, atau ketika tidak ada yang dapat menguji kebijakan terintegrasi setelah setiap rilis. Pilih yang pertama hanya ketika integrasinya terdokumentasi dan ada yang bertanggung jawab.
Verifikasi batas dalam empat keadaan: terhubung, menyambung ulang, sengaja diblokir, dan dihentikan. Periksa resolusi nama dan kedua keluarga alamat pada masing-masing, karena bypass yang membocorkan DNS bukan pengecualian yang Anda rancang. Uji harus membuktikan batas yang tepat, bukan hanya bahwa satu halaman termuat.