Windows에서 SMBv1, SMBv2, SMBv3을 검색, 활성화, 비활성화하는 방법

적용 대상: Windows Server 2022, Windows 10, Windows 8.1, Windows 8, Windows Server 2019, Windows Server 2016, Windows Server 2012 R2, Windows Server 2012

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

SMBv1을 사용하지 않도록 설정하거나 제거하면 이전 컴퓨터 또는 소프트웨어와 호환성 문제가 발생할 수 있지만 SMBv1에는 심각한 보안 취약성이 있으며 사용하지 않는 것이 좋습니다.

문제 해결을 위해 SMBv2 또는 SMBv3 비활성화

SMBv2 및 SMBv3을 사용하도록 설정하는 것이 좋지만 문제 해결을 위해 일시적으로 사용하지 않도록 설정하는 것이 유용할 수 있습니다. 자세한 내용은 SMB 서버에서 상태를 검색하고 SMB 프로토콜을 사용하도록 설정하고 사용하지 않도록 설정하는 방법을 참조하세요.

Windows 10 Windows 8.1 Windows Server 2019, Windows Server 2016, Windows Server 2012 R2 및 Windows Server 2012 SMBv3을 사용하지 않도록 설정하면 다음 기능이 비활성화됩니다.

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

Windows 7 및 Windows Server 2008 R2에서 SMBv2를 사용하지 않도록 설정하면 다음 기능이 비활성화됩니다.

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

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

SMBv1을 제거하는 방법

Windows 10, Windows 8.1, Windows Server 2019, Windows Server 2016 및 Windows 2012 R2에서 SMBv1을 제거하는 방법은 다음과 같습니다.

PowerShell 메서드

PowerShell 명령을 사용하여 SMBv1 클라이언트 및 서버를 검색, 비활성화 및 사용하도록 설정하는 단계는 다음과 같습니다.

참고

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

  • 감지:

    Get-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
    
  • 다음 항목을 사용하지 않도록 설정하세요.

    Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
    
  • [도메인에 조인된 컴퓨터를 디바이스로 등록]을

    Enable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
    

Windows Server 2012 Windows Server 2012 R2, Windows Server 2016 Windows Server 2019: Server Manager 메서드

Server Manager - Dashboard method

Windows 서버에서 SMBv1을 제거하려면 다음을 수행합니다.

  1. SMBv1을 제거하려는 서버의 서버 관리자 대시보드에서 이 로컬 서버 구성에서 역할 및 기능 추가를 선택합니다.
  2. 시작하기 전에 페이지에서 역할 및 기능 제거 마법사 시작을 선택한 다음, 다음 페이지에서 다음을 선택합니다.
  3. 서버 풀 아래의 대상 서버 선택 페이지에서 기능을 제거하려는 서버가 선택되어 있는지 확인하고 다음을 선택합니다.
  4. 서버 역할 제거 페이지에서 다음을 선택합니다.
  5. 기능 제거 페이지에서 SMB 1.0/CIFS 파일 공유 지원 확인란의 선택을 취소하고 다음을 선택합니다.
  6. 제거 선택 확인 페이지에서 기능이 나열되어 있는지 확인한 다음 제거를 선택합니다.

Windows 8.1 및 Windows 10: Programs 메서드 추가 또는 제거

Add-Remove Programs client method

Windows 8.1 및 Windows 10 SMBv1을 사용하지 않도록 설정하려면 다음을 수행합니다.

  1. 제어판에서 프로그램 및 기능을 선택합니다.
  2. 제어판 홈 아래에서 Windows 기능 켜기 또는 끄기를 선택하여 Windows 기능 상자를 엽니다.
  3. Windows 기능 상자에서 목록을 아래로 스크롤하고 SMB 1.0/CIFS 파일 공유 지원 확인란의 선택을 취소하고 확인을 선택합니다.
  4. Windows 변경 내용이 적용되면 확인 페이지에서 지금 다시 시작을 선택합니다.

SMB 서버에서 상태를 검색하고, SMB 프로토콜을 사용하도록 설정하고, 사용하지 않도록 설정하는 방법

Windows 8.1, Windows Server 2012, Windows Server 2012 R2, Windows 10 및 Windows Server 2019

Windows 8 및 Windows Server 2012 새로운 Set-SMBServerConfiguration Windows PowerShell cmdlet을 도입했습니다. cmdlet을 사용하면 서버 구성 요소에서 SMBv1, SMBv2 및 SMBv3 프로토콜을 사용하거나 사용하지 않도록 설정할 수 있습니다.

참고

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

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

