6 min read

Solución SMB puerto 445

Solución SMB puerto 445
Photo by Tianyi Ma / Unsplash

Evolución de versiones y actualizaciones importantes

Durante muchos años hemos utilizado SMB Server Manage Block ha sido el estándar para compartir directorios o impresoras en nuestra red local. Comenzó siendo una herramienta de transferencia de datos y ahora ha evolucionado a componente crítico.

Windows 11 24 H2

Las mejoras que se introdujeron en este parche son:

  • Firma de SMB Obligatoria: Ahora es necesaria por defecto para todas las conexiones entrantes y salientes en Windows 11 24 H2. Esto evita ataques de "relay" o intermediario.
  • Bloqueo de NTLM: El cliente SMB ahora puede impedir el uso de autenticación NTLM para conexiones salientes remotas, forzando el uso de Kerberos (más seguro).
    Limitador de Velocidad de Autenticación: El servidor SMB ahora limita los intentos fallidos para mitigar ataques de fuerza bruta.
  • SMB sobre QUIC: Permite el acceso a archivos de forma segura a través de Internet (puerto 443) sin necesidad de una VPN, utilizando certificados y TLS 1.3.
    Desactivación de Invitados (Guest): Windows 11 Pro ya no permite por defecto conexiones de invitados inseguras.

🔥 Apagando fuegos desde septiembre de 2025

Días de desinstalación de actualizaciones. La cosa más aburrida que se ha inventado (y la más peligrosa) pero la productividad estaba de por medio

Si te paso como a mí por circunstancias personales no tenías preparado un plan de acción, te dejo la solución que implementé y que continúa funcionando.

Solución ofrecida

Desde la actualización de Windows 11, 24 H2 y Windows Server 2025, el parche de septiembre hizo mella y, por lo tanto, tocó investigar porque pasaba esto y como aplicarlo a toda la organización.

Todo apuntaba al protocolo SMB, así que se implementó la solución ofrecida por Microsoft, habilitar el puerto 445 de entrada en nuestra red local y reiniciar los end points

Existen dos maneras de hacer esto, mediante interfaz gráfica

0:00
/0:33

Y luego la que a mí me gusta 😆 que es mediante consola

New-NetFirewallRule -DisplayName "Acceso SMB Directo TCP 445" -Direction Inbound -LocalPort 445 -Protocol TCP -Action Allow -Profile Domain, Private

De ambas formas funciona, pero con la segunda tardamos 10 segundos y si tu organización dispone de muchos dispositivos el tiempo es oro 😅

Analizando New-NetFirewallRule

NAME
    New-NetFirewallRule

SYNTAX
    New-NetFirewallRule -DisplayName <string> [-PolicyStore <string>] [-GPOSession <string>] [-Name <string>]
    [-Description <string>] [-Group <string>] [-Enabled {True | False}] [-Profile {Any | Domain | Private | Public |
    NotApplicable}] [-Platform <string[]>] [-Direction {Inbound | Outbound}] [-Action {NotConfigured | Allow | Block}]
    [-EdgeTraversalPolicy {Block | Allow | DeferToUser | DeferToApp}] [-LooseSourceMapping <bool>] [-LocalOnlyMapping
    <bool>] [-Owner <string>] [-LocalAddress <string[]>] [-RemoteAddress <string[]>] [-Protocol <string>] [-LocalPort
    <string[]>] [-RemotePort <string[]>] [-IcmpType <string[]>] [-DynamicTarget {Any | ProximityApps |
    ProximitySharing | WifiDirectPrinting | WifiDirectDisplay | WifiDirectDevices}] [-Program <string>] [-Package
    <string>] [-Service <string>] [-InterfaceAlias <WildcardPattern[]>] [-InterfaceType {Any | Wired | Wireless |
    RemoteAccess}] [-LocalUser <string>] [-RemoteUser <string>] [-RemoteMachine <string>] [-Authentication
    {NotRequired | Required | NoEncap}] [-Encryption {NotRequired | Required | Dynamic}] [-OverrideBlockRules <bool>]
    [-RemoteDynamicKeywordAddresses <string[]>] [-PolicyAppId <string>] [-PackageFamilyName <string>] [-CimSession
    <CimSession[]>] [-ThrottleLimit <int>] [-AsJob] [-WhatIf] [-Confirm] [<CommonParameters>]


