다음을 통해 공유


QUIC 클라이언트 액세스 제어를 통해 SMB 구성

QUIC 클라이언트 액세스 제어를 통해 SMB를 사용하면 QUIC 서버를 통해 SMB에 액세스할 수 있는 클라이언트를 제한할 수 있습니다. 클라이언트 액세스 제어를 사용하면 디바이스가 파일 서버에 연결할 수 있는 허용 목록 및 차단 목록을 만들 수 있습니다. 클라이언트 액세스 제어는 SMB 연결을 만들 때 사용되는 인증을 변경하지 않고 조직에 더 많은 보호를 제공하며 최종 사용자 환경을 변경하지도 않습니다.

클라이언트 액세스 제어의 작동 방식

클라이언트 액세스 제어에는 서버가 인증서의 액세스 제어 목록을 확인하여 클라이언트가 서버와의 QUIC 연결을 설정할 수 있는지 여부를 확인하는 작업이 포함됩니다. 서버는 클라이언트 인증서 체인의 유효성을 검사하고 액세스 제어 검사를 계속하기 전에 신뢰할 수 있는지 확인합니다. 클라이언트 액세스 제어를 구성하기 위해 관리자는 클라이언트에 인증서를 발급하고 서버에서 유지 관리하는 액세스 제어 목록에 인증서 해시를 추가할 수 있습니다.

클라이언트가 QUIC를 통해 서버에 연결할 수 있는 경우 UDP 포트 443을 통해 TLS 1.3 암호화 터널이 만들어집니다. 클라이언트 액세스 제어는 주체 대체 이름을 가진 인증서도 지원합니다. 인증서를 해지하거나 특정 디바이스 액세스를 명시적으로 거부하여 액세스를 차단하도록 QUIC를 통해 SMB를 구성할 수도 있습니다. 서버 관리자는 클라이언트 액세스 제어에만 의존하는 대신 클라이언트 인증서를 해지하여 클라이언트가 서버에 액세스하지 못하도록 할 수 있습니다.

Note

Active Directory 도메인에서 QUIC를 통해 SMB를 사용하는 것이 좋지만, 필수는 아닙니다. 로컬 사용자 자격 증명 및 NTLM을 사용하여 작업 그룹 가입 서버에서 QUIC를 통해 SMB를 사용할 수도 있습니다.

액세스 제어 항목은 Grant-SmbClientAccessToServerRevoke-SmbClientAccessToServer cmdlet을 사용하여 추가 및 제거할 수 있습니다. 각각의 cmdlet은 해당 작업에 사용됩니다. 거부 액세스 제어 항목은 Block-SmbClientAccessToServer cmdlet을 사용하여 추가할 수 있으며, Unblock-SmbClientAccessToServer cmdlet을 사용하여 제거할 수 있습니다. cmdlet을 사용하여 액세스 제어 목록의 Get-SmbClientAccessToServer 항목을 표시할 수 있습니다.

SHA256 해시로 인증서를 식별하는 액세스 제어 항목을 추가하여 리프 인증서에 대한 액세스 권한을 부여하거나 거부할 수 있습니다. 공통 발급자를 사용하는 리프 인증서 그룹은 모두 공통 발급자의 발급자 액세스 제어 항목을 추가하여 액세스 권한을 부여하거나 거부할 수 있습니다. 중간 CA 인증서 및 루트 CA 인증서에 대해 발급자 항목을 추가할 수 있습니다. 발급자 항목을 사용하면 추가해야 하는 총 항목 수를 줄일 수 있으므로 유용할 수 있습니다. 클라이언트의 인증서 체인에 있는 인증서 중 어느 것도 액세스가 거부되지 않으며 하나 이상의 액세스가 허용되는 경우 클라이언트에 액세스 권한이 부여됩니다. For example:

  • CA 인증서에 대해 허용 항목이 추가되고 리프 인증서 중 하나에 대해 거부 항목이 추가되는 경우 CA에서 발급한 모든 인증서에는 거부 항목이 추가되는 인증서를 제외한 모든 인증서에 대한 액세스 권한이 부여됩니다.

  • CA 인증서에 대해 거부 항목이 추가되고 잠재 고객 인증서 중 하나에 대해 허용 항목이 추가되면 CA에서 발급한 모든 인증서에 대한 액세스가 거부됩니다. 허용 항목이 추가된 인증서는 인증서 체인의 거부 항목이 허용 항목보다 우선하기 때문에 액세스가 거부됩니다.

  • 루트 CA에 중간 CA 1과 중간 CA 2라는 두 개의 중간 CA가 있다고 가정합니다. 루트 CA에 대해 허용 항목이 추가되고 중간 CA 2에 대해 거부 항목이 추가되면 중간 CA 1에서 발급한 인증서에 액세스 권한이 부여되고 중간 CA 2에서 발급한 인증서에 대한 액세스가 거부됩니다.

Prerequisites

Before you can configure client access control, you need an SMB server with the following prerequisites.

  • Windows Server 2022 Datacenter: 2024년 3월 12일 Azure Edition 을 실행하는 SMB 서버( KB5035857 Update 또는 Windows Server 2025 이상) 미리 보기 기능의 잠금을 해제하려면 Windows Server 2022 KB5035857 240302_030531 기능 미리 보기도 설치해야 합니다.
  • 서버에서 QUIC를 통해 SMB를 사용하도록 설정하고 구성했습니다. QUIC를 통해 SMB를 구성하는 방법에 대한 자세한 내용은 QUIC 를 통한 SMB를 참조하세요.
  • 다른 CA(인증 기관)에서 발급한 클라이언트 인증서를 사용하는 경우 서버에서 CA를 신뢰할 수 있는지 확인해야 합니다.
  • 구성 중인 SMB 서버에 대한 관리자 권한입니다.