SMB 서버의 SMBv1

  • 감지:

    Get-SmbServerConfiguration | Select EnableSMB1Protocol
    
  • 다음 항목을 사용하지 않도록 설정하세요.

    Set-SmbServerConfiguration -EnableSMB1Protocol $false
    
  • [도메인에 조인된 컴퓨터를 디바이스로 등록]을

    Set-SmbServerConfiguration -EnableSMB1Protocol $true
    

자세한 내용은 Microsoft의 Server Storage를 참조하세요.

SMB 서버의 SMB v2/v3

  • 감지:

    Get-SmbServerConfiguration | Select EnableSMB2Protocol
    
  • 다음 항목을 사용하지 않도록 설정하세요.

    Set-SmbServerConfiguration -EnableSMB2Protocol $false
    
  • [도메인에 조인된 컴퓨터를 디바이스로 등록]을

    Set-SmbServerConfiguration -EnableSMB2Protocol $true
    

Windows 7의 경우 Windows Server 2008 R2, Windows Vista 및 Windows Server 2008

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

PowerShell 메서드

참고

이 메서드를 사용하려면 PowerShell 2.0 이상 버전의 PowerShell이 필요합니다.

SMB 서버의 SMBv1

감지:

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

기본 구성 = 사용(명명된 값이 지정된 레지스트리 없음) 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

참고 변경한 후 컴퓨터를 다시 시작해야 합니다. 자세한 내용은 Microsoft의 Server Storage를 참조하세요.

SMB 서버의 SMBv2/v3

감지:

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

Registry entry: SMB1
REG_DWORD: 0 = Disabled
REG_DWORD: 1 = Enabled
Default: 1 = Enabled (No registry key is created)

SMB 서버에서 SMBv2를 사용하거나 사용하지 않도록 설정하려면 다음 레지스트리 키를 구성합니다.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters

Registry entry: SMB2
REG_DWORD: 0 = Disabled
REG_DWORD: 1 = Enabled
Default: 1 = Enabled (No registry key is created)

참고

 이러한 변경 내용을 적용한 후 컴퓨터를 다시 시작해야 합니다.

SMB 클라이언트에서 상태를 검색하고, SMB 프로토콜을 사용하도록 설정하고, 사용하지 않도록 설정하는 방법

다음은 Windows 10, Windows Server 2019, Windows 8.1, Windows Server 2016, Windows Server 2012 R2 및 Windows 10 실행 중인 SMB 클라이언트에서 SMB 프로토콜을 검색, 사용 및 사용하지 않도록 설정하는 방법입니다. Windows Server 2012.

참고

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

SMB 클라이언트의 SMBv1

  • Detect

    sc.exe qc lanmanworkstation
    
  • 다음 항목을 사용하지 않도록 설정하세요.

    sc.exe config lanmanworkstation depend= bowser/mrxsmb20/nsi
    sc.exe config mrxsmb10 start= disabled
    
  • [도메인에 조인된 컴퓨터를 디바이스로 등록]을

    sc.exe config lanmanworkstation depend= bowser/mrxsmb10/mrxsmb20/nsi
    sc.exe config mrxsmb10 start= auto
    

자세한 내용은 Microsoft의 Server Storage를 참조하세요.

SMB 클라이언트의 SMBv2/v3

  • 감지:

    sc.exe qc lanmanworkstation
    
  • 다음 항목을 사용하지 않도록 설정하세요.

    sc.exe config lanmanworkstation depend= bowser/mrxsmb10/nsi
    sc.exe config mrxsmb20 start= disabled
    
  • [도메인에 조인된 컴퓨터를 디바이스로 등록]을

    sc.exe config lanmanworkstation depend= bowser/mrxsmb10/mrxsmb20/nsi
    sc.exe config mrxsmb20 start= auto
    

참고

  • 관리자 권한 명령 프롬프트에서 이러한 명령을 실행해야 합니다.
  • 이러한 변경 내용을 적용한 후 컴퓨터를 다시 시작해야 합니다.

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

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

SMBv1 서버 사용 안 함

이 절차는 레지스트리에서 다음과 같은 새 항목을 구성합니다.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters

  • 레지스트리 항목: SMB1
  • REG_DWORD: 0 = 사용 안 함

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

  1. 그룹 정책 관리 콘솔을 엽니다. 새 기본 설정 항목을 추가할 그룹 정책 개체를 마우스 오른쪽 단추로 클릭한 다음 편집을 클릭합니다.

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

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

    Registry - New - Registry Item

새 레지스트리 속성 대화 상자에서 다음을 선택합니다.

  • 작업: 업데이트
  • Hive: HKEY_LOCAL_MACHINE
  • 키 경로: SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
  • 값 이름: SMB1
  • 값 형식: REG_DWORD
  • 값 데이터: 0

