Windows 및 Windows Server에서 SMBv1, SMBv2 및 SMBv3를 검색하고 사용하거나 사용하지 않도록 설정하는 방법

적용 대상: Windows 10 Pro released in July 2015Windows Vista EnterpriseWindows Vista Business

요약


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

Windows 7 및 Windows Server 2008 R2에서 SMBv2를 사용하지 않도록 설정하면 다음 기능이 비활성화됩니다.
  • 요청 컴파운딩 - 여러 SMB 2 요청을 단일 네트워크 요청으로 보낼 수 있도록 허용
  • 대규모 읽기 및 쓰기 - 보다 빠른 네트워크를 효과적으로 사용
  • 폴더 및 파일 속성 캐싱 - 클라이언트에서 폴더 및 파일의 로컬 복사본 유지
  • 지속 핸들 - 연결이 일시적으로 끊어진 경우 서버에 투명하게 다시 연결할 수 있도록 함
  • 개선된 메시지 서명 - MD5 대신 HMAC SHA-256이 해싱 알고리즘으로 사용됨
  • 파일 공유를 위해 개선된 확장성 - 서버당 사용자, 공유 및 열려 있는 파일 수가 대폭 증가함
  • 바로 가기 링크 지원
  • 클라이언트 Oplock 임대 모델 - 클라이언트와 서버 간에 전송되는 데이터를 제한하여 대기 시간이 높게 발생하는 네트워크의 성능을 개선하고 SMB 서버의 확장성을 높여 줌
  • 대규모 MTU 지원 - 10기가바이트(GB) 이더넷을 완전히 사용
  • 개선된 에너지 효율 - 서버에 대해 파일이 열려 있는 클라이언트가 절전 모드로 들어갈 수 있음
Windows 8, Windows 8.1, Windows 10, Windows Server 2012 및 Windows Server 2016에서 SMBv3를 사용하지 않도록 설정하면 위의 목록에서 설명한 SMBv2 기능과 함께 다음 기능이 비활성화됩니다.
  • 투명 장애 조치(failover) - 클라이언트가 유지 보수 또는 장애 조치 도중 중단 없이 클러스터 노드에 다시 연결됨
  • 규모 확장 - 모든 파일 클러스터 노드의 공유 데이터에 동시에 액세스 
  • 다채널 - 클라이언트와 서버 간의 경로가 여러 개인 경우 네트워크 대역폭 및 내결함성 집계
  • SMB 다이렉트 - 고도로 높은 성능을 내면서 대기 시간과 CPU 사용률을 낮게 유지하기 위해 RDMA 네트워킹 지원 추가
  • 암호화 - 종단 간 암호화를 수행하고 신뢰할 수 없는 네트워크에서 발생하는 도청 차단
  • 디렉터리 임대 - 캐싱을 통해 지사의 응용 프로그램 응답 시간 개선
  • 성능 최적화 - 소규모 임의 읽기/쓰기 I/O에 맞게 최적화

추가 정보


SMBv2 프토로콜은 Windows Vista 및 Windows Server 2008에 처음 도입되었고,

SMBv3 프토로콜은 Windows 8 및 Windows Server 2012에 처음 도입되었습니다.

SMBv2 및 SMBv3 기능에 대한 자세한 내용은 다음 Microsoft TechNet 웹 사이트를 참조하세요.
 

Windows 8.1, Windows 10, Windows 2012 R2 및 Windows Server 2016에서 SMB v1을 자동으로 제거하는 방법


Windows Server 2012 R2 및 2016: PowerShell을 사용한 방법

SMB v1

검색:

Get-WindowsFeature FS-SMB1

사용 안 함:

Disable-WindowsOptionalFeature -Online -FeatureName smb1protocol

사용:

Enable-WindowsOptionalFeature -Online -FeatureName smb1protocol


SMB v2/v3

검색:

Get-SmbServerConfiguration | Select EnableSMB2Protocol

사용 안 함:

Set-SmbServerConfiguration -EnableSMB2Protocol $false

사용:

Set-SmbServerConfiguration -EnableSMB2Protocol $true



Windows Server 2012 R2 및 Windows Server 2016: 서버 관리자로 SMB를 사용하지 않도록 설정하는 방법

SMB v1
Server Manager - Dashboard method



Windows 8.1 및 Windows 10: PowerShell을 사용한 방법

SMB v1 프로토콜



Windows 8.1 및 Windows 10: 프로그램 추가/제거를 사용한 방법

Add-Remove Programs client method
 
 

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


Windows 8 및 Windows Server 2012

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


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

SMB 서버의 SMB v1
검색: Get-SmbServerConfiguration | Select EnableSMB1Protocol
사용 안 함: Set-SmbServerConfiguration -EnableSMB1Protocol $false
사용: Set-SmbServerConfiguration -EnableSMB1Protocol $true

자세한 내용은 Microsoft의 서버 저장소를 참조하세요.

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을 사용한 방법


SMB 서버의 SMB v1

검색:

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의 서버 저장소를 참조하세요.

SMB 서버의 SMB v2/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


참고 이러한 변경 작업을 수행한 후에는 컴퓨터를 다시 시작해야 합니다.


