Поделиться через


Настройка управления доступом клиента SMB через QUIC

Управление доступом клиента SMB через QUIC позволяет ограничить доступ клиентов к SMB через СЕРВЕРЫ QUIC. Управление доступом клиента позволяет создавать списки разрешений и списки блокировок для устройств для подключения к файловом серверу. Управление доступом клиентов обеспечивает организациям большую защиту, не изменяя проверку подлинности, используемую при подключении SMB, и не изменяет взаимодействие с конечным пользователем.

Как работает управление доступом клиента

Управление доступом к клиенту включает проверку списка сертификатов на сервере, чтобы определить, разрешен ли клиенту установить соединение QUIC с сервером. Сервер проверяет цепочку сертификатов клиента и гарантирует, что он является доверенным, прежде чем продолжить проверку контроля доступа. Чтобы настроить управление доступом клиента, администратор выдает сертификат клиенту и может добавить хэш сертификата в список управления доступом, поддерживаемый сервером.

Если клиент может подключиться к серверу через QUIC, создается туннель TLS 1.3, зашифрованный через порт UDP 443. Управление доступом клиентов также поддерживает сертификаты с альтернативными именами субъектов. Вы также можете настроить SMB через QUIC для блокировки доступа, отменив сертификаты или явно запретив доступ к определенным устройствам. Администратор сервера может запретить клиенту доступ к серверу, отменив сертификат клиента, а не полагаться исключительно на управление доступом клиента.

Примечание.

Рекомендуется использовать SMB через QUIC с доменами Active Directory, однако это не обязательно. Вы также можете использовать SMB через QUIC на сервере, присоединенном к рабочей группе, с учетными данными локального пользователя и NTLM.

Разрешить добавление и удаление записей управления доступом с помощью командлетов Grant-SmbClientAccessToServer и Revoke-SmbClientAccessToServer соответственно. Запретить записи управления доступом можно добавлять и удалять с помощью командлетов Block-SmbClientAccessToServer и Unblock-SmbClientAccessToServer соответственно. Записи в списке управления доступом можно отобразить с помощью командлета Get-SmbClientAccessToServer.

Доступ к конечному сертификату можно разрешить или запретить, добавив запись управления доступом, которая идентифицирует сертификат по его хэшу SHA256. Группе конечных сертификатов, имеющих одного и того же издателя, может быть предоставлен или запрещён доступ путём добавления записи управления доступом для этого издателя. Запись о сертифицирующем центре может быть добавлена для промежуточных сертификатов ЦС и корневых сертификатов ЦС. Использование записей издателя может оказаться полезным, так как они помогают уменьшить общее количество записей, которые необходимо добавить. Если ни одному из сертификатов в цепочке сертификатов клиента не отказано в доступе, и по крайней мере один имеет доступ, клиент получает доступ. Например:

  • Если для сертификата ЦС добавляется запись разрешения, а для одного из конечных сертификатов добавляется запись запрета, доступ предоставляется ко всем сертификатам, выданным ЦС, кроме сертификата, для которого добавлена запись запрета.

  • Если запись запрета добавлена для сертификата ЦС и запись разрешения добавлена для одного из основных сертификатов, все сертификаты, выданные ЦС, не допускаются. Сертификат, для которого добавлена запись разрешения, запрещен доступ, так как любая запись запрета в цепочке сертификатов имеет приоритет над разрешенными записями.

  • Предположим, что корневой ЦС включает в себя два промежуточных ЦС, называемых промежуточными ЦС 1 и промежуточными ЦС 2. Если разрешающая запись добавляется для корневого ЦС, а запрещающая запись добавляется для промежуточного ЦС 2, то сертификаты, выданные промежуточным ЦС 1, получают доступ, а сертификаты, выданные промежуточным ЦС 2, не получают доступ.

Необходимые компоненты

