다음을 통해 공유


Windows에서 SMBv1, SMBv2 및 SMBv3 검색, 사용 및 사용 안 함

이 문서에서는 SMB 클라이언트 및 서버 구성 요소에서 SMB(서버 메시지 블록) 버전 1(SMBv1), SMB 버전 2(SMBv2) 및 SMB 버전 3(SMBv3)을 사용하거나 사용하지 않도록 설정하는 방법을 설명합니다.

SMBv1을 사용하지 않거나 제거하는 경우 이전 컴퓨터 또는 소프트웨어와 호환성 문제가 발생할 수 있습니다. SMBv1에는 상당한 보안 취약성이 있으며 사용하지 않는 것이 좋습니다. SMBv1은 Windows 11 또는 Windows Server 2019 이상 버전에서 기본적으로 설치되지 않습니다. 또한 SMBv1은 Home 및 Pro 버전을 제외하고 Windows 10에도 기본적으로 설치되지 않습니다. SMBv1을 다시 설치하는 대신 여전히 필요한 SMB 서버를 업데이트하는 것이 좋습니다. 요구 사항을 제거하는 SMBv1 및 해당 업데이트가 필요한 파트너 목록은 SMB1 Product Clearinghouse참조하세요.

문제 해결을 위해 SMBv2 또는 SMBv3 사용 안 함

SMBv2 및 SMBv3을 사용하도록 설정하는 것이 좋지만 문제 해결을 위해 일시적으로 사용하지 않도록 설정하는 것이 유용할 수 있습니다. 자세한 내용은 명령줄 또는 레지스트리 편집기를 사용하여 SMB 프로토콜관리합니다.

SMBv3을 사용하지 않도록 설정하면 다음 기능이 비활성화됩니다.

  • 투명한 장애 조치(failover): 유지 관리 또는 장애 조치(failover) 중에 클러스터 노드에 중단 없이 다시 연결할 수 있는 방법을 클라이언트에 제공합니다.
  • 스케일 아웃: 모든 파일 클러스터 노드의 공유 데이터에 대한 동시 액세스 제공
  • SMB 다중 채널: 클라이언트와 서버 간에 여러 경로를 사용할 수 있는 경우 네트워크 대역폭 및 내결함성을 쉽게 집계할 수 있습니다.
  • SMB 다이렉트: 대기 시간이 짧고 CPU 사용량이 적은 고성능을 위해 RDMA(원격 직접 메모리 액세스) 네트워킹 지원을 추가합니다.
  • 암호화: 엔드투엔드 암호화를 제공하고 신뢰할 수 없는 네트워크에서 도청으로부터 보호
  • 디렉터리 임대: 캐싱을 통해 지점의 애플리케이션 응답 시간 개선
  • 성능 최적화: 작은 임의 읽기/쓰기 I/O 작업을 최적화합니다.

SMBv2를 사용하지 않도록 설정하면 다음 기능이 비활성화됩니다.

  • 요청 복합: 단일 네트워크 요청으로 여러 SMBv2 요청 보내기 지원
  • 더 큰 크기의 데이터 읽기 및 쓰기: 더 빠른 네트워크 활용을 개선합니다.
  • 폴더 및 파일 속성의 캐싱: 클라이언트가 폴더 및 파일의 로컬 복사본을 유지할 수 있는 기능을 제공합니다.
  • 내구성이 있는 핸들: 일시적인 연결 끊김 후 서버에 투명하게 다시 연결할 수 있도록 해줍니다.
  • 메시지 서명 개선: 해싱 알고리즘으로서 Message-Digest Algorithm 5 (MD5) 대신 256비트 다이제스트를 사용한 HMAC(메시지 인증 코드) SHA-256(보안 해시 알고리즘)을 사용합니다.
  • 파일 공유에 대한 확장성 향상: 서버당 사용자, 공유 및 열린 파일 수가 크게 증가합니다.
  • 기호 링크 지원
  • 클라이언트 oplock 임대 모델: 클라이언트와 서버 간에 전송되는 데이터를 제한하여 대기 시간이 긴 네트워크에서 성능을 향상시키고 SMB 서버 확장성을 높입니다.
  • MTU(대규모 최대 전송 장치) 지원: 10GbE(기가비트 이더넷)의 전체 사용 지원
  • 향상된 에너지 효율성: 서버에 열려 있는 파일이 있는 클라이언트가 절전 모드로 전환할 수 있는 방법을 제공합니다.

