सर्वर संदेश ब्लॉक (SMB) नेटवर्क प्रोटोकॉल का उपयोग नेटवर्क पर फ़ोल्डर, फाइल, प्रिंटर और अन्य उपकरणों को साझा करने और एक्सेस करने के लिए किया जाता है (टीसीपी पोर्ट 445)। इस लेख में, हम देखेंगे कि विंडोज के विभिन्न संस्करणों में एसएमबी के कौन से संस्करण (बोलियां) उपलब्ध हैं (और वे सांबा से कैसे संबंधित हैं) लिनक्स पर संस्करण); अपने कंप्यूटर पर उपयोग में आने वाले SMB संस्करण की जांच कैसे करें; और SMBv1, SMBv2, और SMBv3 बोलियों को कैसे सक्षम या अक्षम करें।
सामग्री:
- विंडोज़ में एसएमबी प्रोटोकॉल संस्करण
- विंडोज़ पर एसएमबी संस्करण की जांच कैसे करें?
- गेट-एसएमबीकनेक्शन के साथ उपयोग की गई एसएमबी बोलियों की जांच करना
- असुरक्षित SMBv1 प्रोटोकॉल का उपयोग करना बंद करें
- विंडोज़ पर SMBv1, SMBv2, और SMBv3 को कैसे सक्षम और अक्षम करें?
Windows में SMB प्रोटोकॉल संस्करण
SMB प्रोटोकॉल (बोलियों) के कई संस्करण हैं जो लगातार नए विंडोज संस्करणों (और सांबा) में दिखाई देते हैं:
- सीआईएफएस - विंडोज एनटी 4.0
- एसएमबी 1.0 - विंडोज 2000
- एसएमबी 2.0 - विंडोज सर्वर 2008 और विंडोज विस्टा SP1 (सांबा 3.6 में समर्थित)
- एसएमबी 2.1 - विंडोज सर्वर 2008 R2 और विंडोज 7 (सांबा 4.0)
- एसएमबी 3.0 - विंडोज सर्वर 2012 और विंडोज 8 (सांबा 4.2)
- एसएमबी 3.02 - विंडोज सर्वर 2012 R2 और विंडोज 8.1 (सांबा में समर्थित नहीं)
- एसएमबी 3.1.1 - विंडोज सर्वर 2016 और विंडोज 10 (सांबा में समर्थित नहीं)
SMB नेटवर्क संचार में, क्लाइंट और सर्वर क्लाइंट और सर्वर दोनों द्वारा समर्थित अधिकतम SMB प्रोटोकॉल संस्करण का उपयोग करते हैं।
SMB संस्करण संगतता की सारांश तालिका इस तरह दिखती है। इस तालिका का उपयोग करके, आप SMB प्रोटोकॉल के उस संस्करण का निर्धारण कर सकते हैं जिसे Windows के विभिन्न संस्करणों के परस्पर क्रिया करने पर चुना जाता है:
ऑपरेटिंग सिस्टमविंडोज 10, विन सर्वर 2016विंडोज 8.1, विन सर्वर 2012 आर2विंडोज 8,सर्वर 2012विंडोज 7,सर्वर 2008 आर2विंडोज विस्टा,सर्वर 2008विंडोज एक्सपी, सर्वर 2003 और इससे पहलेविंडोज 10, विंडोज सर्वर 2016एसएमबी 3.1.1SMB 3.02SMB 3.0SMB 2.1SMB 2.0SMB 1.0विंडोज 8.1, सर्वर 2012 R2SMB 3.02SMB 3.02SMB 3.0SMB 2.1SMB 2.0SMB 1.0Windows 8, सर्वर 2012SMB 3.0SMB 3.0SMB 3.0SMB 2.1SMB 2.0SMB 1.0Windows 7, सर्वर 2008 R2SMB 2.1SMB 2.1SMB 2.1SMB 2.1SMB 2.0SMB 1.0Windows विस्टा, सर्वर 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उदाहरण के लिए, यदि विंडोज 8.1 चलाने वाला क्लाइंट कंप्यूटर विंडोज सर्वर 2016 के साथ फाइल सर्वर से जुड़ता है, तो एसएमबी 3.0.2 प्रोटोकॉल का उपयोग किया जाएगा।
तालिका के अनुसार, Windows XP और Windows Server 2003 साझा किए गए फ़ोल्डरों और फ़ाइलों तक पहुँचने के लिए केवल SMB 1.0 का उपयोग कर सकते हैं। SMBv1 Windows सर्वर (2012 R2/2016) के नए संस्करणों में अक्षम है। इसलिए, यदि आप अभी भी अपने नेटवर्क पर Windows XP और Windows Server 2003 उपकरणों का उपयोग कर रहे हैं, तो वे Windows Server 2016 चलाने वाले फ़ाइल सर्वर पर साझा किए गए फ़ोल्डर तक नहीं पहुंच पाएंगे।
यदि Windows Server 2019/2016 अक्षम SMB v1.0 के साथ एक डोमेन नियंत्रक के रूप में उपयोग किया जाता है, तो Windows XP/Server 2003 क्लाइंट डोमेन नियंत्रकों पर SYSVOL और NETLOGON फ़ोल्डरों तक पहुँचने और AD के साथ प्रमाणित करने में सक्षम नहीं होंगे।
SMBv1 अक्षम के साथ फ़ाइल सर्वर पर किसी साझा फ़ोल्डर से कनेक्ट करने का प्रयास करते समय आपको निम्न त्रुटि प्राप्त हो सकती है:
निर्दिष्ट नेटवर्क नाम अब उपलब्ध नहीं है
Windows पर SMB संस्करण कैसे जांचें?
आइए देखें कि कैसे पता करें कि आपके विंडोज डिवाइस पर एसएमबी के कौन से संस्करण सक्षम हैं।
Windows 10/8.1 और Windows Server 2019/2016/2012R2 पर, आप PowerShell का उपयोग करके SMB प्रोटोकॉल की विभिन्न बोलियों की स्थिति की जांच कर सकते हैं:
प्राप्त करें-SmbServerConfiguration | EnableSMB1Protocol,EnableSMB2Protocol
. का चयन करें
यह आदेश लौटा कि SMB1 प्रोटोकॉल अक्षम है (EnableSMB1Protocol =True
), और SMB2 और SMB3 प्रोटोकॉल सक्षम हैं (EnableSMB1Protocol =False
)।
विंडोज 7, विस्टा और विंडोज सर्वर 2008 R2/2008 पर:
प्राप्त-आइटम HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters | ForEach-Object {Get-ItemProperty $_.pspath}
अगर SMB1
. नाम का कोई पैरामीटर नहीं है या एसएमबी2
इस रजिस्ट्री कुंजी में, तब SMBv1 और SMBv2 प्रोटोकॉल डिफ़ॉल्ट रूप से सक्षम होते हैं।
विंडोज के इन संस्करणों पर भी, आप जांच सकते हैं कि कौन सी SMB क्लाइंट बोलियों को दूरस्थ होस्ट से कनेक्ट करने की अनुमति है:
sc.exe क्वेरी mrxsmb10
SERVICE_NAME:mrxsmb10TYPE:2 FILE_SYSTEM_DRIVERSTATE:4 रनिंग (STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN)WIN32_EXIT_CODE:0 (0x0) SERVICE_EXIT_CODE:0x0sc.exe क्वेरी mrxsmb20
SERVICE_NAME:mrxsmb20TYPE:2 FILE_SYSTEM_DRIVERSTATE:4 रनिंग (STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN)WIN32_EXIT_CODE :0 (0x0) SERVICE_EXIT_CODE :0x0 दोनों ही मामलों में, सेवाएं चल रही हैं (STATE =4 रनिंग
) इसका मतलब है कि वर्तमान विंडोज डिवाइस SMBv1 और SMBv2 होस्ट दोनों से कनेक्ट हो सकता है।गेट-एसएमबीकनेक्शन के साथ प्रयुक्त एसएमबी बोलियों की जांच करना
SMB पर संचार करते समय, कंप्यूटर क्लाइंट और सर्वर दोनों द्वारा समर्थित अधिकतम SMB संस्करण का उपयोग करते हैं।
प्राप्त करें-SMBConnection
दूरस्थ कंप्यूटर तक पहुँचने के लिए उपयोग किए गए SMB संस्करण की जाँच करने के लिए PowerShell cmdlet का उपयोग किया जा सकता है:
दूरस्थ सर्वर से कनेक्ट करने के लिए उपयोग किया जाने वाला SMB संस्करण (ServerName ) बोली . में सूचीबद्ध है कॉलम।
आप किसी विशिष्ट सर्वर तक पहुँचने के लिए उपयोग किए जाने वाले SMB संस्करणों के बारे में जानकारी प्रदर्शित कर सकते हैं:
प्राप्त करें-SmbConnection -ServerName srvfs01
यदि आप प्रदर्शित करना चाहते हैं कि क्या एसएमबी एन्क्रिप्शन उपयोग में है (एसएमबी 3.0 में पेश किया गया):
Linux पर, आप कमांड का उपयोग करके SMB कनेक्शन और प्रयुक्त बोलियों की सूची सांबा में प्रदर्शित कर सकते हैं:
गेट-एसएमबीकनेक्शन | ft ServerName, ShareName, बोली, एन्क्रिप्टेड, उपयोगकर्ता नाम
$ sudo smbstatus
विंडोज एसएमबी सर्वर साइड पर, आप एसएमबी प्रोटोकॉल के संस्करणों की एक सूची प्रदर्शित कर सकते हैं जो क्लाइंट वर्तमान में उपयोग कर रहे हैं। कमांड चलाएँ:
प्राप्त करें-SmbSession | Select-Object -ExpandProperty बोली | सॉर्ट-ऑब्जेक्ट-अद्वितीय
इस उदाहरण में, SMB 2.1 (Windows 7/Windows 2008 R2) का उपयोग कर सर्वर से जुड़े 898 क्लाइंट हैं। और 8 एसएमबी 3.02 क्लाइंट।
कनेक्शन के लिए उपयोग किए गए SMB संस्करणों की ऑडिटिंग सक्षम करने के लिए आप PowerShell का उपयोग कर सकते हैं:
सेट-SmbServerConfiguration-AuditSmb1Access $true
एसएमबी कनेक्शन इवेंट तब इवेंट व्यूअर लॉग से निर्यात किए जा सकते हैं:
गेट-विनइवेंट-लॉगनाम माइक्रोसॉफ्ट-विंडोज-एसएमबीसर्वर/ऑडिट
असुरक्षित SMBv1 प्रोटोकॉल का उपयोग करना बंद करें
पिछले कुछ वर्षों में, Microsoft ने सुरक्षा कारणों से सभी उत्पादों में लीगेसी SMB 1.0 प्रोटोकॉल को व्यवस्थित रूप से अक्षम कर दिया है। यह इस प्रोटोकॉल में बड़ी संख्या में महत्वपूर्ण कमजोरियों के कारण है (वानाक्रिप्ट और पेट्या रैंसमवेयर के साथ घटनाओं को याद रखें, जिसने SMBv1 प्रोटोकॉल में भेद्यता का शोषण किया)। Microsoft और अन्य IT कंपनियाँ दृढ़ता से अनुशंसा करती हैं कि आप अपने नेटवर्क में SMBv1 का उपयोग बंद कर दें।
हालाँकि, SMBv1 को अक्षम करने से पुराने क्लाइंट (Windows XP, Windows Server 2003), तृतीय-पक्ष OS (Mac OSX 10.8 माउंटेन लायन, स्नो) से Windows 10 (Windows Server 2016/2019) के नए संस्करणों पर साझा की गई फ़ाइलों और फ़ोल्डरों तक पहुँचने में समस्या हो सकती है। तेंदुआ, मावेरिक्स, पुराने लिनक्स डिस्ट्रोस), पुराने NAS डिवाइस।
अगर आपके नेटवर्क पर कोई लीगेसी डिवाइस नहीं बचा है जो केवल SMBv1 का समर्थन करता है, तो Windows में इस SMB बोली को अक्षम करना सुनिश्चित करें।
यदि आपके पास Windows XP, Windows Server 2003, या अन्य डिवाइस चलाने वाले क्लाइंट हैं जो केवल SMBv1 का समर्थन करते हैं, तो उन्हें अद्यतन या पृथक किया जाना चाहिए।
Windows पर SMBv1, SMBv2, और SMBv3 को कैसे सक्षम और अक्षम करें?
आइए विंडोज़ पर विभिन्न एसएमबी संस्करणों को सक्षम और अक्षम करने के तरीकों को देखें। हम SMB क्लाइंट और सर्वर प्रबंधन को कवर करेंगे (वे अलग-अलग Windows घटक हैं)।
Windows 10, 8.1 और Windows Server 2019/2016/2012R2 :
SMBv1 क्लाइंट और सर्वर को अक्षम करें:
अक्षम करें-WindowsOptionalFeature -ऑनलाइन -FeatureName smb1protocol
केवल SMBv1 सर्वर अक्षम करें:
सेट-SmbServerConfiguration -EnableSMB1Protocol $false
SMBv1 क्लाइंट और सर्वर सक्षम करें:
Enable-WindowsOptionalFeature -Online -FeatureName smb1protocol
केवल SMBv1 सर्वर सक्षम करें:
Windows 10 और Windows Server 2016/2019 पर SMBv1 प्रोटोकॉल के बारे में अधिक जानें।
सेट-SmbServerConfiguration -EnableSMB1Protocol $true
SMBv2 और SMBv3 सर्वर अक्षम करें:
सेट-SmbServerConfiguration -EnableSMB2Protocol $false
SMBv2 और SMBv3 सर्वर सक्षम करें:
सेट-SmbServerConfiguration -EnableSMB2Protocol $true
Windows 7, Vista, और Windows Server 2008 R2/2008 :
SMBv1 सर्वर अक्षम करें:
सेट-आइटमप्रॉपर्टी-पथ "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB1 -टाइप DWORD -वैल्यू 0 -फोर्स
SMBv1 सर्वर सक्षम करें:
सेट-आइटमप्रॉपर्टी-पथ "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB1 -टाइप DWORD -वैल्यू 1 -फोर्स
SMBv1 क्लाइंट अक्षम करें:
sc.exe config lanmanworkstation निर्भर =Bowser/mrxsmb20/nsi
sc.exe config mrxsmb10 start=अक्षमSMBv1 क्लाइंट सक्षम करें:
sc.exe config lanmanworkstation निर्भर =bowser/mrxsmb10/mrxsmb20/nsi
sc.exe config mrxsmb10 start=ऑटोSMBv2 सर्वर अक्षम करें:
सेट-आइटमप्रॉपर्टी-पथ "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB2 -टाइप DWORD -वैल्यू 0 -फोर्स
SMBv2 सर्वर सक्षम करें:
सेट-आइटमप्रॉपर्टी-पथ "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB2 -टाइप DWORD -वैल्यू 1 -फोर्स
SMBv2 क्लाइंट अक्षम करें:
sc.exe config lanmanworkstation निर्भर =Bowser/mrxsmb10/nsi
sc.exe config mrxsmb20 start=अक्षमSMBv2 क्लाइंट सक्षम करें:
sc.exe config lanmanworkstation निर्भर =bowser/mrxsmb10/mrxsmb20/nsi
sc.exe config mrxsmb20 start=ऑटोआप 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