New Registry Properties - General

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

참고

 지원되지 않는 운영 체제 또는 선택한 제외(예: Windows XP)를 제외하도록 WMI 필터를 설정할 수도 있습니다.

중요

레거시 Windows XP 또는 이전 Linux 및 타사 시스템(SMBv2 또는 SMBv3을 지원하지 않음)에서 SYSVOL 또는 SMB v1이 비활성화된 다른 파일 공유에 액세스해야 하는 도메인 컨트롤러에서 이러한 변경을 수행할 때는 주의해야 합니다.

SMBv1 클라이언트 사용 안 함

SMBv1 클라이언트를 사용하지 않도록 설정하려면 MRxSMB10 의 시작을 사용하지 않도록 서비스 레지스트리 키를 업데이트한 다음 MRxSMB10 에 대한 종속성을 LanmanWorkstation 항목에서 제거해야 MRxSMB10 을 처음 시작할 필요 없이 정상적으로 시작할 수 있습니다.

이 지침은 레지스트리의 다음 두 항목에서 기본값을 업데이트하고 대체합니다.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\mrxsmb10

레지스트리 항목: 시작 REG_DWORD: 4= 사용 안 함

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation

레지스트리 항목: DependOnService REG_MULTI_SZ: "Bowser","MRxSmb20","NSI"

참고

 기본 포함 MRxSMB10은 이제 종속성으로 제거됩니다.

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

  1. 그룹 정책 관리 콘솔을 엽니다. 새 기본 설정 항목을 포함할 GPO를 마우스 오른쪽 단추로 클릭한 다음 편집을 클릭합니다.

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

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

  4. 새 레지스트리 속성 대화 상자에서 다음을 선택합니다.

    • 작업: 업데이트
    • Hive: HKEY_LOCAL_MACHINE
    • 키 경로: SYSTEM\CurrentControlSet\services\mrxsmb10
    • 값 이름: 시작
    • 값 형식: REG_DWORD
    • 값 데이터: 4

    Start Properties - General

  5. 그런 다음 사용하지 않도록 설정된 MRxSMB10 에 대한 종속성을 제거합니다.

    새 레지스트리 속성 대화 상자에서 다음을 선택합니다.

    • 작업: 바꾸기
    • Hive: HKEY_LOCAL_MACHINE
    • 키 경로: SYSTEM\CurrentControlSet\Services\LanmanWorkstation
    • 값 이름: DependOnService
    • 값 형식: REG_MULTI_SZ
    • 값 데이터:
      • Bowser
      • MRxSmb20
      • NSI

    참고

    이 세 문자열에는 글머리 기호가 없습니다(다음 스크린샷 참조).

    DependOnService Properties

    기본값은 여러 버전의 Windows MRxSMB10을 포함하므로 이 다중 값 문자열로 바꿔서 실제로는 LanmanWorkstation에 대한 종속성으로 MRxSMB10을 제거하고 4개의 기본값에서 위의 세 값으로 내려갈 수 있습니다.

    참고

    그룹 정책 관리 콘솔을 사용하는 경우 따옴표나 쉼표를 사용할 필요가 없습니다. 개별 줄에 각 항목을 입력하기만 하면됩니다.

  6. 대상 시스템을 다시 시작하여 SMB v1 비활성화를 완료합니다.

SMBv1 사용 감사

SMBv1을 사용하여 SMB 서버에 연결하려는 클라이언트를 확인하려면 Windows Server 2016, Windows 10 및 Windows Server 2019에서 감사를 사용하도록 설정할 수 있습니다. 2018년 5월 월간 업데이트가 설치된 경우 Windows 7 및 Windows Server 2008 R2에 감사하고, 2017년 7월 월간 업데이트가 설치된 경우 Windows 8.1 및 Windows Server 2012 R2에서도 감사할 수 있습니다.

  • [도메인에 조인된 컴퓨터를 디바이스로 등록]을

    Set-SmbServerConfiguration -AuditSmb1Access $true
    
  • 다음 항목을 사용하지 않도록 설정하세요.

    Set-SmbServerConfiguration -AuditSmb1Access $false
    
  • 감지:

    Get-SmbServerConfiguration | Select AuditSmb1Access
    

SMBv1 감사를 사용하도록 설정하면 이벤트 3000이 "Microsoft-Windows-SMBServer\Audit" 이벤트 로그에 표시되어 SMBv1에 연결을 시도하는 각 클라이언트를 식별합니다.

요약

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

Group Policy Management Editor - Registry

테스트 및 유효성 검사

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

참고

대상 시스템을 다시 시작해야 합니다.