SMBv2 프로토콜은 Windows Vista 및 Windows Server 2008에서 도입되었습니다. SMBv3 프로토콜은 Windows 8 및 Windows Server 2012에서 도입되었습니다. SMBv2 및 SMBv3의 기능에 대한 자세한 내용은 다음 문서를 참조하세요.

PowerShell을 사용하여 SMBv1 제거

Get-WindowsOptionalFeature, Disable-WindowsOptionalFeature, Enable-WindowsOptionalFeature PowerShell 명령을 사용하여 SMBv1 클라이언트 또는 서버를 검색, 사용 안 함 및 사용하도록 설정할 수 있습니다. 관리자 권한으로 명령 프롬프트를 열고 명령을 실행합니다.

참고

PowerShell 명령을 실행하여 SMBv1을 사용하지 않도록 설정하거나 사용하도록 설정한 후 컴퓨터가 다시 시작됩니다.

  • 감지:

    Get-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
    
  • 사용 안 함

    Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
    
  • 사용 가능하게 설정

    Enable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
    

Get-SmbServerConfiguration 명령을 실행하여 권한 상승 없이 SMBv1 상태를 확인할 수 있습니다Get-SmbServerConfiguration | Format-List EnableSMB1Protocol.

SMBv1 제거

SMBv1은 기본적으로 Windows Server 2019 이상 버전에 설치되지 않습니다. 이전 버전의 Windows Server에서는 서버 관리자를 사용하여 SMBv1을 제거할 수 있습니다.

  1. SMBv1을 제거하려는 서버에서 서버 관리자를 엽니다.

  2. 서버 관리자 대시보드에서 이 로컬 서버 구성을 선택하고, 역할 및 기능 추가을 클릭합니다.

  3. 시작하기 전에 페이지에서 역할 및 기능 제거 마법사 시작을 선택한 다음, 다음 페이지에서 다음을 선택합니다.

  4. 대상 서버 페이지의 서버 풀아래에서 기능을 제거하려는 서버가 선택되어 있는지 확인하고 다음 선택합니다.

  5. 서버 역할 제거 페이지에서 다음을 선택합니다.

  6. 기능 제거 페이지에서 SMB 1.0/CIFS 파일 공유 지원확인란의 선택을 취소한 다음 선택합니다.

    서버 관리자 대시보드의 기능 제거 페이지의 스크린샷 기능 목록에서 SMBv1이 강조 표시됩니다.

  7. 제거 선택 확인 페이지에서 기능이 나열되어 있는지 확인한 다음 제거를 선택합니다.

명령줄 또는 레지스트리 편집기를 사용하여 SMB 프로토콜 관리

Windows 10 Fall Creators Update 및 Windows Server 2019부터 SMBv1은 기본적으로 더 이상 설치되지 않습니다. 자세한 내용은 Windows 10 버전 1709 및 Windows Server 버전 1709 이상 버전에서는 SMBv1이 기본적으로 설치되지 않음을참조하세요.

Windows 8 또는 Windows Server 2012에서 SMBv2를 사용하거나 사용하지 않도록 설정하면 SMBv3도 사용하거나 사용하지 않도록 설정됩니다. 이 동작은 이러한 프로토콜이 동일한 스택을 공유하기 때문에 발생합니다.

Set-SMBServerConfiguration cmdlet을 사용하여 서버 구성 요소에서 SMBv1, SMBv2 및 SMBv3 프로토콜을 사용하거나 사용하지 않도록 설정할 수 있습니다. Get-SmbServerConfiguration cmdlet을 사용하여 SMB 서버 구성을 검색할 수 있습니다.

Set-SMBServerConfiguration cmdlet을 실행한 후에는 컴퓨터를 다시 시작할 필요가 없습니다.

SMBv1

  • 감지:

    Get-SmbServerConfiguration | Select EnableSMB1Protocol
    
  • 사용 안 함

    Set-SmbServerConfiguration -EnableSMB1Protocol $false
    
  • 사용 가능하게 설정

    Set-SmbServerConfiguration -EnableSMB1Protocol $true
    

자세한 내용은 SMB1사용 중지를 참조하세요.

