Berbagi stasiun kerja memunculkan pertanyaan yang tidak pernah harus dijawab laptop satu pengguna: setelah satu orang mengautentikasi tunnel, siapa lagi yang dapat menggunakannya? Login mengidentifikasi subjek, dan rute yang dipasangnya menggambarkan cakupan, dan keduanya bukan objek yang sama. Di antara keduanya ada sistem operasi, konfigurasi klien, dan apa yang dituntut layanan privat itu sendiri. Membandingkan titik penegakan adalah satu-satunya cara menjawab pertanyaan itu tanpa menebak.

Satu Login, Beberapa Cakupan

Autentikasi menjawab siapa yang diterima. Rute menjawab paket mana yang boleh keluar melalui tunnel. Otorisasi menjawab layanan mana yang akan menerima koneksi yang dihasilkan, dan tidak satu pun dari ketiganya menyiratkan yang berikutnya.

Tunnel seluruh host adalah default umum, dan itu membuat celahnya jelas. Rute berada di tabel kernel, jadi setiap proses yang memakai tabel itu dapat mencapai jaringan privat, termasuk proses yang dijalankan pengguna yang tidak pernah melihat dialog VPN. Itu bukan cacat pada tunnel; itulah arti rute seluruh sistem. Layanan privat tetap dapat menolak koneksi, karena itu keterjangkauan dan izin perlu jawaban terpisah.

Menuliskan keempat pertanyaan sebelum pengujian mencegah tinjauan runtuh menjadi salah satunya.

Di Mana Batasnya Sebenarnya

Empat susunan mencakup sebagian besar mesin: tunnel seluruh host, koneksi per pengguna, daftar izin per aplikasi, dan ruang nama jaringan atau mesin virtual terpisah.

Masing-masing menempatkan titik penegakan di tempat berbeda, dan perbedaannya lebih penting daripada labelnya. Koneksi per pengguna ditegakkan oleh izin profil, bukan oleh layar login desktop. Daftar izin per aplikasi ditegakkan di dalam klien, yang memutuskan apa yang akan dibawanya. Ruang nama atau VM menegakkan di batas antarmuka, sehingga proses di dalamnya sama sekali tidak melihat rute host. Jumlah layar login di mesin tidak mengatakan apa pun tentang salah satunya.

ArrangementEnforced byWho can use the path
Host-wide tunnelThe routing tableAny local process using that table
Per-user connectionProfile permission listOnly the listed accounts
Per-app allowlistThe VPN client itselfOnly the selected applications
Namespace or VMThe interface boundaryOnly processes inside it

Membaca tabel baris demi baris menunjukkan pertanyaan sebenarnya bukan apakah ada isolasi, melainkan di mana ia diterapkan.

Bandingkan Empat Titik Penegakan

Di Linux tabel rute adalah hal pertama yang diperiksa, karena tunnel seluruh host muncul di sana sedangkan ruang nama tidak. Menjalankan pencarian sebagai pengguna kedua adalah langkah yang dilewati orang; jawabannya berbeda dari yang mereka dapat sebagai diri sendiri, dan itu menjelaskan laporan.

Dua pemeriksaan berikutnya melihat kebijakan, bukan perutean. Aturan firewall yang cocok dengan UID berlaku untuk lalu lintas yang dibuat secara lokal, jadi dapat memisahkan dua pengguna di satu host bahkan ketika keduanya berbagi rute. Profil koneksi dengan daftar izin eksplisit ditegakkan oleh manajer jaringan saat aktivasi. Kedua pemeriksaan tidak menuntut tunnel diubah, karena itu keduanya layak dilakukan sebelum merancang ulang apa pun.

ip route get 10.40.2.10
sudo -u bob ip route get 10.40.2.10
nmcli connection show vpn-work | grep -i permission
sudo nft list ruleset | grep -n skuid

Jika pencarian kedua menunjukkan rute tunnel, batasnya bukan di tempat yang diasumsikan rancangan.

Aturan Sesi Bersamaan adalah Kontrol Terpisah

Gateway sering membatasi berapa sesi yang boleh dipegang satu akun, dan batas itu tidak ada hubungannya dengan pengguna lokal. Batas itu membatasi akun, jadi orang kedua yang masuk dengan kredensial sama dapat memutus tunnel orang pertama.

Baca kegagalannya sebelum menganggap masalah isolasi lokal. Batas sesi menghasilkan pemutusan di gateway, sedangkan masalah cakupan menghasilkan tunnel yang bekerja tetapi tidak membawa lalu lintas pengguna lain. Kedua gejala itu mengarah ke perbaikan yang sangat berbeda. Simpan pesan klien yang tepat, karena biasanya menyebut aturannya. Mintalah alur kerja yang disetujui kepada pemilik profil daripada mengakali batas itu.

Mesin virtual tidak membebaskan siapa pun dari aturan itu, dan ia menambahkan rancangan jaringan serta kredensialnya sendiri.

Uji Konteks yang Anda Pedulikan

Uji pengguna dan aplikasi yang dimaksud, lalu uji konteks yang seharusnya ditolak. Tinjauan yang hanya membuktikan kata sandi asli berfungsi telah menguji autentikasi dan bukan yang lain.

sudo -u bob curl -sS -m 5 https://intranet.internal/health
wg show
ss -tnp | grep -E ':443|:51820'

Catat titik penegakan di samping setiap hasil: tabel rute, aturan UID, izin profil, atau kebijakan sesi gateway. Catatan itu membuat perubahan berikutnya dapat ditinjau. Ia juga menghentikan pertanyaan yang sama dibuka kembali setiap kali seseorang menyadari layar login kedua. Keterjangkauan bukan otorisasi, dan tidak satu pun dari keduanya adalah isolasi.

Artikel terkait