Прежде чем настроить управление доступом клиента, вам потребуется сервер SMB со следующими предварительными условиями.

  • Сервер SMB под управлением Windows Server 2022 Datacenter: Выпуск Azure с 12 марта 2024 г. — обновление KB5035857 или Windows Server 2025 или более поздней версии. Чтобы разблокировать функцию предварительного просмотра, необходимо также установить Windows Server 2022 KB5035857 240302_030531 Функция предварительного просмотра.
  • SMB через QUIC включено и настроено на сервере. Сведения о настройке SMB через QUIC см. в статье SMB over QUIC.
  • Если вы используете сертификаты клиента, выданные другим центром сертификации (ЦС), необходимо убедиться, что ЦС является доверенным сервером.
  • Права администратора для настраиваемого сервера SMB.

Внимание

После установки KB5035857 необходимо включить эту функцию в групповой политике:

  1. Нажмите кнопку "Пуск", введите gpedit и выберите "Изменить групповую политику".
  2. Перейдите к разделу "Конфигурация компьютера\Административные шаблоны\KB5035857 240302_030531 Предварительная версия компонентов\Windows Server 2022".
  3. Откройте политику предварительного просмотра компонентов KB5035857 240302_030531 и выберите "Включено".

Вам также нужен клиент SMB со следующими предварительными условиями.

  • Клиент SMB, работающий в одной из следующих операционных систем:
  • Сертификат клиента, который:
    • Выдано для проверки подлинности клиента (EKU 1.3.6.1.5.5.7.3.2).
    • Выдан доверенным сервером SMB центром сертификации.
    • Устанавливается в хранилище сертификатов клиента.
  • Права администратора для настраиваемого сервера SMB.

Внимание

После установки KB5035854 необходимо включить эту функцию в групповой политике:

  1. Нажмите кнопку "Пуск", введите gpedit и выберите "Изменить групповую политику".
  2. Перейдите к разделу "Конфигурация компьютера\Административные шаблоны\KB5035854 240302_030535 Предварительная версия компонентов\Windows 11 (исходный выпуск)".
  3. Откройте политику предварительного просмотра компонентов KB5035854 240302_030535 и выберите "Включено".

Настройка сервера SMB

Чтобы управлять параметрами клиента SMB, необходимо сначала настроить сервер SMB так, чтобы клиент отправлял действительную и надежную цепочку сертификатов и выполнял контроль доступа на основе цепочки сертификатов клиента. Чтобы выполнить это действие, выполните следующую команду:

Set-SmbServerCertificateMapping -RequireClientAuthentication $true

Примечание.

Если одновременно заданны настройки RequireClientAuthentication и SkipClientCertificateAccessCheck$true, сервер проверяет допустимость и надежность цепочки сертификатов клиента, но не выполняет проверки контроля доступа.

Настройка клиента SMB

Сбор сведений о сертификате клиента SMB

Чтобы собрать хэш сертификата клиента с помощью PowerShell:

  1. Откройте запрос PowerShell с повышенными привилегиями на клиенте SMB.

  2. Выведите список сертификатов в хранилище сертификатов клиента, выполнив следующую команду.

    Get-ChildItem -Path Cert:\LocalMachine\My
    
  3. Выполните следующую команду, чтобы сохранить сертификат в переменной. Замените <subject name> именем субъекта сертификата, который вы хотите использовать.

    $clientCert = Get-ChildItem -Path Cert:\LocalMachine\My | Where-Object {$_.Subject -Match "<subject name>"}
    
  4. Запишите хэш сертификата клиента SHA256, выполнив следующую команду. Этот идентификатор требуется при настройке управления доступом клиента.

    $clientCert.GetCertHashString("SHA256")
    

Примечание.

Отпечаток, хранящийся в объекте $clientCert , использует алгоритм SHA1. Это используется такими командами, как New-SmbClientCertificateMapping. Вам также потребуется отпечаток SHA256 для настройки управления доступом клиента, эти отпечатки будут отличаться с использованием различных алгоритмов для одного и того же сертификата.

Сопоставление сертификата клиента с клиентом SMB

