Computer >> 컴퓨터 >  >> 체계 >> Windows 7

Windows에서 SMB 프로토콜 버전을 확인, 활성화 또는 비활성화하는 방법은 무엇입니까?

서버 메시지 블록(SMB) 네트워크 프로토콜은 네트워크(TCP 포트 445)를 통해 폴더, 파일, 프린터 및 기타 장치를 공유하고 액세스하는 데 사용됩니다. 이 기사에서는 다양한 Windows 버전에서 사용할 수 있는 SMB 버전(방언)과 samba와 어떤 관련이 있는지 살펴보겠습니다. Linux 버전); 컴퓨터에서 사용 중인 SMB 버전을 확인하는 방법 SMBv1, SMBv2 및 SMBv3 방언을 활성화 또는 비활성화하는 방법.

내용:

  • Windows의 SMB 프로토콜 버전
  • Windows에서 SMB 버전을 확인하는 방법
  • Get-SMBConnection으로 사용된 SMB 방언 확인
  • 안전하지 않은 SMBv1 프로토콜 사용 중지
  • Windows에서 SMBv1, SMBv2 및 SMBv3를 활성화 및 비활성화하는 방법

Windows의 SMB 프로토콜 버전

새 Windows 버전(및 삼바)에 일관되게 나타난 여러 버전의 SMB 프로토콜(방언)이 있습니다.

  • CIFS – Windows NT 4.0
  • SMB 1.0 – Windows 2000
  • SMB 2.0 – Windows Server 2008 및 Windows Vista SP1(Samba 3.6에서 지원)
  • 중소기업 2.1 – Windows Server 2008 R2 및 Windows 7(Samba 4.0)
  • SMB 3.0 – Windows Server 2012 및 Windows 8(Samba 4.2)
  • SMB 3.02 – Windows Server 2012 R2 및 Windows 8.1(Samba에서는 지원되지 않음)
  • 중소기업 3.1.1 – Windows Server 2016 및 Windows 10(Samba에서는 지원되지 않음)
삼바 Linux/Unix에서 SMB 프로토콜을 구현하는 데 사용됩니다. Samba 4.14 이상은 기본적으로 SMB 2.1을 사용합니다.

SMB 네트워크 통신에서 클라이언트와 서버는 클라이언트와 서버 모두에서 지원하는 최대 SMB 프로토콜 버전을 사용합니다.

SMB 버전 호환성 요약표는 다음과 같습니다. 이 표를 사용하여 다양한 Windows 버전이 상호 작용할 때 선택되는 SMB 프로토콜의 버전을 확인할 수 있습니다.

운영 체제Windows 10, Win Server 2016Windows 8.1, Win Server 2012 R2Windows 8,Server 2012Windows 7,Server 2008 R2Windows Vista,Server 2008Windows XP, Server 2003 및 이전 버전Windows 10, Windows Server 2016SMB 3.1.1SMB 2.0SMB 3.0SMB 3.0 8.1, 서버 2012 R2SMB 3.02SMB 3.02SMB 3.0SMB 2.1SMB 2.0SMB 1.0Windows 8, Server 2012SMB 3.0SMB 3.0SMB 3.0SMB 2.1SMB .2SMB 3.0SMB 2.1SMB 2.0SMB 7 1.0SMB Vista, Server 2008SMB 2.0SMB 2.0SMB 2.0SMB 2.0SMB 2.0SMB 1.0Windows XP, 2003 및 이전 버전SMB 1.0SMB 1.0SMB 1.0SMB 1.0SMB 1.0SMB 1.0

예를 들어 Windows 8.1을 실행하는 클라이언트 컴퓨터가 Windows Server 2016이 있는 파일 서버에 연결하는 경우 SMB 3.0.2 프로토콜이 사용됩니다.

표에 따르면 Windows XP 및 Windows Server 2003은 SMB 1.0만 사용하여 공유 폴더 및 파일에 액세스할 수 있습니다. SMBv1은 최신 버전의 Windows Server(2012 R2/2016)에서 비활성화됩니다. 따라서 네트워크에서 Windows XP 및 Windows Server 2003 장치를 계속 사용하는 경우 Windows Server 2016을 실행하는 파일 서버의 공유 폴더에 액세스할 수 없습니다.

SMB v1.0이 비활성화된 Windows Server 2019/2016이 도메인 컨트롤러로 사용되는 경우 Windows XP/Server 2003 클라이언트는 도메인 컨트롤러의 SYSVOL 및 NETLOGON 폴더에 액세스하고 AD로 인증할 수 없습니다.

