Tanya sama ada firewall Windows boleh bertindak sendiri sebagai suis mati dan anda akan mendapat dua jawapan yakin yang tidak serasi. Satu mengatakan peraturan jenis antara muka melakukan seluruh tugas; satu lagi mengatakan ia tidak berfungsi tanpa skrip. Kedua-duanya menerangkan separuh mekanisme yang sama. Firewall boleh menyatakan sekatan, dan sama ada hasilnya benar-benar gagal tertutup bergantung pada tiga perkara: cara Windows mengklasifikasikan penyesuai terowong, sama ada pengecualian titik akhir kekal, dan sama ada penyelesaian nama serta IPv6 dilindungi. Silap mana-mana satu dan mesin akan bocor atau kehilangan semua sambungan.

Tiga syarat, dalam urutan ini

Syarat pertama ialah klasifikasi, dan ia menentukan sama ada peraturan yang anda mahu boleh dinyatakan. Peraturan firewall Windows boleh dihadkan mengikut jenis antara muka: berkabel, tanpa wayar atau akses jauh. Dasar yang menyekat trafik keluar pada jenis fizikal sambil membenarkan terowong hanya berfungsi jika Windows mengenali terowong sebagai akses jauh.

Syarat kedua ialah pengecualian titik akhir. Sebelum ada terowong, klien mesti mencapai pelayan VPN melalui penyesuai fizikal, jadi sekatan menyeluruh pada penyesuai itu menghalang tepat sambungan yang akan menjadikan sekatan tidak perlu. Pengecualian mesti menamakan pelayan dan portnya, dan paket mesti keluar melalui pintu masuk fizikal, bukan masuk ke terowong yang belum naik.

Yang ketiga ialah liputan. Set peraturan yang menyekat IPv4 dan melupakan IPv6, atau membenarkan penyelesai setempat mencari titik akhir dan seterusnya membenarkan setiap carian lain, gagal terbuka tepat pada tetingkap yang menjadi sebab suis mati wujud. Itu jurang reka bentuk, bukan pepijat dalam firewall. Ia juga jurang yang bertahan setiap ujian di meja.

Klasifikasi ialah pintu pertama

Lihat apa yang Windows fikirkan tentang penyesuai sebelum menulis satu peraturan pun. Sambungan VPN asli Windows biasanya muncul sebagai akses jauh. Klien pihak ketiga yang mencipta penyesuai mayanya sendiri sering muncul sebagai berkabel, bermakna sekatan yang terhad kepada penyesuai berkabel juga menyekat terowong.

Get-NetConnectionProfile | Select-Object Name,InterfaceAlias,NetworkCategory
Get-NetAdapter | Select-Object Name,InterfaceDescription,Status,ifIndex
Get-NetFirewallProfile | Select-Object Name,Enabled,DefaultOutboundAction

Perintah ketiga memberitahu sama ada sekatan keluar lalai sudah berkuat kuasa, yang mengubah seluruh bentuk reka bentuk. Jika lalai sudah menyekat, anda menulis peraturan kebenaran dan bukan pengecualian kepada asas yang permisif, dan itu pendirian yang jauh lebih mudah difikirkan.

Jika penyesuai terowong anda melaporkan sebagai berkabel, firewall sahaja bukan alat yang betul untuk reka bentuk gagal tertutup, dan tiada penalaan peraturan mengubahnya. Inilah kes apabila pendapat kedua dalam setiap utas forum adalah betul.

Pengecualian titik akhir memerlukan laluan selain peraturan

Katakan klasifikasi berjaya. Pengecualian terdiri daripada dua bahagian, dan kedua-duanya hidup dalam subsistem berbeza. Peraturan firewall membenarkan trafik; laluan hos membuatnya keluar melalui antara muka yang betul semasa terowong turun.

New-NetFirewallRule -DisplayName "VPN endpoint allow" -Direction Outbound -Action Allow \
  -Protocol TCP -RemoteAddress 203.0.113.9 -RemotePort 443 -InterfaceType Wired,Wireless
