Configuración de SMB a través del control de acceso de cliente QUIC
El control de acceso de clientes SMB a través de QUIC permite restringir qué clientes pueden acceder a los servidores SMB a través de QUIC. El control de acceso de cliente permite crear listas de permitidos y listas de bloqueados para que los dispositivos se conecten al servidor de archivos. El control de acceso de clientes ofrece a las organizaciones más protección sin cambiar la autenticación usada al realizar la conexión SMB, ni alterar la experiencia del usuario final.
Funcionamiento del control de acceso de clientes
El control de acceso de cliente implica que el servidor compruebe una lista de controles de acceso de certificados para determinar si un cliente puede establecer una conexión QUIC con el servidor. El servidor valida la cadena de certificados de cliente y garantiza que es de confianza antes de continuar con las comprobaciones de control de acceso. Para configurar el control de acceso de cliente, un administrador emite un certificado al cliente y puede agregar un hash del certificado a una lista de control de acceso mantenida por el servidor.
Si el cliente puede conectarse al servidor a través de QUIC, se crea un túnel cifrado TLS 1.3 a través del puerto UDP 443. El control de acceso de clientes también admite certificados con nombres alternativos de asunto. También puede configurar SMB a través de QUIC para bloquear el acceso revocando certificados o denegando explícitamente el acceso a determinados dispositivos. Un administrador del servidor puede impedir que un cliente acceda al servidor revocando el certificado de cliente, en lugar de confiar únicamente en el control de acceso de cliente.
Nota:
Se recomienda usar SMB a través de QUIC con dominios de Active Directory, pero no es obligatorio. También se puede usar en un servidor unido a un grupo de trabajo con credenciales de usuario local y NTLM.
Se pueden agregar y quitar entradas de control de acceso mediante los cmdlets Grant-SmbClientAccessToServer
y Revoke-SmbClientAccessToServer
, respectivamente. Se pueden agregar y quitar entradas de control de acceso denegadas mediante los cmdlets Block-SmbClientAccessToServer
y Unblock-SmbClientAccessToServer
respectivamente. Las entradas de la lista de control de acceso se pueden mostrar mediante el cmdlet Get-SmbClientAccessToServer
.
Se puede conceder o denegar el acceso de un certificado hoja agregando una entrada de control de acceso que identifica el certificado por su hash SHA256. Se puede conceder o denegar el acceso a un grupo de certificados hoja con un emisor común agregando una entrada de control de acceso del emisor para el emisor común. Se puede agregar un registro del emisor para los certificados de Autoridad de Certificación (AC) intermedios y los certificados de Autoridad de Certificación (AC) raíz. El uso de entradas del emisor puede ser útil, ya que ayudan a reducir el número total de entradas que deben añadirse. Si no se deniega el acceso a ninguno de los certificados de la cadena de certificados del cliente y se permite al menos uno, se concede acceso al cliente. Por ejemplo:
Si se agrega una entrada de permiso para un certificado de autoridad de certificación (CA) y se agrega una entrada de denegación para uno de los certificados hoja, se otorga acceso a todos los certificados emitidos por la autoridad de certificación, excepto el certificado para el que se agrega la entrada de denegación.
Si se agrega una entrada de denegación para un certificado de autoridad de certificación y se agrega una entrada de permiso para uno de los certificados principales, se deniega el acceso a todos los certificados emitidos por la autoridad de certificación. El acceso al certificado, para el que se agregó una entrada de autorización, es denegado porque cualquier entrada de denegación en la cadena de certificados tiene prioridad sobre las entradas de autorización.
Supongamos que una Autoridad Certificadora raíz tiene dos autoridades certificadoras intermedias denominadas CA intermedia 1 y CA intermedia 2. Si se agrega una entrada de permiso para la CA raíz y se agrega una entrada de denegación para la CA intermedia 2, se concede acceso a los certificados emitidos por la CA intermedia 1 y se deniega el acceso a los certificados emitidos por la CA intermedia 2.
Requisitos previos
Para poder configurar el control de acceso de cliente, necesita un Servidor SMB con los siguientes requisitos previos.
- Un servidor SMB que ejecuta Windows Server 2022 Datacenter: Azure Edition con la actualización del 12 de marzo de 2024, KB5035857 o Windows Server 2025 o posterior. Para desbloquear la característica de vista previa, también debe instalar Windows Server 2022 KB5035857 240302_030531 Feature Preview.
- SMB a través de QUIC habilitado y configurado en el servidor. Para obtener información sobre cómo configurar SMB a través de QUIC, consulte SMB a través de QUIC.
- Si usa certificados de cliente emitidos por otra entidad de certificación (CA), debe asegurarse de que el servidor confía en la entidad de certificación.
- Privilegios administrativos para el servidor SMB que está configurando.
Importante
Una vez instalado KB5035857, debe habilitar esta característica en la directiva de grupo:
- Haga clic en Inicio, escriba gpedit y seleccione Editar directiva de grupo.
- Vaya a Configuración del equipo\Plantillas administrativas\KB5035857 240302_030531 Feature Preview\Windows Server 2022.
- Abra la directiva KB5035857 240302_030531 Feature Preview y seleccione Habilitada.
También necesita un cliente SMB con los siguientes requisitos previos.
- Un cliente SMB que se ejecute en uno de los siguientes sistemas operativos:
- Windows Server 2022 Datacenter: Azure Edition con la actualización del 12 de marzo de 2024 KB5035857. Para desbloquear la característica de vista previa, también debe instalar Windows Server 2022 KB5035857 240302_030531 Feature Preview.
- Windows 11 con la actualización del 12 de marzo de 202 KB5035853. Para desbloquear la característica de vista previa, también debes instalar Windows 11 (versión original) KB5035854 240302_030535 Feature Preview.
- Windows Server 2025 o posterior.
- Windows 11, versión 24H2 o posterior.
- Un certificado de cliente que:
- Emitido para la autenticación del cliente (EKU 1.3.6.1.5.5.7.3.2).
- Se emite por una entidad de certificación de confianza por el servidor SMB.
- Se instala en el almacén de certificados del cliente.
- Privilegios administrativos para el servidor SMB que está configurando.
Importante
Una vez instalado KB5035854, debe habilitar esta característica en la directiva de grupo:
- Haga clic en Inicio, escriba gpedit y seleccione Editar directiva de grupo.
- Vaya a Configuración del equipo\Plantillas administrativas\KB5035854 240302_030535 Feature Preview\Windows Server 11 (versión original).
- Abra la directiva KB5035854 240302_030535 Feature Preview y seleccione Habilitada.
Configuración del servidor SMB
Para administrar la configuración del cliente SMB, primero es necesario configurar el servidor SMB para exigir que el cliente envíe una cadena de certificados válida y de confianza y para realizar las comprobaciones de control de acceso basadas en la cadena de certificados de cliente. Para realizar esta acción, ejecute el siguiente comando:
Set-SmbServerCertificateMapping -RequireClientAuthentication $true
Nota:
Si ambos RequireClientAuthentication y SkipClientCertificateAccessCheck se establecen en $true
, el servidor comprueba la validez y confiabilidad de la cadena de certificados de cliente, pero no realiza comprobaciones de control de acceso.
Configurar el cliente de SMB
Recopilación de la información del certificado de cliente SMB
Para recopilar el hash de certificado de cliente mediante PowerShell:
Abra un símbolo del sistema de PowerShell con privilegios elevados en el cliente SMB.
Para enumerar los certificados en el almacén de certificados del cliente, ejecute el siguiente comando.
Get-ChildItem -Path Cert:\LocalMachine\My
Ejecute el siguiente comando para almacenar el certificado en una variable. Reemplace
<subject name>
por el nombre de asunto del certificado que desea usar.$clientCert = Get-ChildItem -Path Cert:\LocalMachine\My | Where-Object {$_.Subject -Match "<subject name>"}
Anote el hash SHA256 del certificado del cliente mediante el comando siguiente. Necesitará este identificador cuando configure el control de acceso de los clientes.
$clientCert.GetCertHashString("SHA256")
Nota:
La huella digital almacenada en el objeto $clientCert
usa el algoritmo SHA1. Esto se usa mediante comandos como New-SmbClientCertificateMapping
. También necesitará la huella digital SHA256 para configurar el control de acceso de clientes. Estas huellas serán diferentes y se derivan mediante algoritmos diferentes contra el mismo certificado.
Asigne el certificado de cliente al cliente SMB
Para asignar el certificado de cliente al cliente SMB:
Abra un símbolo del sistema de PowerShell con privilegios elevados en el cliente SMB.
Ejecute el comando
New-SmbClientCertificateMapping
para asignar el certificado de cliente. Reemplace<namespace>
por el nombre de dominio completo (FQDN) del servidor SMB y use la huella digital del certificado de cliente SHA1 que recopiló en la sección anterior mediante la variable.New-SmbClientCertificateMapping -Namespace <namespace> -Thumbprint $clientCert.Thumbprint -StoreName My
Una vez completado, el cliente SMB usa el certificado de cliente para autenticarse en el servidor SMB que coincide con el FQDN.
Probar la conectividad del mapeo
Ejecute una prueba de conectividad asignando un recurso compartido para el servidor o dispositivo cliente. Para ello, ejecute uno de los siguientes comandos:
NET USE \\<server DNS name>\<share name> /TRANSPORT:QUIC
Or
New-SmbMapping -RemotePath \\<server DNS name>\<share name> -TransportType QUIC
Si recibe un mensaje de error que indica que el servidor denegó el acceso, estará listo para continuar con el paso siguiente, ya que comprueba que la asignación de certificados de servidor y la asignación de certificados de cliente estén configuradas.
Configurar el control de acceso de clientes
Conceder clientes individuales
Siga los pasos para conceder a un cliente específico acceso al servidor SMB mediante el control de acceso de cliente.
Inicie sesión en el servidor SMB.
Abra un símbolo del sistema de PowerShell con privilegios elevados en el servidor SMB.
Ejecute
Grant-SmbClientAccessToServer
para conceder acceso al certificado de cliente. Reemplace<name>
por el nombre de host del servidor SMB y<hash>
mediante el identificador de certificado de cliente SHA256 que recopiló en la sección Recopilación de la información del certificado de cliente SMB.Grant-SmbClientAccessToServer -Name <name> -IdentifierType SHA256 -Identifier <hash>
Ahora ha concedido acceso al certificado de cliente. Para comprobar el acceso al certificado de cliente, ejecute el cmdlet Get-SmbClientAccessToServer
.
Conceder entidades de certificación específicas
Siga los pasos para conceder a los clientes de una entidad de certificación específica, también conocida como emisor, mediante el control de acceso de clientes.
Inicie sesión en el servidor SMB.
Abra un símbolo del sistema de PowerShell con privilegios elevados en el servidor SMB.
Ejecute
Grant-SmbClientAccessToServer
para conceder acceso al certificado de cliente. Reemplace<name>
por el nombre de host del servidor SMB y<subject name>
por el nombre distintivo X.500 completo del certificado del emisor. Por ejemplo,CN=Contoso CA, DC=Contoso, DC=com
.Grant-SmbClientAccessToServer -Name <name> -IdentifierType ISSUER -Identifier "<subject name>"
Una vez completado este paso, ejecute el cmdlet New-SmbMapping
como se indica en Prueba de conectividad mediante asignación, ya que se recomienda una segunda ejecución para comprobar que el control de acceso de cliente se ha configurado correctamente.
Registros de eventos de auditoría
Algunos eventos, como el acceso permitido y el acceso denegado, se capturan con fines de solución de problemas. Estos eventos proporcionan información sobre los certificados de cliente (excepto el certificado raíz), como el asunto, el emisor, el número de serie, el hash SHA1 y SHA256, y las entradas de control de acceso que se aplican a estos certificados. Estos eventos muestran un identificador de conexión. Este identificador se muestra en determinados eventos de conectividad de cliente, lo que permite al administrador coincidir fácilmente con el servidor con el cliente que intentó establecer la conexión.
La auditoría de estos eventos está deshabilitada de forma predeterminada y se puede habilitar mediante la ejecución del siguiente comando:
Set-SmbServerConfiguration -AuditClientCertificateAccess $true
Una vez habilitados, estos eventos se capturan en el Visor de Eventos en las siguientes rutas de acceso:
Camino | Id. de evento |
---|---|
Registros de aplicaciones y servicios\Microsoft\Windows\SMBServer\Audit | 3007 3008 3009 |
Registros de aplicaciones y servicios\Microsoft\Windows\SMBClient\Connectivity | 30831 |