Profil firewall lawan egress VPN: mengapa awam bukan laluan
Profil firewall memilih set peraturan mana yang terpakai. Ia tidak menyatakan antara muka mana yang membawa paket, dan sekatan eksplisit mengalahkan kebenaran yang lebih sempit.
Peraturan itu kedengaran tepat: benarkan trafik setempat pada profil peribadi dan hanya trafik VPN pada profil awam. Ia tidak begitu, kerana profil rangkaian memilih set peraturan firewall mana yang terpakai dan tidak menyatakan apa-apa tentang penyesuai mana yang membawa paket. Menganggap nama profil sebagai syarat laluan ialah kesilapan yang membuat reka bentuk egress terhad kelihatan siap sedangkan ia belum.
Tuliskan aliran dahulu, kemudian tentukan mekanisme mana yang benar-benar boleh menguatkuasakan setiap satu. Senarai aliran itulah satu-satunya artifak yang bertahan selepas perubahan peraturan seterusnya.
Kategori memilih peraturan, bukan laluan
Apabila Windows mengelaskan rangkaian sebagai awam atau peribadi, firewall menggunakan set peraturan yang dikonfigurasikan untuk profil itu. Pengelasan mengikut rangkaian yang disertai penyesuai, dan set peraturan menentukan apa yang dibenarkan padanya. Tiada satu pun fakta itu bergantung pada sama ada trafik aplikasi menggunakan terowong. Kebergantungan itulah keseluruhan kesukaran.
Pilihan laluan dibuat oleh penghalaan, melalui metrik antara muka dan awalan yang dipasang terowong. Oleh itu profil boleh dilabel awam manakala sambungan aplikasi menempuh laluan fizikal, dan firewall masih akan melaporkan bahawa set peraturan awam telah digunakan.
Sebab itu peraturan yang terhad kepada profil tidak boleh bermaksud terowong sahaja. Kedua-dua sifat ditentukan oleh komponen berbeza dan satu tidak boleh 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 |
Sekatan eksplisit mengatasi kebenaran yang lebih sempit
Panduan peraturan firewall Microsoft membezakan kebenaran sebagai pengecualian kepada tindakan sekatan lalai daripada sekatan eksplisit yang bercanggah dengan kebenaran. Sekatan eksplisit memenangi percanggahan itu, dan peraturan keluar mematuhi keutamaan yang sama.
Jadi resipi popular menambah peraturan yang menyekat segala-galanya dan bergantung pada kebenaran lebih sempit yang diletakkan di atasnya tidak melakukan apa yang penulisnya jangkakan. Windows Firewall tidak menyelesaikan percanggahan itu mengikut urutan peraturan yang diberikan pentadbir. Sekatan itu hanya terpakai, dan aplikasi yang menyambung melaporkan tamat masa. Peraturan yang kelihatan seperti pengecualian itu tidak pernah bertanding.
Bentuk yang disokong ialah dasar tolak lalai dengan peraturan kebenaran yang diluluskan, di mana setiap kebenaran menamakan program, perkhidmatan atau destinasi dengan cukup tepat untuk disemak. Reka bentuk itu bertahan dalam audit, kerana setiap pengecualian kelihatan dan tiada satu pun bergantung pada urutan ia dicipta.
Dua peraturan yang bercanggah antara satu sama lain lebih buruk daripada satu peraturan, kerana tingkah laku yang terhasil betul dan tidak dapat dijelaskan pada masa yang sama.
Berikan dasar keluar seorang pemilik tunggal
Klien VPN yang disokong sudah mengekalkan tingkah laku sekatan sendiri dan pengecualian titik akhir sendiri. Menambah peraturan manual yang tidak diselaraskan boleh membiarkan klien itu terkandas di luar terowong yang diperlukannya untuk persediaan, atau membiarkan laluan kedua terbuka yang tiada siapa perasan.
Tentukan siapa memiliki dasar keluar sebelum menulis peraturan: konfigurasi klien itu sendiri, dasar firewall terurus atau senarai pengecualian tempatan yang didokumenkan dengan pemilik. Kemudian selaraskan lapisan itu dan bukannya menimbun eksperimen sehingga sesuatu bersambung. Pemilik yang dinamakan juga orang yang ditanya apabila dua lapisan tidak bersetuju.
Kekalkan saluran pemulihan sebelum mengubah apa-apa. Mesin jauh yang terkunci di luar laluan pengurusannya sendiri adalah hasil yang lebih buruk daripada jurang dasar yang sedang anda tutup. Peraturan pemulihan lebih mudah dijustifikasikan apabila ditulis lebih awal, dan lebih mudah ditemui apabila perubahan gagal pada waktu yang tiada siapa gemari.
Uji empat hasil dan bukan membaca label
Dasar hanya sebaik kes yang dibezakannya, jadi anggap label profil sebagai titik permulaan dan bukan hasil. Empat hasil memberitahu sama ada ia berfungsi: permintaan LAN yang dimaksudkan berjaya, permintaan internet yang diliputi berjaya, permintaan terus yang dilarang gagal, dan kes kegagalan terowong berkelakuan seperti direka bentuk dan bukannya berundur secara senyap. Tulis keempat-empat hasil itu di sebelah perubahan peraturan. Pelan ujian dengan empat kes bernama cukup pendek untuk dijalankan setiap kali dan cukup khusus untuk gagal dengan kuat.
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 rangkaian yang disambungkan dikelaskan, yang selalunya bukan seperti yang diandaikan oleh penulis peraturan. Yang kedua menunjukkan tindakan lalai bagi setiap profil, dan yang ketiga menyenaraikan sekatan keluar yang didayakan, termasuk yang akan membatalkan kebenaran lebih sempit secara senyap.
Jalankan semula empat kes itu selepas perubahan rangkaian, kerana profil boleh dikelaskan semula apabila mesin menyertai rangkaian lain. Label profil yang sepadan bukan bukti bahawa laluan itu adalah yang anda maksudkan.