레지스트리 편집기

중요이 문서에서는 레지스트리 수정 방법을 설명합니다. 레지스트리를 수정하기 전에 해당 레지스트리를 백업하는 것이 좋습니다. 문제가 발생하는 경우 레지스트리를 복원하는 방법을 알고 있어야 합니다. 레지스트리 백업, 복원 및 수정 방법에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
322756 Windows에서 레지스트리를 백업 및 복원하는 방법

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

레지스트리 하위 키: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
레지스트리 항목: SMB1
REG_DWORD: 0 = 사용 안 함
REG_DWORD: 1 = 사용
기본값: 1 = 사용(레지스트리 키가 만들어지지 않음)

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

레지스트리 하위 키:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
레지스트리 항목: SMB2
REG_DWORD: 0 = 사용 안 함
REG_DWORD: 1 = 사용
기본값: 1 = 사용(레지스트리 키가 만들어지지 않음)


참고 이러한 변경 작업을 수행한 후에는 컴퓨터를 다시 시작해야 합니다.

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


Windows Vista, Windows Server 2008, Windows 7, Windows Server 2008 R2, Windows 8 및 Windows Server 2012

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

SMB 서버의 SMB v1
검색: sc.exe query 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의 서버 저장소를 참조하세요.

SMB 서버의 SMB v2/v3
검색: sc.exe query 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 서버를 사용하지 않도록 설정


이렇게 하면 레지스트리에 다음과 같은 새 항목이 구성됩니다.


HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters

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


그룹 정책을 통해 이렇게 구성하려면:

  1. 그룹 정책 관리 콘솔을 엽니다. 새 기본 설정 항목을 포함해야 하는 GPO(그룹 정책 개체)를 마우스 오른쪽 단추로 클릭한 후 편집을 클릭합니다.
  2. 콘솔 트리의 컴퓨터 구성에서 기본 설정 폴더를 확장한 후 Windows 설정 폴더를 확장합니다.
  3. 레지스트리 노드를 마우스 오른쪽 단추로 클릭하고 새로 만들기를 가리키고 레지스트리 항목을 선택합니다.

    새로운-레지스트리 항목을 레지스트리

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

  • 동작: 만들기
  • 하이브: HKEY_LOCAL_MACHINE
  • 키 경로: SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
  • 값 이름: SMB1
  • 값 종류: REG_DWORD
  • 값 데이터: 0

새 레지스트리 속성-일반

이렇게 하면 SMBv1 서버 구성 요소가 사용하지 않도록 설정됩니다. 이 그룹 정책은 도메인에서 필요한 모든 워크스테이션, 서버 및 도메인 컨트롤러에 적용해야 합니다.

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

그룹 정책을 통해 SMBv1 클라이언트를 사용하지 않도록 설정


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

이렇게 하면 레지스트리의 다음 두 항목에서 기본값이 업데이트 및 대체됩니다.


HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\mrxsmb10

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

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation

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


주의기본값에 포함된 MRxSMB10은 이제 종속성으로 제거되어 있습니다.


그룹 정책을 통해 이렇게 구성하려면:

  1. 그룹 정책 관리 콘솔을 엽니다. 새 기본 설정 항목을 포함해야 하는 GPO(그룹 정책 개체)를 마우스 오른쪽 단추로 클릭한 후 편집을 클릭합니다.
  2. 콘솔 트리의 컴퓨터 구성에서 기본 설정 폴더를 확장한 후 Windows 설정 폴더를 확장합니다.
  3. 레지스트리 노드를 마우스 오른쪽 단추로 클릭하고 새로 만들기를 가리키고 레지스트리 항목을 선택합니다.

새로운-레지스트리 항목을 레지스트리

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

  • 동작: 업데이트
  • 하이브: HKEY_LOCAL_MACHINE
  • 키 경로: SYSTEM\CurrentControlSet\services\mrxsmb10
  • 값 이름: Start
  • 값 종류: REG_DWORD
  • 값 데이터: 4

시작 속성-일반

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

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

  • 동작: 바꾸기
  • 하이브: HKEY_LOCAL_MACHINE
  • 키 경로: SYSTEM\CurrentControlSet\Services\LanmanWorkstation
  • 값 이름: DependOnService
  • 값 유형 REG_MULTI_SZ
  • 값 데이터:
    • Bowser
    • MRxSmb20
    • NSI

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

찾습니다 속성

많은 버전의 Windows에서 기본값에 MRxSMB10이 포함되어 있으므로 이를 이 다중 값 문자열로 바꾸면 실제로는 LanmanServer에 대한 종속성으로 MRxSMB10을 제거하고 네 개의 기본값에서 이러한 세 개의 값으로 이동하게 되는 것입니다.

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

다시 시작 필요여부

정책이 적용되어 레지스트리 설정이 작동하면 SMB v1을 사용하지 않도록 설정하기 전에 대상 시스템을 재부팅해야 합니다.

요약

모든 설정이 동일한 GPO(그룹 정책 개체)에 있는 경우 그룹 정책 관리에 아래의 설정이 나타납니다.

그룹 정책 관리 편집기 레지스트리

테스트 및 유효성 검사

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