Os escritorios de oficina chegan ao recurso compartido, os usuarios de VPN esgotan o tempo de espera e a mesma conta funciona desde un hotspot do móbil. Os permisos do recurso compartido raras veces son a diferenza; o enderezo que chega ao servidor de ficheiros adoita selo. Unha regra limitada a LocalSubnet admite as subredes propias conectadas ao servidor, e un pool VPN encamiñado por separado non é unha delas. Dous deseños pechan a fenda, e deixan rexistros moi diferentes.

Dous deseños, un síntoma

O primeiro deseño engade o pool VPN á condición de enderezo remoto da regra. O servidor ve entón o enderezo de túnel de cada cliente, polo que os seus rexistros poden separar un usuario remoto doutro. O segundo deseño encamiña o tráfico VPN a través dunha pasarela que o traduce a un enderezo da LAN antes de que o servidor o vexa. Iso restaura a conectividade e elimina a distinción no mesmo paso.

A táboa describe papeis en vez de enderezos, e os teus propios prefixos deciden que fila se aplica. Imprime os valores reais do servidor en lugar de copiar un exemplo dunha publicación de blog:

Get-NetIPAddress -AddressFamily IPv4 | Select-Object InterfaceAlias, IPAddress, PrefixLength

A táboa é unha axuda para decidir, non unha afirmación sobre cada despregamento. Un equipo con interfaces extra, un segundo enlace de sitio ou outra máscara ten un conxunto local distinto.

Path the packet takesAddress the server recordsFilter scope that admits itWhat the log can still tell you
Desktop on the server LANIts own LAN addressLocalSubnet or the LAN prefixWhich workstation connected
Client on the routed VPN poolIts tunnel addressThe VPN pool as a remote addressWhich VPN account connected, if the pool is logged
Client behind source NAT at the gatewayThe gateway's LAN addressThe gateway addressOnly that some VPN user connected
Site-to-site gatewayThe remote gateway's tunnel addressThe remote site's prefixWhich site connected, not which user

A referencia de New-NetFirewallRule de Microsoft documenta as condicións de enderezo remoto e a palabra clave LocalSubnet. Léea antes de decidir que a palabra clave significa todos os enderezos privados, porque non é así.

Compara o que o servidor recibe realmente

Le a regra efectiva en lugar da que alguén lembra ter creado. Comproba que está activada, que se aplica ao perfil activo e que a súa condición de enderezo remoto coincide coa orixe que ve o servidor. Unha regra activada só no perfil Domain non fai nada cando o adaptador pasou a Public tras un cambio de rede.

Get-NetFirewallRule -DisplayGroup 'File and Printer Sharing' | Get-NetFirewallAddressFilter
Get-NetFirewallProfile | Select-Object Name,Enabled,DefaultInboundAction

O primeiro comando imprime os filtros de enderezo asociados ás regras de compartición de ficheiros, e o segundo mostra que perfís están activos e como se trata o tráfico entrante non coincidente. Busca tamén unha regra de bloqueo e unha política xestionada de forma central. As regras de bloqueo teñen prioridade sobre as de permisión, e unha política que desactiva a fusión de regras locais pode deixar inerte unha nova excepción local.

Ese é o caso no que a regra parece correcta na consola e non ten efecto sobre o tráfico. Comproba a asignación de perfil ao mesmo tempo, porque un portátil que se uniu a outra rede pode pasar ao perfil Public sen que ninguén toque a firewall.

Proba o transporte antes do inicio de sesión

Separa a accesibilidade da autenticación. Un listener en TCP 445 demostra que un servizo está ligado ao porto; non demostra que un paquete remoto poida chegar a el. Unha conexión TCP completada, pola súa parte, aínda non di nada sobre a configuración da sesión SMB ou os permisos do recurso compartido. Proba o handshake desde ambos os lados antes de editar unha regra.

Test-NetConnection -ComputerName files.corp.example -Port 445
Test-NetConnection -ComputerName files.corp.example -Port 445 -InformationLevel Detailed

O primeiro comando informa se un handshake TCP ten éxito desde a máquina na que o executas, e o segundo engade o enderezo resolto e os detalles da interface. Execútao desde o cliente VPN e desde un escritorio de oficina, e despois compara. Ping non responde a ningunha das dúas preguntas, porque ICMP pode estar bloqueado mentres SMB está aberto, ou permitido mentres a firewall descarta 445.

Se o handshake falla só desde a VPN, o ámbito de orixe é o principal sospeitoso. Se ten éxito e o recurso compartido aínda che nega o acceso, pasa ao diagnóstico de sesión e permisos SMB en lugar de editar regras de firewall.

Cando o NAT de orixe elimina a distinción

Coa tradución no camiño, o servidor non pode distinguir clientes VPN individuais por enderezo. Cada usuario remoto chega como a pasarela. Calquera autorización que dependa de distinguilos ten que aplicarse onde as súas identidades aínda son visibles, o que normalmente significa o concentrador VPN ou un proxy autenticador. A regra de firewall pode admitir tráfico; non pode restaurar unha distinción que a tradución eliminou.

Unha vez permitido ese enderezo de pasarela, cada usuario remoto queda rexistrado baixo un único enderezo, polo que a regra concede todo o pool a calquera que poida chegar á pasarela. Se importa unha decisión por usuario, mantén visibles os enderezos orixinais ou move a decisión a unha capa que aínda coñeza o usuario. Doutro xeito, cada usuario remoto herda os permisos do único enderezo que o servidor pode ver, e a pista de auditoría non pode distinguilos despois. Iso é unha decisión de deseño, non un detalle da firewall.

Escolle deliberadamente entre os dous deseños. Limita a regra ao pool VPN real cando o servidor deba ver quen se conectou, e acepta o camiño traducido só cando o servidor realmente non necesite esa información. Anota o rango de orixe escollido xunto á regra, porque a próxima persoa que depure isto mirará primeiro a táboa de enderezos.

Artigos relacionados