SMBv1이 비활성화된 파일 서버의 공유 폴더에 연결하려고 하면 다음 오류가 나타날 수 있습니다.

지정된 네트워크 이름은 더 이상 사용할 수 없습니다.

Windows에서 SMB 버전을 확인하는 방법

Windows 장치에서 활성화된 SMB 버전을 찾는 방법을 살펴보겠습니다.

Windows 10/8.1 및 Windows Server 2019/2016/2012R2에서 PowerShell을 사용하여 SMB 프로토콜의 다양한 방언 상태를 확인할 수 있습니다.

Get-SmbServerConfiguration | select EnableSMB1Protocol,EnableSMB2Protocol 선택

Windows에서 SMB 프로토콜 버전을 확인, 활성화 또는 비활성화하는 방법은 무엇입니까?

이 명령은 SMB1 프로토콜이 비활성화되었음을 반환했습니다(EnableSMB1Protocol = True ) 및 SMB2 및 SMB3 프로토콜이 활성화됩니다(EnableSMB1Protocol = False). ).

SMBv3 및 SMBv2 프로토콜은 밀접하게 관련되어 있습니다. SMBv3 또는 SMBv2를 별도로 비활성화하거나 활성화할 수 없습니다. 동일한 스택을 공유하기 때문에 항상 함께만 활성화/비활성화됩니다.

Windows 7, Vista 및 Windows Server 2008 R2/2008:

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

SMB1이라는 매개변수가 없는 경우 또는 SMB2 이 레지스트리 키에서 SMBv1 및 SMBv2 프로토콜이 기본적으로 활성화됩니다.

Windows에서 SMB 프로토콜 버전을 확인, 활성화 또는 비활성화하는 방법은 무엇입니까?

또한 이러한 Windows 버전에서는 원격 호스트에 연결할 수 있는 SMB 클라이언트 언어를 확인할 수 있습니다.

sc.exe query mrxsmb10

SERVICE_NAME:mrxsmb10TYPE:2 FILE_SYSTEM_DRIVERSTATE:4 실행 중(STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN)WIN32_EXIT_CODE:0 (0x0)SERVICE_EXIT_CODE:0 (0x0)CHINTx0WAINTx0 

sc.exe query mrxsmb20

SERVICE_NAME:mrxsmb20TYPE:2 FILE_SYSTEM_DRIVERSTATE:4 실행 중(STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN)WIN32_EXIT_CODE:0(0x0)SERVICE_EXIT_CODE:0(0x0)CHINTx0WAINTx0 

두 경우 모두 서비스가 실행 중입니다(STATE = 4 Running ). 이는 현재 Windows 장치가 SMBv1 및 SMBv2 호스트에 모두 연결할 수 있음을 의미합니다.

Get-SMBConnection을 사용하여 사용된 SMB 방언 확인

SMB를 통해 통신할 때 컴퓨터는 클라이언트와 서버 모두에서 지원하는 최대 SMB 버전을 사용합니다. Get-SMBConnection PowerShell cmdlet을 사용하여 원격 컴퓨터에 액세스하는 데 사용되는 SMB 버전을 확인할 수 있습니다.

Windows에서 SMB 프로토콜 버전을 확인, 활성화 또는 비활성화하는 방법은 무엇입니까?

원격 서버에 연결하는 데 사용되는 SMB 버전(ServerName )은 방언에 나열됩니다. 칼럼.

특정 서버에 액세스하는 데 사용되는 SMB 버전에 대한 정보를 표시할 수 있습니다.

Get-SmbConnection -ServerName srvfs01

SMB 암호화 사용 여부를 표시하려면(SMB 3.0에서 도입):

Get-SmbConnection | ft ServerName,ShareName,Dialect,Encrypted,UserName

Linux에서는 다음 명령을 사용하여 SMB 연결 및 삼바에서 사용된 방언 목록을 표시할 수 있습니다.

$ sudo smbstatus

Windows SMB 서버 측에서 클라이언트가 현재 사용 중인 SMB 프로토콜 버전 목록을 표시할 수 있습니다. 다음 명령을 실행하십시오.

Get-SmbSession | Select-Object -ExpandProperty Dialect | Sort-Object -Unique

Windows에서 SMB 프로토콜 버전을 확인, 활성화 또는 비활성화하는 방법은 무엇입니까?이 예에서는 SMB 2.1(Windows 7/Windows 2008 R2)을 사용하여 서버에 연결된 898개의 클라이언트가 있습니다. 및 8개의 SMB 3.02 클라이언트.

PowerShell을 사용하여 연결에 사용된 SMB 버전 감사를 활성화할 수 있습니다.

Set-SmbServerConfiguration –AuditSmb1Access $true

