Windows에서 SMBv1, SMBv2, SMBv3을 검색, 활성화, 비활성화하는 방법
적용 대상: Windows Server 2022, Windows Server 2019, Windows Server 2016, Windows Server 2012 R2, Windows Server 2012, Windows 11, Windows 10, Windows 8.1, Windows 8
이 문서에서는 SMB 클라이언트 및 서버 구성 요소에서 SMB(서버 메시지 블록) 버전 1(SMBv1), SMB 버전 2(SMBv2) 및 SMB 버전 3(SMBv3)을 사용하거나 사용하지 않도록 설정하는 방법을 설명합니다.
SMBv1을 사용하지 않도록 설정하거나 제거하면 이전 컴퓨터 또는 소프트웨어와 호환성 문제가 발생할 수 있지만 SMBv1에는 상당한 보안 취약성이 있으며 사용하지 않는 것을 권장합니다. Windows 11 또는 Windows Server 2019 이상 버전에서는 SMB 1.0이 기본적으로 설치되지 않습니다. SMB 1.0은 Home 및 Pro 버전을 제외하고 Windows 10에도 기본적으로 설치되지 않습니다. SMB 1.0을 다시 설치하는 대신 여전히 필요한 SMB 서버를 업데이트하는 것이 좋습니다. SMB 1.0이 필요한 타사 목록과 요구 사항을 제거하는 해당 업데이트를 보려면 SMB1 Product Clearinghouse를 검토하세요.
문제 해결을 위해 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를 해시 알고리즘으로 대체
- 파일 공유에 대한 확장성 향상 - 서버당 사용자, 공유 및 열린 파일 수가 크게 증가했습니다.
- 기호 링크 지원
- 클라이언트 oplock 임대 모델 - 클라이언트와 서버 간에 전송되는 데이터를 제한하여 대기 시간이 긴 네트워크에서 성능을 향상시키고 SMB 서버 확장성을 높입니다.
- 대규모 MTU 지원 - 10GbE(기가비트 이더넷)의 전체 사용
- 향상된 에너지 효율성 - 서버에 열려 있는 파일이 있는 클라이언트는 절전 모드로 설정할 수 있습니다.
SMBv2 프로토콜은 Windows Vista 및 Windows Server 2008에서 도입되었으며, SMBv3 프로토콜은 Windows 8 및 Windows Server 2012에서 도입되었습니다. SMBv2 및 SMBv3의 기능에 대한 자세한 내용은 다음 문서를 참조하세요.
PowerShell을 통해 SMBv1을 제거하는 방법
권한 상승과 함께 PowerShell 명령을 사용하여 SMBv1 클라이언트 및 서버를 검색, 비활성화 및 사용하도록 설정하는 단계는 다음과 같습니다.
참고 항목
PowerShell 명령을 실행하여 SMBv1을 사용하지 않도록 설정하거나 사용하도록 설정한 후 컴퓨터가 다시 시작됩니다.
검색:
Get-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
다음 항목을 사용하지 않도록 설정하세요.
Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
[도메인에 조인된 컴퓨터를 디바이스로 등록]을
Enable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
팁
다음을 Get-SmbServerConfiguration | Format-List EnableSMB1Protocol
을 실행하여 승격 없이 SMBv1 상태를 검색할 수 있습니다.
Windows Server 2012, Windows Server 2012 R2, Windows Server 2016, Windows Server 2019: 서버 관리자 방법
Windows Server에서 SMBv1을 제거하려면 다음을 수행합니다.
- SMBv1을 제거하려는 서버의 서버 관리자 대시보드의 로컬 서버 구성하기에서 역할 및 기능 추가를 선택합니다.
- 시작하기 전에 페이지에서 역할 및 기능 제거 마법사 시작을 선택한 다음, 다음 페이지에서 다음을 선택합니다.
- 서버 풀 아래의 대상 서버 선택 페이지에서 기능을 제거하려는 서버가 선택되어 있는지 확인하고 다음을 선택합니다.
- 서버 역할 제거 페이지에서 다음을 선택합니다.
- 기능 제거 페이지에서 SMB 1.0/CIFS 파일 공유 지원 확인란의 선택을 취소하고 다음을 선택합니다.
- 제거 선택 확인 페이지에서 기능이 나열되어 있는지 확인한 다음 제거를 선택합니다.
Windows 8.1, Windows 10 및 Windows 11: 프로그램 추가 또는 제거 방법
언급된 운영 체제에 대해 SMBv1을 사용하지 않도록 설정하려면 다음을 수행합니다.
- 제어판에서 프로그램 및 기능을 선택합니다.
- 제어판 홈에서 Windows 기능 켜기 또는 끄기를 선택하여 Windows 기능 상자를 엽니다.
- Windows 기능 상자에서 목록을 아래로 스크롤하고 SMB 1.0/CIFS 파일 공유 지원 확인란의 선택을 취소하고 확인을 선택합니다.
- Windows에서 변경 사항을 적용한 후 확인 페이지에서 지금 다시 시작을 선택합니다.
상태를 검색하고, SMB 프로토콜을 사용하도록 설정하고, 사용하지 않도록 설정하는 방법
참고 항목
Windows 8 또는 Windows Server 2012에서 SMBv2를 사용하거나 사용하지 않도록 설정하면 SMBv3도 사용하거나 사용하지 않도록 설정됩니다. 이 동작은 이러한 프로토콜이 동일한 스택을 공유하기 때문에 발생합니다.
Windows 8 및 Windows Server 2012에는 새로운 Set-SMBServerConfiguration Windows PowerShell cmdlet이 도입되었습니다. cmdlet을 사용하면 서버 구성 요소에서 SMBv1, SMBv2 및 SMBv3 프로토콜을 사용하거나 사용하지 않도록 설정할 수 있습니다.
Set-SMBServerConfiguration cmdlet을 실행한 후에는 컴퓨터를 다시 시작할 필요가 없습니다.
SMBv1
검색:
Get-SmbServerConfiguration | Select EnableSMB1Protocol
다음 항목을 사용하지 않도록 설정하세요.
Set-SmbServerConfiguration -EnableSMB1Protocol $false
[도메인에 조인된 컴퓨터를 디바이스로 등록]을
Set-SmbServerConfiguration -EnableSMB1Protocol $true
자세한 내용은 Microsoft 의 서버 스토리지를 참조하세요.
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 이상이 필요합니다.
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 의 서버 스토리지를 참조하세요.
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
참고 항목
이러한 변경 내용을 적용한 후에는 컴퓨터를 다시 시작해야 함을 주의하십시오.
레지스트리 편집기
Important
주의를 기울여 이 절의 단계를 수행하십시오. 레지스트리를 잘못 수정할 경우 심각한 문제가 발생할 수 있습니다. 수정하기 전에, 문제가 발생할 경우를 대비하여 복원을 위해 레지스트리를 백업해 두세요.
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)
참고 항목
이러한 변경 내용을 적용한 후에는 컴퓨터를 다시 시작해야 함을 주의하십시오.
그룹 정책을 사용하여 SMBv1 사용 안 함
이 섹션에서는 그룹 정책을 사용하여 SMBv1을 사용하지 않도록 설정하는 방법을 소개합니다. 다른 버전의 Windows에서 이 메서드를 사용할 수 있습니다.
SMBv1
이 절차는 레지스트리에서 다음 새 항목을 구성합니다.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
- 레지스트리 항목: SMB1
- REG_DWORD: 0 = 사용 안 함
그룹 정책 설정을 구성하려면 다음 단계를 따르세요.
열기는 그룹 정책 관리 콘솔합니다. 새 기본 설정 항목을 포함 하는 그룹 정책 개체 (GPO)를 오른쪽 마우스로 클릭하고, 편집을 클릭합니다.
컴퓨터 구성의 콘솔 트리에서 기본 설정 폴더를 확장한 다음 Windows 설정 폴더를 확장합니다.
레지스트리 노드를 마우스 오른쪽 단추로 클릭하고 새로 만들기를 가리킨 다음 레지스트리 항목을 선택합니다.
New Registry Properties 대화 상자에서 다음을 선택합니다.
- 작업: 만들기
- 하이브: HKEY_LOCAL_MACHINE
- 키 경로: SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
- 값 이름: SMB1
- 값 형식: REG_DWORD
- 값 데이터: 0
이 절차에서는 SMBv1 서버 구성 요소를 사용하지 않도록 설정합니다. 이 그룹 정책은 도메인의 모든 필요한 워크스테이션, 서버 및 도메인 컨트롤러에 적용해야 합니다.
참고 항목
지원되지 않는 운영 체제 또는 선택한 제외(예: Windows XP)를 제외하도록 WMI 필터를 설정할 수도 있습니다.
Important
레거시 Windows XP 또는 이전 Linux 및 타사 시스템(SMBv2 또는 SMBv3을 지원하지 않는)에서 SYSVOL 또는 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에 있는 경우 그룹 정책 관리에 다음 설정이 표시됩니다.
테스트 및 유효성 검사
이 문서의 구성 단계를 완료한 후 정책이 복제 및 업데이트되도록 허용합니다. 테스트에 필요한 경우 명령 프롬프트에서 gpupdate /force를 실행한 다음 대상 컴퓨터를 검토하여 레지스트리 설정이 올바르게 적용되었는지 확인합니다. SMBv2 및 SMBv3이 환경의 다른 모든 시스템에 대해 작동하는지 확인합니다.
참고 항목
대상 시스템을 다시 시작하는 것을 잊지 마세요.