SMBv2 및 SMBv3

  • 감지:

    Get-SmbServerConfiguration | Select EnableSMB2Protocol
    
  • 사용 안 함

    Set-SmbServerConfiguration -EnableSMB2Protocol $false
    
  • 사용 가능하게 설정

    Set-SmbServerConfiguration -EnableSMB2Protocol $true
    

Windows 7, Windows Server 2008 R2, Windows Vista 및 Windows Server 2008에서 SMB 사용 또는 사용 안 함

Windows 7, Windows Server 2008 R2, Windows Vista 또는 Windows Server 2008을 실행하는 SMB 서버에서 SMB 프로토콜을 사용하거나 사용하지 않도록 설정하려면 다음 섹션에 설명된 대로 Windows PowerShell 또는 레지스트리 편집기를 사용합니다.

Windows PowerShell 사용

Get-Item, Get-ItemProperty, Set-ItemProperty cmdlet을 사용하여 SMB 프로토콜을 검색하고 사용하며 비활성화할 수 있습니다.

참고

다음 섹션의 명령에는 PowerShell 2.0 이상이 필요합니다.

SMB 서버의 SMBv1
  • 감지:

    Get-Item HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters | ForEach-Object {Get-ItemProperty $_.pspath}
    

    기본 구성은 Enabled. 따라서 명명된 레지스트리 값이 만들어지지 않으므로 명령은 SMB1 값을 반환하지 않습니다.

  • 사용 안 함

    Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB1 -Type DWORD -Value 0 -Force
    
  • 사용 가능하게 설정

    Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB1 -Type DWORD -Value 1 -Force
    

참고

이러한 변경 내용을 적용한 후에는 컴퓨터를 다시 시작해야 함을 주의하십시오.

자세한 내용은 SMB1사용 중지를 참조하세요.

SMB 서버의 SMBv2 및 SMBv3
  • 감지:

    Get-ItemProperty HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters | ForEach-Object {Get-ItemProperty $_.pspath}
    
  • 사용 안 함

    Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB2 -Type DWORD -Value 0 -Force
    
  • 사용 가능하게 설정

    Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB2 -Type DWORD -Value 1 -Force
    

참고

이러한 변경 내용을 적용한 후에는 컴퓨터를 다시 시작해야 함을 주의하십시오.

레지스트리 편집기 사용

중요하다

주의를 기울여 이 절의 단계를 수행하십시오. 레지스트리를 잘못 수정할 경우 심각한 문제가 발생할 수 있습니다. 수정하기 전에, 문제가 발생할 경우를 대비하여 복원을 위해 레지스트리를 백업해 두세요.

SMB 서버에서 SMBv1을 사용하거나 사용하지 않도록 설정하려면 레지스트리 편집기를 열고 다음 레지스트리 키 경로로 이동합니다.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters

다음 속성이 있는 항목을 구성합니다.

  • 이름에는 SMB1을 사용하세요.
  • 형식의 경우 REG_DWORD사용합니다.
  • 데이터의 경우 사용 안 함에는 0을 사용하고, 사용에는 1을 사용합니다. 기본값은 1또는 활성화됨. 이 경우 레지스트리 키가 만들어지지 않습니다.

SMB 서버에서 SMBv2를 사용하거나 사용하지 않도록 설정하려면 레지스트리 편집기를 열고 다음 레지스트리 키 경로로 이동합니다.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters

다음 속성이 있는 항목을 구성합니다.

  • 이름에는 SMB2을 사용하세요.
  • 형식의 경우 REG_DWORD사용합니다.
  • 데이터의 경우 사용 안 함에는 0을 사용하고, 사용에는 1을 사용합니다. 기본값은 1또는 활성화됨. 이 경우 레지스트리 키가 만들어지지 않습니다.

참고

 이러한 변경 내용을 적용한 후에는 컴퓨터를 다시 시작해야 함을 주의하십시오.

그룹 정책을 사용하여 SMBv1 사용 안 함

이 섹션에서는 그룹 정책을 사용하여 SMBv1을 사용하지 않도록 설정하는 방법을 보여줍니다. 다양한 버전의 Windows에서 이 메서드를 사용할 수 있습니다.

SMBv1

레지스트리에서 다음 새 항목을 구성하여 SMB 서버에서 SMBv1을 사용하지 않도록 설정할 수 있습니다.

  • 키 경로: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
  • 레지스트리 항목: SMB1
  • 항목 유형: REG_DWORD
  • 항목 데이터: 0, 사용 안 함

