Profil firewall vs egress VPN: mengapa publik bukan jalur
Profil firewall memilih kumpulan aturan mana yang berlaku. Ia tidak mengatakan apa pun tentang antarmuka mana yang membawa paket, dan blokir eksplisit mengalahkan izin yang lebih sempit.
Aturannya terdengar tepat: izinkan lalu lintas lokal pada profil privat dan hanya lalu lintas VPN pada profil publik. Sebenarnya tidak, karena profil jaringan memilih kumpulan aturan firewall mana yang berlaku dan tidak mengatakan apa pun tentang adaptor mana yang membawa paket. Memperlakukan nama profil sebagai syarat jalur adalah kesalahan yang membuat rancangan egress terbatas tampak selesai padahal belum.
Tuliskan dulu alirannya, lalu tentukan mekanisme mana yang benar-benar dapat menegakkan masing-masing. Daftar aliran itu satu-satunya artefak yang bertahan setelah perubahan aturan berikutnya.
Kategori memilih aturan, bukan rute
Saat Windows mengklasifikasikan jaringan sebagai publik atau privat, firewall menerapkan kumpulan aturan yang dikonfigurasi untuk profil tersebut. Klasifikasi mengikuti jaringan tempat adaptor bergabung, dan kumpulan aturan menentukan apa yang diizinkan di dalamnya. Tak satu pun fakta itu bergantung pada apakah lalu lintas aplikasi memakai terowongan. Ketidakbergantungan itulah seluruh kesulitannya.
Pemilihan jalur dilakukan oleh perutean, melalui metrik antarmuka dan prefiks yang dipasang terowongan. Karena itu profil bisa berlabel publik sementara koneksi aplikasi menempuh jalur fisik, dan firewall tetap akan melaporkan bahwa kumpulan aturan publik diterapkan.
Itulah sebabnya aturan yang dibatasi pada profil tidak bisa berarti hanya terowongan. Kedua sifat ditentukan komponen berbeda dan yang satu tidak dapat menggantikan yang lain.
| Flow | What decides it | What a rule can enforce |
|---|---|---|
| VPN client to its endpoint | Routing plus the outer transport | Allow the client process before the tunnel exists |
| Application to an internet host | Interface metric and prefix length | Block the process unless the tunnel interface is up |
| Application to a LAN host | Local subnet route | Allow one destination, not the whole category |
Blokir eksplisit mengalahkan izin yang lebih sempit
Panduan aturan firewall Microsoft membedakan izin sebagai pengecualian terhadap tindakan blokir bawaan dari blokir eksplisit yang bertentangan dengan izin. Blokir eksplisit memenangkan pertentangan itu, dan aturan keluar mematuhi prioritas yang sama.
Jadi resep populer menambahkan aturan yang memblokir semuanya lalu mengandalkan izin yang lebih sempit di atasnya tidak melakukan apa yang diharapkan penulisnya. Windows Firewall tidak menyelesaikan pertentangan itu berdasarkan urutan aturan yang diberikan administrator. Blokirnya langsung berlaku, dan aplikasi yang menghubungkan melaporkan waktu tunggu habis. Aturan yang tampak seperti pengecualian itu tidak pernah ikut bermain.
Bentuk yang didukung adalah kebijakan tolak bawaan dengan aturan izin yang disetujui, di mana setiap izin menyebut program, layanan, atau tujuan cukup tepat untuk ditinjau. Rancangan itu lolos audit, karena setiap pengecualian terlihat dan tak satu pun bergantung pada urutan pembuatannya.
Dua aturan yang saling bertentangan lebih buruk daripada satu aturan, karena perilaku yang dihasilkan benar sekaligus tak dapat dijelaskan.
Beri kebijakan keluar satu pemilik
Klien VPN yang didukung sudah memelihara perilaku pemblokirannya sendiri dan pengecualian titik akhirnya sendiri. Menambahkan aturan manual yang tidak terkoordinasi dapat membuat klien itu terdampar di luar terowongan yang dibutuhkannya untuk penyiapan, atau membiarkan jalur kedua terbuka yang tidak disadari siapa pun.
Tentukan siapa yang memiliki kebijakan keluar sebelum menulis aturan: konfigurasi klien itu sendiri, kebijakan firewall terkelola, atau daftar pengecualian lokal terdokumentasi dengan pemiliknya. Lalu selaraskan lapisannya alih-alih menumpuk eksperimen sampai ada yang tersambung. Pemilik bernama juga orang yang ditanya ketika dua lapisan tidak sepakat.
Pertahankan saluran pemulihan sebelum mengubah apa pun. Mesin jarak jauh yang terkunci di luar jalur manajemennya sendiri adalah hasil yang lebih buruk daripada celah kebijakan yang sedang Anda tutup. Aturan pemulihan lebih mudah dibenarkan bila ditulis lebih dulu, dan lebih mudah ditemukan bila perubahan gagal pada jam yang tak disukai siapa pun.
Uji empat hasil alih-alih membaca label
Kebijakan hanya sebaik kasus yang dibedakannya, jadi perlakukan label profil sebagai titik awal, bukan hasil. Empat hasil memberi tahu apakah ia bekerja: permintaan LAN yang dimaksudkan berhasil, permintaan internet yang tercakup berhasil, permintaan langsung yang dilarang gagal, dan kasus kegagalan terowongan berperilaku sesuai rancangan alih-alih mundur diam-diam. Tuliskan keempat hasil itu di samping perubahan aturan. Rencana uji dengan empat kasus bernama cukup singkat untuk dijalankan setiap kali dan cukup spesifik untuk gagal dengan nyaring.
Get-NetConnectionProfile | Select-Object Name,NetworkCategory,InterfaceAlias Get-NetFirewallProfile | Select-Object Name,DefaultOutboundAction Get-NetFirewallRule -Direction Outbound -Enabled True | Where-Object Action -eq Block | Select-Object DisplayName,Profile
Perintah pertama menunjukkan bagaimana setiap jaringan yang terhubung diklasifikasikan, yang sering bukan seperti yang diasumsikan penulis aturan. Yang kedua menunjukkan tindakan bawaan per profil, dan yang ketiga mendaftar blokir keluar yang aktif, termasuk yang diam-diam akan menimpa izin yang lebih sempit.
Jalankan keempat kasus lagi setelah perubahan jaringan, karena profil dapat diklasifikasikan ulang saat mesin bergabung ke jaringan lain. Label profil yang cocok bukan bukti bahwa jalurnya seperti yang Anda maksudkan.