Los equipos de oficina llegan al recurso compartido, los usuarios de VPN agotan el tiempo de espera y la misma cuenta funciona desde un punto de acceso móvil. Los permisos de uso compartido rara vez son la diferencia; la dirección que llega al servidor de archivos suele serlo. Una regla limitada a LocalSubnet admite las subredes conectadas del propio servidor, y un grupo VPN enrutado por separado no es una de ellas. Dos diseños cierran la brecha, y dejan registros muy distintos.

Dos diseños, un síntoma

El primer diseño añade el grupo VPN a la condición de dirección remota de la regla. El servidor pasa a ver la dirección de túnel de cada cliente, de modo que sus registros pueden distinguir a un usuario remoto de otro. El segundo diseño enruta el tráfico VPN por una puerta de enlace que lo traduce a una dirección LAN antes de que el servidor lo vea. Eso restaura la conectividad y elimina la distinción en el mismo paso.

La tabla describe roles, no direcciones, y sus propios prefijos deciden qué fila se aplica. Imprima los valores reales del servidor en lugar de copiar un ejemplo de una entrada de blog:

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

La tabla es una ayuda para decidir, no una afirmación sobre cada despliegue. Un host con interfaces adicionales, un segundo enlace de sitio o una máscara distinta tiene un conjunto 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

La referencia de New-NetFirewallRule de Microsoft documenta las condiciones de dirección remota y la palabra clave LocalSubnet. Léala antes de decidir que la palabra clave significa todas las direcciones privadas, porque no es así.

Compare qué recibe realmente el servidor

Lea la regla efectiva en lugar de la que alguien recuerda haber creado. Compruebe que está habilitada, que se aplica al perfil activo y que su condición de dirección remota coincide con el origen que ve el servidor. Una regla habilitada solo en el perfil Dominio no hace nada cuando el adaptador ha pasado a Público tras un cambio de red.

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

El primer comando imprime los filtros de dirección asociados a las reglas de uso compartido de archivos, y el segundo muestra qué perfiles están activos y cómo se trata el tráfico entrante que no coincide. Busque también una regla de bloqueo y una directiva administrada centralmente. Las reglas de bloqueo tienen prioridad sobre las de permiso, y una directiva que deshabilite la fusión de reglas locales puede dejar inerte una nueva excepción local.

Ese es el caso en que la regla parece correcta en la consola y no tiene ningún efecto sobre el tráfico. Compruebe la asignación de perfil al mismo tiempo, porque un portátil que se ha unido a otra red puede pasar al perfil Público sin que nadie toque el firewall.

Pruebe el transporte antes del inicio de sesión

Separe la accesibilidad de la autenticación. Un receptor en TCP 445 demuestra que un servicio está vinculado al puerto; no demuestra que un paquete remoto pueda alcanzarlo. Una conexión TCP completada, a su vez, todavía no dice nada sobre el establecimiento de la sesión SMB ni sobre los permisos de uso compartido. Pruebe el handshake desde ambos lados antes de editar una regla.

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

El primer comando informa si un handshake TCP se completa desde la máquina en la que lo ejecuta, y el segundo añade la dirección resuelta y los detalles de la interfaz. Ejecútelo desde el cliente VPN y desde un equipo de oficina, y compare. Ping no responde a ninguna de las dos preguntas, porque ICMP puede estar bloqueado mientras SMB está abierto, o permitido mientras el firewall descarta 445.

Si el handshake falla solo desde la VPN, el alcance de origen es el principal sospechoso. Si se completa y el recurso compartido sigue rechazándole, pase al diagnóstico de la sesión SMB y de los permisos en lugar de editar reglas de firewall.

Cuando el NAT de origen elimina la distinción

Con traducción en el camino, el servidor no puede distinguir clientes VPN individuales por dirección. Cada usuario remoto llega como la puerta de enlace. Cualquier autorización que dependa de distinguirlos debe aplicarse donde sus identidades sigan siendo visibles, lo que normalmente significa el concentrador VPN o un proxy autenticador. La regla de firewall puede admitir tráfico; no puede restaurar una distinción que la traducción eliminó.

Una vez permitida esa dirección de puerta de enlace, cada usuario remoto queda registrado bajo una única dirección, así que la regla concede todo el grupo a cualquiera que pueda alcanzar la puerta de enlace. Si importa una decisión por usuario, mantenga visibles las direcciones originales o traslade la decisión a una capa que aún conozca al usuario. De lo contrario, cada usuario remoto hereda los permisos de la única dirección que el servidor puede ver, y el rastro de auditoría ya no puede distinguirlos. Es una decisión de diseño, no un detalle del firewall.

Elija deliberadamente entre los dos diseños. Limite la regla al grupo VPN real cuando el servidor deba ver quién se conectó, y acepte la ruta traducida solo cuando el servidor realmente no necesite esa información. Anote el rango de origen elegido junto a la regla, porque la próxima persona que depure esto mirará primero la tabla de direcciones.

Artículos relacionados