New-NetRoute -DestinationPrefix 203.0.113.9/32 -InterfaceIndex 12 -NextHop 192.168.1.1
Get-NetRoute -DestinationPrefix 203.0.113.9/32

Tanpa laluan, pengecualian hanya membantu selagi laluan lalai masih menunjuk ke pintu masuk fizikal. Sebaik sahaja klien memasang laluan lalainya sendiri dan kemudian mati, paket yang dibenarkan tidak mempunyai tempat munasabah untuk pergi dan sambungan tidak dapat dipulihkan. Kegagalan itu kelihatan seperti klien rosak dan sebenarnya laluan yang hilang.

Kekalkan pengecualian sesempit yang dibenarkan klien. Satu alamat dan satu port boleh disemak; julat yang meliputi seluruh rangkaian penyedia tidak. Peraturan lebih luas itu juga membenarkan apa-apa lagi yang dihoskan pada penyedia sama, yang biasanya lebih daripada yang anda maksudkan.

DNS dan IPv6 ialah tempat ia gagal terbuka

Penyelesaian nama ialah kebocoran klasik. Jika titik akhir ialah nama hos, klien mesti menyelesaikannya sebelum terowong wujud, bermakna penyesuai fizikal mesti dibenarkan mencapai penyelesai. Kebenaran yang sama membiarkan setiap carian lain keluar semasa terowong turun, dan satu carian cukup untuk mendedahkan apa yang anda hendak lawati.

IPv6 ialah yang kedua. Peraturan yang ditulis untuk IPv4 tidak meliputi keluarga satu lagi, dan banyak klien hanya memasang laluan IPv4. Mesin dengan sambungan IPv6 asli boleh terus bercakap dengan internet sementara bahagian IPv4 disekat rapi, dan suis mati melaporkan kejayaan sepanjang masa.

GapWhat leaksControl
Resolver permitted for endpoint lookupEvery name queried while downPin the endpoint as an address, or block non-tunnel DNS
Rules only for IPv4Full IPv6 connectivityAdd the same rules for the other family
Application bound to physical interfaceIts own trafficFirewall cannot fix this; change the binding

Baris ketiga wajar difahami dan bukan dielakkan. Firewall membuat keputusan tentang paket, bukan tentang antara muka mana yang diminta oleh aplikasi, dan program yang mengikat dirinya secara eksplisit mungkin sukar dikawal. Itu hujah untuk suis mati di sisi klien yang berfungsi di bawah aplikasi, bukan untuk lebih banyak peraturan.

Uji dengan menghentikan klien, bukan mencabut kabel

Satu-satunya ujian bermakna ialah yang meniru kegagalan yang anda lindungi. Hentikan perkhidmatan, bunuh proses, atau nyahdayakan penyesuai yang dicipta klien, kemudian cuba capai internet dan satu nama:

Stop-Service -Name "YourVpnService" -Force
Test-NetConnection -ComputerName 1.1.1.1 -Port 443
Resolve-DnsName example.com
Test-NetConnection -ComputerName 2606:4700:4700::1111 -Port 443

Ketiga-tiganya sepatutnya gagal. Jika yang pertama berjaya, sekatan tidak berkuat kuasa; jika yang kedua berjaya di tempat yang pertama gagal, anda mempunyai kebocoran DNS; jika yang ketiga berjaya, IPv6 tidak dilindungi. Setiap hasil menunjuk tepat pada satu jurang di atas.

Ulang ujian selepas tidur dan bangun, kerana profil firewall boleh berubah apabila Windows memutuskan rangkaian bersifat awam atau peribadi, dan peraturan yang terhad kepada profil mengikutinya. Reka bentuk yang bertahan di meja dan gagal di dalam tren ialah reka bentuk yang diuji sekali.

Jika pintu klasifikasi atau keperluan DNS menjadikan pendekatan firewall-sahaja tidak dapat dilaksanakan, suis mati di sisi klien ialah jawapan jujur. Jika terowong berakhir pada penghala, dasar sepatutnya milik penghala, kerana satu peraturan di sana meliputi setiap peranti di belakangnya dan tidak bergantung pada cara Windows menamakan penyesuai.

Artikel berkaitan