El tallafoc de Windows tot sol com a tallacircuit de VPN: aguanta?
Les regles per tipus d’interfície poden bloquejar els adaptadors físics, però un túnel de tercers sovint sembla cablejat. Comproveu la classificació, la ruta del punt final i després el DNS.
Pregunteu si el tallafoc de Windows pot fer tot sol de tallacircuit i obtindreu dues respostes segures i incompatibles. Una diu que la regla per tipus d’interfície fa tota la feina; l’altra que no funciona sense scripts. Totes dues descriuen la meitat del mateix mecanisme. El tallafoc pot expressar el bloqueig, i si el resultat realment falla tancat depèn de tres coses: com classifica Windows l’adaptador del túnel, si l’excepció del punt final sobreviu i si la resolució de noms i IPv6 queden cobertes. Encerta-ho malament en una i la màquina o filtra o perd tota la connectivitat.
Tres condicions, en aquest ordre
La primera condició és la classificació, i decideix si la regla que voleu és fins i tot expressable. Les regles del tallafoc de Windows es poden limitar per tipus d’interfície: cablejat, sense fil o accés remot. Una política que bloqueja el trànsit sortint als tipus físics mentre permet el túnel només funciona si Windows reconeix el túnel com a accés remot.
La segona condició és l’excepció del punt final. Abans que existeixi cap túnel, el client ha d’arribar al servidor VPN per l’adaptador físic, així que un bloqueig total en aquest adaptador impedeix precisament la connexió que faria innecessari el bloqueig. L’excepció ha de nomenar el servidor i el seu port, i el paquet ha de sortir per la passarel·la física en lloc d’entrar en un túnel que encara no està aixecat.
La tercera és la cobertura. Un conjunt de regles que bloqueja IPv4 i s’oblida d’IPv6, o que permet al resolutor local la consulta del punt final i per tant permet qualsevol altra consulta, falla obert exactament en la finestra que el tallacircuit existeix per cobrir. És una mancança de disseny, no un error del tallafoc. També és la mancança que sobreviu a cada prova feta a taula.
La classificació és la primera porta
Mireu què pensa Windows dels adaptadors abans d’escriure ni una regla. Una connexió VPN nativa de Windows sol aparèixer com a accés remot. Un client de tercers que crea el seu propi adaptador virtual sovint apareix com a cablejat, cosa que vol dir que un bloqueig limitat als adaptadors cablejats també bloqueja el túnel.
Get-NetConnectionProfile | Select-Object Name,InterfaceAlias,NetworkCategory
Get-NetAdapter | Select-Object Name,InterfaceDescription,Status,ifIndex
Get-NetFirewallProfile | Select-Object Name,Enabled,DefaultOutboundAction
La tercera ordre us diu si ja hi ha en vigor un bloqueig sortint per defecte, cosa que canvia tota la forma del disseny. Si el defecte ja és bloquejar, escriviu regles de permís en lloc d’excepcions a una base permissiva, i aquesta és una postura molt més fàcil de raonar.
Si el vostre adaptador de túnel es declara cablejat, el tallafoc tot sol no és l’eina adequada per a un disseny de fallada tancada, i cap ajust de regles ho canvia. És el cas en què la segona opinió de cada fil del fòrum és correcta.
L’excepció del punt final necessita una ruta, no només una regla
Suposem que la classificació funciona. L’excepció són dues peces, i viuen en subsistemes diferents. La regla del tallafoc permet el trànsit; la ruta de l’amfitrió el fa sortir per la interfície correcta mentre el túnel està baixat.
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
Sense la ruta, l’excepció del punt final només ajuda mentre una ruta per defecte encara apunta a la passarel·la física. Quan el client instal·la la seva pròpia ruta per defecte i després mor, els paquets permesos no tenen on anar de manera sensata i la connexió no es pot restablir. Aquesta fallada sembla un client espatllat i en realitat és una ruta que falta.
Mantingueu l’excepció tan estreta com permeti el client. Una adreça i un port són revisables; un rang que cobreix tota la xarxa del proveïdor no ho és. Aquesta regla més àmplia també permet qualsevol altra cosa allotjada al mateix proveïdor, que normalment és més del que volíeu.
DNS i IPv6 són on falla obert
La resolució de noms és la filtració clàssica. Si el punt final és un nom d’amfitrió, el client l’ha de resoldre abans que existeixi el túnel, cosa que vol dir que cal permetre a l’adaptador físic arribar a un resolutor. Aquest mateix permís deixa sortir qualsevol altra consulta mentre el túnel està baixat, i una consulta ja n’hi ha prou per revelar què anàveu a visitar.
IPv6 és el segon. Les regles escrites per a IPv4 no cobreixen l’altra família, i molts clients només instal·len rutes IPv4. Així, una màquina amb connectivitat IPv6 nativa pot continuar parlant amb internet mentre el costat IPv4 està fermament bloquejat, i el tallacircuit informa d’èxit tot el temps.
| Gap | What leaks | Control |
|---|---|---|
| Resolver permitted for endpoint lookup | Every name queried while down | Pin the endpoint as an address, or block non-tunnel DNS |
| Rules only for IPv4 | Full IPv6 connectivity | Add the same rules for the other family |
| Application bound to physical interface | Its own traffic | Firewall cannot fix this; change the binding |
La tercera fila val la pena entendre-la en lloc d’esquivar-la. El tallafoc decideix sobre paquets, no sobre quina interfície ha demanat servir una aplicació, i un programa que s’enllaça explícitament pot ser difícil de contenir. Això és un argument a favor d’un tallacircuit del costat del client que opera per sota de l’aplicació, no de més regles.
Proveu aturant el client, no estirant el cable
L’única prova significativa és la que imita la fallada contra la qual us protegiu. Atureu el servei, mateu el procés o desactiveu l’adaptador que ha creat el client, i després proveu d’arribar a internet i a un nom:
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
Totes tres haurien de fallar. Si la primera té èxit, el bloqueig no és vigent; si la segona té èxit on la primera ha fallat, teniu una filtració de DNS; si la tercera té èxit, IPv6 no està cobert. Cada resultat assenyala exactament una de les mancances anteriors.
Repetiu la prova després d’una suspensió i represa, perquè el perfil del tallafoc pot canviar quan Windows decideix que una xarxa és pública o privada, i les regles limitades a un perfil el segueixen. Un disseny que aguanta a taula i falla al tren és un disseny que s’ha provat una vegada.
Si la porta de classificació o el requisit de DNS fan inviable l’enfocament de només tallafoc, un tallacircuit del costat del client és la resposta honesta. Si el túnel acaba en un encaminador, la política hauria de ser de l’encaminador, perquè una regla allà cobreix cada dispositiu que hi ha darrere i no depèn de com Windows etiqueta un adaptador.