Important

KB5035857가 설치되면 그룹 정책에서 이 기능을 사용하도록 설정해야 합니다.

  1. Click Start, type gpedit, and select Edit group policy.
  2. Computer Configuration\Administrative Templates\KB5035857 240302_030531 Feature Preview\Windows Server 2022로 이동합니다.
  3. KB5035857 240302_030531 기능 미리 보기 정책을 열고 사용을 선택합니다.

You also need an SMB client with the following prerequisites.

Important

KB5035857가 설치되면 그룹 정책에서 이 기능을 사용하도록 설정해야 합니다.

  1. Click Start, type gpedit, and select Edit group policy.
  2. Computer Configuration\Administrative Templates\KB5035854 240302_030535 Feature Preview\Windows 11 (원본 릴리스)로 이동합니다.
  3. KB5035854 240302_030535 기능 미리 보기 정책을 열고 사용을 선택합니다.

SMB 서버 구성

SMB 클라이언트에 대한 설정을 관리하려면 먼저 클라이언트가 유효하고 신뢰할 수 있는 인증서 체인을 보내도록 위임하고 클라이언트 인증서 체인을 기반으로 액세스 제어 검사를 수행하도록 SMB 서버를 구성해야 합니다. 이 작업을 수행하려면 다음 명령을 실행합니다.

Set-SmbServerCertificateMapping -RequireClientAuthentication $true

Note

If both RequireClientAuthentication and SkipClientCertificateAccessCheck are set to $true, the server verifies the validity and trustworthiness of the client certificate chain but does not perform access control checks.

SMB 클라이언트 구성

SMB 클라이언트 인증서 정보 수집

PowerShell을 사용하여 클라이언트 인증서 해시를 수집하려면 다음을 수행합니다.

  1. SMB 클라이언트에서 관리자 권한 PowerShell 프롬프트를 엽니다.

  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")
    

Note

$clientCert 개체에 저장된 지문은 SHA1 알고리즘을 사용합니다. 이는 다음과 같은 New-SmbClientCertificateMapping 명령에서 사용됩니다. 또한 클라이언트 액세스 제어를 구성하려면 SHA256 지문이 필요합니다. 이러한 지문은 동일한 인증서에 대해 다른 알고리즘을 사용하여 파생됩니다.

클라이언트 인증서를 SMB 클라이언트에 매핑

클라이언트 인증서를 SMB 클라이언트에 매핑하기.

  1. SMB 클라이언트에서 관리자 권한 PowerShell 프롬프트를 엽니다.

  2. New-SmbClientCertificateMapping 명령을 실행하여 클라이언트 인증서를 매핑합니다. <namespace>을 SMB 서버의 FQDN(정규화된 도메인 이름)으로 바꾸고 변수를 사용하여 이전 섹션에서 수집한 SHA1 클라이언트 인증서 지문을 사용합니다.

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

완료되면 SMB 클라이언트에서 인증서를 받은 클라이언트를 사용하여 FQDN과 일치하는 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. SMB 서버에서 관리자 권한 PowerShell 프롬프트를 엽니다.

  3. 클라이언트 인증서에 대한 액세스 권한을 부여하려면 Grant-SmbClientAccessToServer을 실행합니다. <name>을 SMB 서버의 호스트 이름으로 바꾸고 <hash>에서 수집한 SHA256 클라이언트 인증서 식별자를 사용하여 를 대체합니다.

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

이제 클라이언트 인증서에 대한 액세스 권한을 부여했습니다. cmdlet을 실행 Get-SmbClientAccessToServer 하여 클라이언트 인증서 액세스를 확인할 수 있습니다.

특정 인증 기관 부여

단계에 따라 클라이언트 액세스 제어를 사용하여 발급자라고도 하는 특정 인증 기관에서 클라이언트를 부여합니다.

  1. SMB 서버에 로그인합니다.

  2. SMB 서버에서 관리자 권한 PowerShell 프롬프트를 엽니다.

  3. 클라이언트 인증서에 대한 액세스 권한을 부여하려면 Grant-SmbClientAccessToServer을 실행합니다. <name>을 중소기업 서버의 호스트 이름으로 바꾸고 <subject name>를 발행자 인증서의 전체 X.500 고유 이름으로 바꿉니다. 예들 들어 CN=Contoso CA, DC=Contoso, DC=com입니다.

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

이 단계가 완료되면 New-SmbMapping에서 설명한 대로 cmdlet을 실행 합니다. 두 번째 실행은 클라이언트 액세스 제어가 올바르게 구성되었는지 확인하는 것이 좋습니다.

이벤트 로그 검사

액세스 허용 및 액세스 거부와 같은 특정 이벤트는 문제 해결을 위해 캡처됩니다. 이러한 이벤트는 주체, 발급자, 일련 번호, SHA1 및 SHA256 해시와 같은 클라이언트 인증서(루트 인증서 제외)와 이러한 인증서에 적용되는 액세스 제어 항목에 대한 정보를 제공합니다. 이러한 이벤트는 연결 ID를 표시합니다. 이 ID는 특정 클라이언트 연결 이벤트에 표시되므로 관리자는 연결을 설정하려고 시도한 클라이언트와 서버를 쉽게 일치시킬 수 있습니다.

이러한 이벤트 감사는 기본적으로 사용하지 않도록 설정되며 다음 명령을 실행하여 사용하도록 설정할 수 있습니다.

Set-SmbServerConfiguration -AuditClientCertificateAccess $true

Once enabled, these events are captured in the Event Viewer in the following paths:

Path Event ID
애플리케이션 및 서비스 로그\Microsoft\Windows\SMBServer\Audit 3007
3008
3009
애플리케이션 및 서비스 로그\Microsoft\Windows\SMBClient\Connectivity 30831