ALIASES
    None


REMARKS
    Get-Help cannot find the Help files for this cmdlet on this computer. It is displaying only partial help.
        -- To download and install Help files for the module that includes this cmdlet, use Update-Help.

Explicación de cada parámetro

Identificación

  • -DisplayName: El nombre "amigable" que verás en el Panel de Control (ej.: "Abrir Puerto Web").
  • -Name: El ID interno de la regla (si no lo pones, PowerShell crea un GUID largo y feo).
  • -Description: Un comentario para que en el futuro sepas por qué creaste esta regla.
  • -Group: Sirve para agrupar varias reglas y desactivarlas todas de golpe si quieres.

Acción y Dirección (¿Qué hace y hacia dónde?)

  • -Direction: Inbound (tráfico que entra a tu PC) o Outbound (tráfico que sale de tu PC).
  • -Action: Allow (permitir) o Block (bloquear).
  • -Enabled: True (activada por defecto) o False (creada pero apagada).

Filtros de Red

  • -Protocol: El protocolo (TCP, UDP, ICMPv4, etc.).
  • -LocalPort: El puerto en tu equipo (ej.: "80, 443").
  • -RemotePort: El puerto en el equipo remoto.
  • -LocalAddress: Tu IP (útil si tienes varias tarjetas de red).
  • -RemoteAddress: La IP de quien intenta conectar (puedes poner una IP fija o un rango como 192.168.1.0/24).

Filtros de Aplicación

  • -Program: La ruta completa al .exe que quieres filtrar.
  • -Service: El nombre corto de un servicio de Windows (si quieres filtrar el servicio de impresión, por ejemplo).
  • -Package: Se usa para aplicaciones de la Microsoft Store (UWP).

Ubicación y Perfiles

  • -Profile: Define dónde actúa la regla:
    • Domain: Redes de trabajo con dominio.
    • Private: La red de tu casa.
    • Public: El wifi de una cafetería.
    • Any: En todas partes.
  • -InterfaceType: Si solo quieres que afecte al Wireless (wifi) o Wired (Cable).

Avanzados y Seguridad

  • -Authentication: Obliga a que la conexión use IPsec (seguridad adicional).
  • -EdgeTraversalPolicy: Define si el tráfico puede atravesar NAT (útil para aplicaciones que necesitan "entrar" desde internet).
  • -LocalUser / -RemoteUser: Restringe la regla a usuarios específicos de Windows.

Modificadores de Control

  • -WhatIf: Superútil. Te dice qué pasaría si ejecutas el comando pero sin aplicarlo realmente.
  • -Confirm: Te pregunta "¿Estás seguro?", antes de crear la regla.

Ejemplo rápido
New-NetFirewallRule -DisplayName "Mi App" -Direction Inbound -LocalPort 8080 -Protocol TCP -Action Allow

Comprobar si ha funcionado

Podemos comprobar si ha funcionado correctamente obteniendo las reglas con nombre Acceso SMB Directo TCP 445

Get-NetFirewallRule -DisplayName "Acceso SMB Directo TCP 445"

Modificar una regla ya establecida

Utilizaremos Set-NetFirewallRule Para modificar, por ejemplo, la descripción sería con el siguiente comando Set-NetFirewallRule -DisplayName "Acceso SMB Directo TCP 445" -Description "Esta puerto abre la comunicación en redes SMB entre dispositivos de la red local o el dominio"

Como se puede apreciar ahora aparece la descripción de la regla con lo que confirmamos que ha funcionado correctamente.

Este comando será aplicable desde Entra ID o bien desde cualquier dispositivo de forma

Este artículo se ha llevado a cabo consultando fuentes abiertas y experiencias propias, asegurando así la originalidad y autenticidad del trabajo. No es un artículo escrito por un LLM / IA