그런 다음 이벤트 뷰어 로그에서 SMB 연결 이벤트를 내보낼 수 있습니다.

Get-WinEvent -LogName Microsoft-Windows-SMBServer/Audit

안전하지 않은 SMBv1 프로토콜 사용 중지

지난 몇 년 동안 Microsoft는 보안상의 이유로 모든 제품에서 레거시 SMB 1.0 프로토콜을 체계적으로 비활성화했습니다. 이는 이 프로토콜의 다수의 치명적인 취약점 때문입니다(SMBv1 프로토콜의 취약점을 악용한 Wannacrypt 및 Petya 랜섬웨어 사건을 기억하십시오). Microsoft 및 기타 IT 회사는 네트워크에서 SMBv1 사용을 중단할 것을 강력히 권장합니다.

그러나 SMBv1을 비활성화하면 레거시 클라이언트(Windows XP, Windows Server 2003), 타사 OS(Mac OSX 10.8 Mountain Lion, Snow)에서 최신 버전의 Windows 10(Windows Server 2016/2019)에서 공유 파일 및 폴더에 액세스하는 데 문제가 발생할 수 있습니다. Leopard, Mavericks, 구형 Linux 배포판), 구형 NAS 장치.

네트워크에 SMBv1만 지원하는 레거시 장치가 남아 있지 않으면 Windows에서 이 SMB 언어를 비활성화해야 합니다.

Windows XP, Windows Server 2003 또는 SMBv1만 지원하는 기타 장치를 실행하는 클라이언트가 있는 경우 업데이트하거나 격리해야 합니다.

Windows에서 SMBv1, SMBv2 및 SMBv3를 활성화 및 비활성화하는 방법

Windows에서 다양한 SMB 버전을 활성화 및 비활성화하는 방법을 살펴보겠습니다. SMB 클라이언트 및 서버 관리(다른 Windows 구성 요소임)에 대해 다룰 것입니다.

Windows 10, 8.1 및 Windows Server 2019/2016/2012R2 :

SMBv1 클라이언트 및 서버 비활성화:

Disable-WindowsOptionalFeature -Online -FeatureName smb1protocol

SMBv1 서버만 비활성화:

Set-SmbServerConfiguration -EnableSMB1Protocol $false

SMBv1 클라이언트 및 서버 활성화:

Enable-WindowsOptionalFeature -Online -FeatureName smb1protocol

SMBv1 서버만 활성화:

Set-SmbServerConfiguration -EnableSMB1Protocol $true

Windows 10 및 Windows Server 2016/2019의 SMBv1 프로토콜에 대해 자세히 알아보세요.

SMBv2 및 SMBv3 서버 비활성화:

Set-SmbServerConfiguration -EnableSMB2Protocol $false

SMBv2 및 SMBv3 서버 활성화:

Set-SmbServerConfiguration -EnableSMB2Protocol $true

Windows에서 SMB 프로토콜 버전을 확인, 활성화 또는 비활성화하는 방법은 무엇입니까?

Windows 7, Vista 및 Windows Server 2008 R2/2008 :

SMBv1 서버 비활성화:

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

Windows에서 SMB 프로토콜 버전을 확인, 활성화 또는 비활성화하는 방법은 무엇입니까?

SMBv1 서버 활성화:

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

SMBv1 클라이언트 비활성화:

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

SMBv1 클라이언트 활성화:

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

SMBv2 서버 비활성화:

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

SMBv2 서버 활성화:

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

SMBv2 클라이언트 비활성화:

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

SMBv2 클라이언트 활성화:

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

GPO를 통해 다음 레지스트리 매개변수를 배포하여 도메인에 가입된 컴퓨터에서 SMBv1 서버를 비활성화할 수 있습니다.

  • 키:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
  • 이름:SMB1
  • 유형:REG_DWORD
  • 값:0

레지스트리 매개변수 설정 SMB2=0 SMBv2 서버를 비활성화하기 위해.

SMBv1 클라이언트를 비활성화하려면 다음 레지스트리 설정을 전파해야 합니다.

  • 키:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\mrxsmb10
  • 이름:시작
  • 유형:REG_DWORD
  • 값:4
Windows에서 SMB 1.0/CIFS 파일 공유 지원을 비활성화하면 0x80070035 네트워크 경로를 찾을 수 없다는 오류가 발생하고 공유 SMB 폴더에 액세스할 때 오류가 발생하며 네트워크 검색 문제가 발생할 수 있습니다. 이 경우 컴퓨터 브라우저 서비스(링크) 대신 디스커버리 서비스를 이용하셔야 합니다.