그룹 정책을 사용하여 이 항목을 구성하려면 다음 단계를 수행합니다.

  1. 그룹 정책 관리 콘솔을 엽니다. 새 기본 설정 항목이 포함되어야 하는 GPO(그룹 정책 개체)를 마우스 오른쪽 단추로 클릭한 다음 편집선택합니다.

  2. 컴퓨터 구성의 콘솔 트리에서 기본 설정 폴더를 확장한 다음 Windows 설정 폴더를 확장합니다.

  3. 레지스트리 노드를 마우스 오른쪽 단추로 클릭하고, 를 가리킨 다음, 레지스트리 항목을 선택합니다.

    그룹 정책 관리 콘솔의 콘솔 트리 스크린샷 레지스트리 바로 가기 메뉴가 표시되고 첫 번째 메뉴에서 새로 만들기가 강조 표시됩니다.

  4. 새 레지스트리 속성 대화 상자에서 다음 값을 선택하거나 입력합니다.

    • 작업: 생성
    • 하이브: HKEY_LOCAL_MACHINE
    • 키 경로: SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
    • 값 이름: SMB1
    • 값의 유형: REG_DWORD
    • 값 데이터: 0

    새 레지스트리 속성 대화 상자의 스크린샷 값은 작업, 하이브, 키 경로, 이름, 형식 및 데이터 필드에 표시됩니다.

이 절차에서는 SMBv1 서버 구성 요소를 사용하지 않도록 설정합니다. 도메인의 모든 필요한 워크스테이션, 서버 및 도메인 컨트롤러에 이 정책을 적용해야 합니다.

참고

 특정 운영 체제를 제외하거나 클라이언트 또는 서버 운영 체제를 제외하도록 WMI(Windows Management Instrumentation) 필터를 설정할 수 있습니다. 자세한 내용은 그룹 정책 필터링 참조하고 GPO 대한 WMI 필터 만들기를.

중요하다

일부 시스템에서는 SYSVOL 폴더 또는 다른 파일 공유에 액세스해야 하지만 SMBv2 또는 SMBv3은 지원하지 않습니다. 이러한 시스템의 예로는 레거시 Windows 시스템과 이전 Linux 및 파트너 시스템이 있습니다. 이러한 시스템의 도메인 컨트롤러에서 SMBv1을 사용하지 않도록 설정하는 경우 주의해야 합니다.

SMBv1 사용 확인 감사

SMBv1을 사용하여 SMB 서버에 연결하려는 클라이언트를 확인하려면 Windows Server 및 Windows 클라이언트에서 감사를 사용하도록 설정할 수 있습니다. 감사를 사용하거나 사용하지 않도록 설정하려면 Set-SmbServerConfiguration cmdlet을 사용합니다. 감사 상태를 확인하려면 Get-SmbServerConfiguration cmdlet을 사용합니다.

  • 사용 가능하게 설정

    Set-SmbServerConfiguration -AuditSmb1Access $true
    
  • 사용 안 함

    Set-SmbServerConfiguration -AuditSmb1Access $false
    
  • 감지:

    Get-SmbServerConfiguration | Select AuditSmb1Access
    

SMBv1 감사를 사용하도록 설정한 후 Microsoft-Windows-SMBServer\Audit 이벤트 로그에서 액세스 이벤트를 확인할 수 있습니다. 클라이언트가 SMBv1을 사용하여 서버에 연결하려고 할 때마다 이벤트 ID가 3000인 항목이 로그에 나타납니다.

그룹 정책 설정 확인

모든 설정이 동일한 GPO에 있는 경우 그룹 정책 관리에는 다음 설정이 표시됩니다.

그룹 정책 관리 편집기 레지스트리의 스크린샷 DependOnService, SMB1 및 Start의 세 가지 항목이 표시됩니다.

정책 테스트 및 유효성 검사

그룹 정책 관리 콘솔에서 구성 단계를 완료한 후 그룹 정책에서 해당 설정에 업데이트를 적용할 시간을 줍니다. 테스트에 필요한 경우 명령 프롬프트에서 gpupdate /force 실행한 다음 대상 컴퓨터를 검토하여 레지스트리 설정이 올바르게 적용되었는지 확인합니다. SMBv2 및 SMBv3이 환경의 다른 모든 시스템에 대해 작동하는지 확인합니다.

참고

정책을 테스트한 후 대상 시스템을 다시 시작합니다.