ใน Windows Server 2016/2019 และ Windows 10 (เริ่มต้นด้วยรุ่น 1709) โปรโตคอลเครือข่าย Server Message Block 1.0 (SMBv1) ที่ใช้ในการเข้าถึงโฟลเดอร์ที่ใช้ร่วมกันจะถูกปิดใช้งานตามค่าเริ่มต้น ในกรณีส่วนใหญ่ ต้องใช้โปรโตคอลนี้เพื่อเข้าถึงโฟลเดอร์ที่ใช้ร่วมกันซึ่งโฮสต์บนระบบเดิม เช่น ไม่รองรับ Windows XP, Windows Server 2003 และ OS ที่เก่ากว่าอีกต่อไป ในบทความนี้ เราจะมาดูวิธีเปิดใช้งานหรือปิดใช้งานการสนับสนุนไคลเอ็นต์ 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 บน Windows Server 2016/2019
- วิธีการเปิด/ปิดการใช้งาน SMBv1 บน Windows 10
- การปิดใช้งานไคลเอ็นต์ SMBv1 และเซิร์ฟเวอร์ผ่านนโยบายกลุ่ม
การตรวจสอบการเข้าถึงโฟลเดอร์ที่แชร์ผ่าน SMB v1.0
ก่อนปิดใช้งานหรือลบไดรเวอร์ SMB 1.0 ที่ด้านข้างของไฟล์เซิร์ฟเวอร์ SMB โดยสมบูรณ์ คุณควรตรวจสอบให้แน่ใจว่าไม่มีไคลเอ็นต์ดั้งเดิมที่ใช้ในเครือข่ายของคุณ เมื่อต้องการทำเช่นนี้ ให้เปิดใช้งานการตรวจสอบการเข้าถึงไฟล์เซิร์ฟเวอร์ผ่าน SMB v1.0 โดยใช้คำสั่ง PowerShell ต่อไปนี้:
Set-SmbServerConfiguration –AuditSmb1Access $true
หลังจากผ่านไปสองสามวัน ให้เปิด Event Viewer บนเซิร์ฟเวอร์ ตรวจสอบบันทึก แอปพลิเคชันและบริการ -> Microsoft -> Windows -> SMBServer -> Audi ท และดูว่าไคลเอ็นต์ใดเข้าถึงไฟล์เซิร์ฟเวอร์ผ่าน 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 ได้โดยใช้ตัวจัดการเซิร์ฟเวอร์ หรือผ่าน 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
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-SmbServerConfiguration
cmdlet เพื่อให้แน่ใจว่าเซิร์ฟเวอร์ SMB1 ถูกปิดใช้งาน
หากต้องการเปิดใช้งานการสนับสนุน SMBv1 บนเซิร์ฟเวอร์ ให้เรียกใช้คำสั่ง:
Set-SmbServerConfiguration -EnableSMB1Protocol $True -Force
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 ตัวเลือก. อย่างที่คุณเห็น ส่วนประกอบ 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"
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 บนเซิร์ฟเวอร์และคอมพิวเตอร์ทั้งหมดโดยใช้นโยบายกลุ่ม (GPO) เนื่องจากไม่มีนโยบายการกำหนดค่า SMB แยกต่างหากในนโยบายกลุ่มของ Windows มาตรฐาน คุณจะต้องปิดการใช้งานผ่านนโยบายรีจิสทรี
- เปิดคอนโซลการจัดการนโยบายกลุ่ม (
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 ให้สร้างพารามิเตอร์รีจิสทรีเพิ่มเติมสองรายการ:
- การเริ่มต้น พารามิเตอร์ (ประเภท REG_DWORD) ที่มีค่า 4 ในรีจิสตรีคีย์ HKLM\SYSTEM\CurrentControlSet\services\mrxsmb10;
- DependOnService พารามิเตอร์ (ประเภท REG_MULTI_SZ) ที่มีค่า Bowser , MRxSmb20 , สวทช. (แต่ละค่าในบรรทัดใหม่) ในคีย์ reg HKLM\SYSTEM\CurrentControlSet\Services\LanmanWorkstation
ยังคงต้องอัปเดตการตั้งค่านโยบายกลุ่มบนไคลเอนต์ (gpupdate /force
) หลังจากรีบูต ตรวจสอบให้แน่ใจว่าคอมโพเนนต์ SMBv1 ถูกปิดใช้งานอย่างสมบูรณ์
SecGuide.adml
และ SecGuide.admx
) ที่มีตัวเลือกแยกต่างหากสำหรับการปิดใช้งานเซิร์ฟเวอร์ SMB และไคลเอนต์: - กำหนดค่าเซิร์ฟเวอร์ SMB v1;
- กำหนดค่าไดรเวอร์ไคลเอ็นต์ SMB v1