Чтобы сопоставить сертификат клиента с клиентом SMB, выполните следующие действия.

  1. Откройте запрос PowerShell с повышенными привилегиями на клиенте SMB.

  2. New-SmbClientCertificateMapping Выполните команду, чтобы сопоставить сертификат клиента. Замените <namespace> полное доменное имя сервера SMB и используйте отпечаток сертификата клиента SHA1, собранный в предыдущем разделе с помощью переменной.

    New-SmbClientCertificateMapping -Namespace <namespace> -Thumbprint $clientCert.Thumbprint -StoreName My
    

После завершения сертификат клиента используется клиентом SMB для проверки подлинности на сервере SMB, который соответствует полному доменному имени.

Подключение к сопоставлению тестов

Запустите тест подключения с помощью сопоставления с общим ресурсом для вашего сервера или клиентского устройства. Для этого выполните одну из следующих команд:

NET USE \\<server DNS name>\<share name> /TRANSPORT:QUIC

Or

New-SmbMapping -RemotePath \\<server DNS name>\<share name> -TransportType QUIC

Если появится сообщение об ошибке, указывающее, что доступ был отклонен сервером, вы готовы перейти к следующему шагу, так как это проверяет сопоставление сертификатов сервера и сопоставление сертификатов клиента.

Настройка управления доступом клиента

Предоставление отдельных клиентов

Выполните действия, чтобы предоставить определенный клиентский доступ к серверу SMB с помощью управления доступом клиента.

  1. Войдите на сервер SMB.

  2. Откройте запрос PowerShell с повышенными привилегиями на сервере SMB.

  3. Grant-SmbClientAccessToServer Запустите сертификат клиента, чтобы предоставить доступ к сертификату клиента. Замените <name> именем узла сервера SMB и <hash> идентификатором сертификата клиента SHA256, собранным в разделе "Сбор сведений о сертификате клиента SMB".

    Grant-SmbClientAccessToServer -Name <name> -IdentifierType SHA256 -Identifier <hash>
    

Теперь вы предоставили доступ к сертификату клиента. Вы можете проверить доступ к сертификату клиента, выполнив командлет Get-SmbClientAccessToServer.

Предоставление определенных центров сертификации

Выполните действия, чтобы предоставить клиентам определенный центр сертификации, также известный как издатель, с помощью управления доступом клиентов.

  1. Войдите на сервер SMB.

  2. Откройте запрос PowerShell с повышенными привилегиями на сервере SMB.

  3. Grant-SmbClientAccessToServer Запустите сертификат клиента, чтобы предоставить доступ к сертификату клиента. Замените <name> именем узла сервера SMB и <subject name> полным именем сертификата издателя X.500. Например, CN=Contoso CA, DC=Contoso, DC=com.

    Grant-SmbClientAccessToServer -Name <name> -IdentifierType ISSUER -Identifier "<subject name>"
    

После завершения этого шага запустите командлет New-SmbMapping, как упоминалось в теста на подключение к сопоставлению. Рекомендуется выполнить второй запуск, чтобы убедиться, что управление доступом клиентов настроено правильно.

Журналы событий аудита

Некоторые события, такие как разрешенный доступ и отказ в доступе, фиксируются для устранения неполадок. Эти события предоставляют сведения о сертификатах клиента (за исключением корневого сертификата), таких как субъект, издатель, серийный номер, хэш SHA1 и SHA256, а также записи управления доступом, применяемые к этим сертификатам. Эти события отображают идентификатор подключения. Этот идентификатор отображается в определенных событиях подключения клиента, что позволяет администратору легко сопоставить сервер с клиентом, который пытался установить подключение.

Аудит этих событий отключен по умолчанию и может быть включен, выполнив следующую команду:

Set-SmbServerConfiguration -AuditClientCertificateAccess $true

После включения эти события записываются в средства просмотра событий в следующих путях:

Путь Идентификатор события
Журналы приложений и служб\Microsoft\Windows\SMBServer\Audit 3007
3008
3009
Журналы приложений и служб\Microsoft\Windows\SMBClient\Connectivity 30831