จะปิด/เปิดใช้งาน SMB v 1.0 ใน Windows 10/Server 2016 ได้อย่างไร
ใน Windows Server 2016/2019 และ Windows 10 (เริ่มต้นด้วยรุ่น 1709) โปรโตคอลเครือข่าย Server Message Block 1.0 (SMBv1) ที่ใช้เพื่อเข้าถึงโฟลเดอร์ที่ใช้ร่วมกันจะถูกปิดใช้งานตามค่าเริ่มต้น ในกรณีส่วนใหญ่ โปรโตคอลนี้จำเป็นสำหรับการเข้าถึงโฟลเดอร์ที่ใช้ร่วมกันซึ่งโฮสต์บนระบบเดิม เช่น ไม่รองรับ Windows XP, Windows Server 2003 และระบบปฏิบัติการรุ่นเก่าอีกต่อไป ในบทความนี้ เราจะดูวิธีเปิดใช้งานหรือปิดใช้งานการสนับสนุนไคลเอนต์และเซิร์ฟเวอร์ SMBv1 บน Windows 10 และ Windows Server 2016/2019
หากไม่มีไคลเอ็นต์ SMB 1.x เหลืออยู่ในเครือข่ายของคุณ คุณต้องปิดใช้งาน SMBv1 บนอุปกรณ์ Windows ทั้งหมดโดยสมบูรณ์ เมื่อปิดใช้งาน SMB 1.0 คุณจะสามารถปกป้องคอมพิวเตอร์ Windows จากช่องโหว่ต่างๆ ในโปรโตคอลรุ่นเก่านี้ (การใช้ประโยชน์สาธารณะที่มีชื่อเสียงที่สุดสำหรับ SMBv1 คือ EternalBlue) ดังนั้น อุปกรณ์ของคุณจะใช้โปรโตคอล SMB เวอร์ชันใหม่ มีประสิทธิภาพ ปลอดภัย และใช้งานได้มากกว่า เมื่อเข้าถึงเครือข่ายที่ใช้ร่วมกัน
ในบทความก่อนหน้านี้ เราได้แสดงตารางความเข้ากันได้ของเวอร์ชัน SMB ฝั่งไคลเอ็นต์และเซิร์ฟเวอร์ ตามตาราง ไคลเอ็นต์เวอร์ชันเก่า (XP, Server 2003 และไคลเอ็นต์ *nix บางตัว) สามารถเข้าถึงโฟลเดอร์ที่ใช้ร่วมกันบนเครือข่ายได้โดยใช้โปรโตคอล SMB v1.0 เท่านั้น หากไม่มีไคลเอนต์ดังกล่าวในเครือข่าย คุณสามารถปิดใช้งาน SMB 1.0 ที่ด้านข้างของเซิร์ฟเวอร์ไฟล์ (รวมถึงตัวควบคุมโดเมน AD) และเดสก์ท็อปไคลเอนต์ได้อย่างสมบูรณ์
ใน Windows 10 และ Windows Server 2016 โปรโตคอล SMBv1 จะแบ่งออกเป็นสองส่วนแยกกัน ได้แก่ ไคลเอ็นต์ SMB และ เซิร์ฟเวอร์ SMB ซึ่งสามารถเปิด/ปิดใช้งานแยกกันได้
ตรวจสอบการเข้าถึงโฟลเดอร์ที่ใช้ร่วมกันผ่าน SMB v1.0
ก่อนที่จะปิดใช้งานหรือลบไดรเวอร์ SMB 1.0 ที่ด้านข้างของเซิร์ฟเวอร์ไฟล์ SMB ออกทั้งหมด คุณควรตรวจสอบให้แน่ใจว่าไม่มีไคลเอนต์รุ่นเก่าที่ใช้งานในเครือข่ายของคุณ ในการทำเช่นนี้ ให้เปิดใช้งานการตรวจสอบการเข้าถึงไฟล์เซิร์ฟเวอร์ผ่าน SMB v1.0 โดยใช้คำสั่ง PowerShell ต่อไปนี้:
Set-SmbServerConfiguration -AuditSmb1Access $true
หลังจากผ่านไปสองสามวัน ให้เปิด Event Viewer บนเซิร์ฟเวอร์ ตรวจสอบบันทึก Applications and Services -> Microsoft -> Windows -> SMBServer -> Audit และดูว่า ไคลเอนต์ใดๆ ที่เข้าถึงไฟล์เซิร์ฟเวอร์ผ่าน SMB1
เคล็ดลับ คุณสามารถแสดงรายการเหตุการณ์จากบันทึกเหตุการณ์นี้โดยใช้คำสั่ง PowerShell ต่อไปนี้:
Get-WinEvent -LogName Microsoft-Windows-SMBServer/Auditในตัวอย่างของเรา พบเหตุการณ์ที่มี EventID 3000 จากแหล่งที่มา SMBServer ในบันทึก เหตุการณ์ระบุว่าไคลเอ็นต์ 192.168.1.10 พยายามเข้าถึงเซิร์ฟเวอร์โดยใช้โปรโตคอล SMB1
SMB1 access
Client Address: 192.168.1.10
Guidance:
This event indicates that a client attempted to access the server using SMB1. To stop auditing SMB1 access, use the Windows PowerShell cmdlet Set-SmbServerConfiguration.คุณต้องค้นหาคอมพิวเตอร์หรืออุปกรณ์นี้บนเครือข่ายและอัปเดตระบบปฏิบัติการหรือเฟิร์มแวร์เป็นเวอร์ชันที่รองรับโปรโตคอล SMB เวอร์ชันใหม่กว่า: SMBv2 หรือ SMBv3
ในกรณีของเรา เราจะเพิกเฉยต่อข้อมูลนี้ แต่คุณควรจำไว้ว่าในภายหลังไคลเอนต์นี้จะไม่สามารถเข้าถึงโฟลเดอร์ที่ใช้ร่วมกันบนเซิร์ฟเวอร์ SMB นี้
เปิด/ปิด SMB 1.0 บน Windows Server 2016/2019
ใน Windows Server 2016 ที่เริ่มต้นด้วยรุ่น 1709 และ Windows Server 2019 SMBv1 จะถูกปิดใช้งานตามค่าเริ่มต้น หากต้องการเปิดใช้งานการสนับสนุนโปรโตคอลไคลเอ็นต์ SMBv1 ใน Windows Server เวอร์ชันใหม่ คุณต้องติดตั้งคุณลักษณะ การสนับสนุนการแชร์ไฟล์ SMB 1.0/CIFS แยกต่างหาก
คุณสามารถติดตั้งคุณสมบัติ SMBv1 โดยใช้ Server Manager หรือผ่าน PowerShell
คุณสามารถตรวจสอบว่าเปิดใช้งาน SMBv1 ด้วยคำสั่ง PowerShell:
Get-WindowsFeature | Where-Object {$_.name -eq "FS-SMB1"} | ft Name,Installstate
หากต้องการติดตั้งคุณลักษณะ FS-SMB1 ให้เรียกใช้:
Install-WindowsFeature FS-SMB1หากต้องการถอนการติดตั้งฟีเจอร์ไคลเอ็นต์ SMBv1 (ต้องรีบูต) ให้รันคำสั่ง:
Uninstall-WindowsFeature -Name FS-SMB1 -Removeคำสั่ง PowerShell อื่นที่ลบคุณลักษณะ SMB1Protocol ด้วย:
Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol -Removeเพื่อให้เซิร์ฟเวอร์ของคุณจัดการกับการเข้าถึงไคลเอนต์ SMBv1.0 คุณต้องเปิดใช้งานการสนับสนุน SMBv1 ที่ระดับเซิร์ฟเวอร์ไฟล์ SMB นอกเหนือจากคอมโพเนนต์ FS-SMB1 ในการตรวจสอบว่าเปิดใช้งานการเข้าถึง SMBv1 สำหรับเครือข่ายที่ใช้ร่วมกันบนเซิร์ฟเวอร์ของคุณหรือไม่ ให้รัน:
Get-SmbServerConfigurationเส้น "
EnableSMB1Protocol: True” หมายความว่าคุณได้รับอนุญาตให้เข้าถึงโฟลเดอร์ที่ใช้ร่วมกันบนเซิร์ฟเวอร์นี้โดยใช้โปรโตคอล SMBv1 หากต้องการปิดใช้งานการสนับสนุนเซิร์ฟเวอร์ SMBv1 ใน Windows Server ให้รันคำสั่ง PowerShell:
Set-SmbServerConfiguration -EnableSMB1Protocol $false -Forceตอนนี้ใช้
Get-SmbServerConfigurationcmdlet เพื่อให้แน่ใจว่าเซิร์ฟเวอร์ SMB1 ถูกปิดใช้งาน
หากต้องการเปิดใช้งานการสนับสนุน SMBv1 บนเซิร์ฟเวอร์ ให้รันคำสั่ง:
Set-SmbServerConfiguration -EnableSMB1Protocol $True -Forceบน Windows 7/8 และ Windows Server 2008 R2/2012 หากต้องการปิดใช้งานไคลเอนต์ SMB 1.0 คุณต้องปิดใช้งานบริการและไดรเวอร์การเข้าถึง SMBv1 ด้วยคำสั่ง:
sc.exe config lanmanworkstation depend= bowser/mrxsmb20/nsi
sc.exe config mrxsmb10 start= disabledวิธีเปิด/ปิด SMBv1 บน Windows 10
ดังที่เราได้กล่าวไปแล้วว่าใน Windows10 รุ่นใหม่ทั้งหมด (เริ่มต้นตั้งแต่ปี 1709) การสนับสนุนโปรโตคอล SMB1 ถูกปิดใช้งาน (การเข้าถึงของแขกผ่านโปรโตคอล SMBv2 ก็ถูกปิดใช้งานเช่นกัน)
ใน Windows 10 คุณสามารถตรวจสอบสถานะของส่วนประกอบโปรโตคอล SMBv1 ด้วยคำสั่ง DISM:
Dism /online /Get-Features /format:table | find "SMB1Protocol"ในตัวอย่างของเรา คุณจะเห็นว่าคุณลักษณะ SMBv1 ทั้งหมดถูกปิดใช้งาน:
SMB1Protocol | Disabled
SMB1Protocol-Client | Disabled
SMB1Protocol-Server | Disabled
SMB1Protocol-Deprecation | Disabledใน Windows 10 คุณยังสามารถจัดการคุณสมบัติ SMB 1 จากแผงควบคุม (
optionalfeatures.exe). ขยายตัวเลือก SMB 1.0 /CIFS File Sharing Support อย่างที่คุณเห็น ส่วนประกอบ SMBv1 3 รายการมีให้ที่นี่ด้วย:
SMB 1.0/CIFS การลบอัตโนมัติ
ไคลเอ็นต์ SMB 1.0/CIFS
เซิร์ฟเวอร์ SMB 1.0/CIFS
คุณสามารถเปิดใช้งานไคลเอนต์และเซิร์ฟเวอร์ SMBv1 บน Windows 10 ได้จากหน้าต่างการจัดการคุณสมบัติหรือใช้คำสั่ง:
Dism /online /Enable-Feature /FeatureName:"SMB1Protocol"
Dism /online /Enable-Feature /FeatureName:"SMB1Protocol-Client"
Dism /online /Enable-Feature /FeatureName:"SMB1Protocol-Server"คุณยังสามารถเปิดใช้งานเซิร์ฟเวอร์และไคลเอนต์ SMBv1 ใน Windows 10 โดยใช้ PowerShell:
Enable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol-Server
Enable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol-Clientหากหลังจากเปิดใช้งานไคลเอ็นต์ SMBv1 แล้วไม่มีการใช้งานนานกว่า 15 วัน ไคลเอ็นต์จะถูกปิดใช้งานโดยอัตโนมัติ
การลบไคลเอนต์ SMBv1 โดยอัตโนมัติเป็นการดำเนินการเพียงครั้งเดียว หากผู้ดูแลระบบเปิดใช้งาน SMBv1 อีกครั้ง ระบบจะไม่ปิดใช้งานโดยอัตโนมัติ
หากต้องการปิดใช้งานการสนับสนุนไคลเอ็นต์และเซิร์ฟเวอร์ SMB1 ใน Windows 10 ให้รันคำสั่ง DISM ต่อไปนี้:
Dism /online /Disable-Feature /FeatureName:"SMB1Protocol"
Dism /online /Disable-Feature /FeatureName:"SMB1Protocol-Client"
Dism /online /Disable-Feature /FeatureName:"SMB1Protocol-Server"หากคุณปิดใช้งานไคลเอนต์ SMBv1 ใน Windows 10 เมื่อคุณเข้าถึงโฟลเดอร์ที่ถูกดักจับบนเซิร์ฟเวอร์ไฟล์ที่รองรับเฉพาะ SMBv1 (โปรโตคอล SMBv2 และ v3 ถูกปิดใช้งานหรือไม่รองรับ) คุณอาจได้รับข้อผิดพลาดต่อไปนี้:
0x80070035 The network path was not found;Unable to connect to file shares because it is not secure. This share requires the obsolete SMB1 protocol, which is not secure and could expose your system to attacks;You can’t connect to the file share because it’s not secure. This share requires the obsolete SMB1 protocol, which is unsafe and could expose your system to attack. Your system requires SMB2 or higher.อ่านเพิ่มเติมเกี่ยวกับเรื่องนี้ได้ในบทความ ไม่สามารถเข้าถึงโฟลเดอร์ที่ใช้ร่วมกันบน Windows 10
นอกจากนี้ หากคุณปิดใช้งานไคลเอนต์ SMBv1 บริการ เบราว์เซอร์คอมพิวเตอร์ ซึ่งใช้โดยโปรโตคอล NetBIOS เดิมเพื่อค้นหาอุปกรณ์ในเครือข่าย จะหยุดทำงานบนคอมพิวเตอร์ หากต้องการแสดงคอมพิวเตอร์ข้างเคียงบนเครือข่าย Windows 10 อย่างถูกต้อง คุณต้องกำหนดค่าบริการ Feature Discovery Provider Host (ตรวจสอบบทความนี้)
ปิดใช้งานไคลเอนต์และเซิร์ฟเวอร์ SMBv1 ผ่านนโยบายกลุ่ม
ในสภาพแวดล้อมโดเมน Active Directory คุณสามารถปิดใช้งาน SMBv1 บนเซิร์ฟเวอร์และคอมพิวเตอร์ทั้งหมดโดยใช้ Group Policies (GPO) เนื่องจากไม่มีนโยบายการกำหนดค่า SMB แยกต่างหากใน Windows Group Policies มาตรฐาน คุณจะต้องปิดการใช้งานผ่านนโยบายรีจิสทรี
เปิดคอนโซลการจัดการนโยบายกลุ่ม (
gpmc.msc) สร้าง GPO ใหม่ (disableSMBv1) และเชื่อมโยงกับ OU ที่มีคอมพิวเตอร์ที่คุณต้องการปิดใช้งาน SMB1
เปลี่ยนเป็นโหมดแก้ไขนโยบาย ขยายส่วน GPO การกำหนดค่าคอมพิวเตอร์ -> ค่ากำหนด -> การตั้งค่า Windows -> รีจิสทรี;
สร้างรายการรีจิสทรีใหม่ด้วยการตั้งค่าต่อไปนี้:
การกระทำ:Updateรัง:
HKEY_LOCAL_MACHINEเส้นทางสำคัญ:
SYSTEM\CurrentControlSet\Services\LanmanServer\Parametersชื่อค่า:
SMB1ประเภทค่า:
REG_DWORDข้อมูลมูลค่า:
0นโยบายนี้จะปิดใช้งานการสนับสนุนคอมโพเนนต์เซิร์ฟเวอร์ SMBv1 ผ่านรีจิสทรีในคอมพิวเตอร์ทุกเครื่อง
คุณสามารถแยก Windows บางเวอร์ชันออกจากนโยบายนี้ได้โดยใช้ตัวกรอง WMI
หากคุณต้องการปิดใช้งานไคลเอนต์ SMB บนคอมพิวเตอร์โดเมนผ่าน GPO ให้สร้างพารามิเตอร์รีจิสทรีเพิ่มเติมสองรายการ:
พารามิเตอร์ Start (ประเภท REG_DWORD) ที่มีค่า 4 ในคีย์รีจิสทรี HKLM\SYSTEM\CurrentControlSet\services\mrxsmb10
พารามิเตอร์ DependOnService (ประเภท REG_MULTI_SZ) ที่มีค่า Bowser, MRxSmb20, NSI (แต่ละค่าในบรรทัดใหม่ ) ในคีย์ reg HKLM\SYSTEM\CurrentControlSet\Services\LanmanWorkstation
ยังคงต้องอัปเดตการตั้งค่า Group Policy บนไคลเอนต์ (
gpupdate /force) หลังจากรีบูต ตรวจสอบให้แน่ใจว่าคอมโพเนนต์ SMBv1 ถูกปิดใช้งานโดยสมบูรณ์










