সার্ভার মেসেজ ব্লক (SMB) নেটওয়ার্ক প্রোটোকল নেটওয়ার্কের মাধ্যমে ফোল্ডার, ফাইল, প্রিন্টার এবং অন্যান্য ডিভাইস শেয়ার এবং অ্যাক্সেস করতে ব্যবহৃত হয় (TCP পোর্ট 445)। এই নিবন্ধে, আমরা Windows এর বিভিন্ন সংস্করণে SMB-এর কোন সংস্করণ (উপভাষা) উপলব্ধ রয়েছে তা দেখব (এবং সেগুলি কীভাবে সাম্বা-এর সাথে সম্পর্কিত। লিনাক্সে সংস্করণ); কিভাবে আপনার কম্পিউটারে ব্যবহৃত SMB সংস্করণ পরীক্ষা করবেন; এবং কিভাবে SMBv1, SMBv2, এবং SMBv3 উপভাষাগুলিকে সক্ষম বা নিষ্ক্রিয় করবেন।
বিষয়বস্তু:
- উইন্ডোজে এসএমবি প্রোটোকল সংস্করণ
- উইন্ডোজে SMB সংস্করণ কিভাবে চেক করবেন?
- গেট-এসএমবি সংযোগের সাথে ব্যবহৃত এসএমবি উপভাষাগুলি পরীক্ষা করা হচ্ছে
- অনিরাপদ SMBv1 প্রোটোকল ব্যবহার করা বন্ধ করুন
- কিভাবে উইন্ডোজে SMBv1, SMBv2, এবং SMBv3 সক্ষম এবং নিষ্ক্রিয় করবেন?
উইন্ডোজে এসএমবি প্রোটোকল সংস্করণ
SMB প্রোটোকলের (উপভাষা) বেশ কয়েকটি সংস্করণ রয়েছে যা ধারাবাহিকভাবে নতুন উইন্ডোজ সংস্করণে (এবং সাম্বা) উপস্থিত হয়েছে :
- CIFS – Windows NT 4.0
- SMB 1.0 – Windows 2000
- SMB 2.0 – Windows Server 2008 এবং Windows Vista SP1 (সাম্বা 3.6 সমর্থিত)
- SMB 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 (সাম্বাতে সমর্থিত নয়)
- SMB 3.1.1 – Windows Server 2016 এবং Windows 10 (সাম্বাতে সমর্থিত নয়)
SMB নেটওয়ার্ক যোগাযোগে, ক্লায়েন্ট এবং সার্ভার ক্লায়েন্ট এবং সার্ভার উভয় দ্বারা সমর্থিত সর্বাধিক SMB প্রোটোকল সংস্করণ ব্যবহার করে।
SMB সংস্করণ সামঞ্জস্যের সংক্ষিপ্ত সারণীটি এইরকম দেখাচ্ছে৷ এই সারণীটি ব্যবহার করে, আপনি SMB প্রোটোকলের সংস্করণ নির্ধারণ করতে পারেন যা Windows এর বিভিন্ন সংস্করণ ইন্টারঅ্যাক্ট করার সময় নির্বাচিত হয়:
অপারেটিং সিস্টেম উইন্ডো 10, উইন সার্ভার 2016Windows 8.1, Win সার্ভার 2012 R2Windows 8, সার্ভার 2012Windows 7, সার্ভার 2008 R2Windows ভিস্তা, সার্ভার 2008Windows এক্সপি, সার্ভার 2003 এবং আগে 8.1, সার্ভার 2012 R2SMB 3.02SMB 3.02SMB 3.0SMB 2.1SMB 2.02MB 3.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 Vista, সার্ভার 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 উইন্ডোজ সার্ভারের (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-SmbServer কনফিগারেশন | EnableSMB1Protocol, EnableSMB2Protocol
নির্বাচন করুন
এই কমান্ডটি ফিরিয়ে দিয়েছে যে SMB1 প্রোটোকল নিষ্ক্রিয় করা হয়েছে (EnableSMB1Protocol =True
), এবং SMB2 এবং SMB3 প্রোটোকল সক্রিয় করা হয়েছে (EnableSMB1Protocol =False
)।
Windows 7, Vista, এবং Windows Server 2008 R2/2008-এ:
গেট-আইটেম HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters | প্রতিটি বস্তুর জন্য {Get-ItemProperty $_.pspath}
SMB1
নামের কোনো প্যারামিটার না থাকলে অথবা SMB2
এই রেজিস্ট্রি কীতে, তারপর SMBv1 এবং SMBv2 প্রোটোকলগুলি ডিফল্টরূপে সক্রিয় করা হয়৷
এছাড়াও এই উইন্ডোজ সংস্করণগুলিতে, আপনি চেক করতে পারেন কোন SMB ক্লায়েন্ট উপভাষাগুলি দূরবর্তী হোস্টগুলির সাথে সংযোগ করার জন্য অনুমোদিত:
sc.exe কোয়েরি mrxsmb10
SERVICE_NAME:mrxsmb10TYPE :2 FILE_SYSTEM_DRIVERSTATE :4 চলমান (স্টপপাবল, নয়_পজসাবল্য, IGNORES_SHUTDOWN)WIN32_EXIT_CODE :0 (0x0)SERVICE_EXIT_CODE :0 (0x0)SERVICE_EXIT_0x : :0 (0x0)
sc.exe কোয়েরি mrxsmb20
SERVICE_NAME:mrxsmb20TYPE :2 FILE_SYSTEM_DRIVERSTATE :4 চলছেউভয় ক্ষেত্রেই, পরিষেবাগুলি চলছে (
৷STATE =4 রানিং
) এর মানে হল যে বর্তমান উইন্ডোজ ডিভাইস SMBv1 এবং SMBv2 হোস্ট উভয়ের সাথে সংযোগ করতে পারে৷গেট-এসএমবি সংযোগের সাথে ব্যবহৃত এসএমবি উপভাষাগুলি পরীক্ষা করা হচ্ছে
SMB এর মাধ্যমে যোগাযোগ করার সময়, কম্পিউটার ক্লায়েন্ট এবং সার্ভার উভয় দ্বারা সমর্থিত সর্বাধিক SMB সংস্করণ ব্যবহার করে।
Get-SMB সংযোগ
PowerShell cmdlet একটি দূরবর্তী কম্পিউটার অ্যাক্সেস করতে ব্যবহৃত SMB সংস্করণ পরীক্ষা করতে ব্যবহার করা যেতে পারে:
দূরবর্তী সার্ভারের সাথে সংযোগ করতে ব্যবহৃত SMB সংস্করণ (ServerName ) উপভাষায় তালিকাভুক্ত কলাম।
আপনি একটি নির্দিষ্ট সার্ভার অ্যাক্সেস করতে ব্যবহৃত SMB সংস্করণ সম্পর্কে তথ্য প্রদর্শন করতে পারেন:
Get-SmbConnection -ServerName srvfs01
যদি আপনি SMB এনক্রিপশন ব্যবহার করা হয় কিনা তা প্রদর্শন করতে চান (SMB 3.0-এ প্রবর্তিত):
লিনাক্সে, আপনি কমান্ড ব্যবহার করে SMB সংযোগ এবং সাম্বাতে ব্যবহৃত উপভাষার একটি তালিকা প্রদর্শন করতে পারেন:
Get-SmbConnection | ft ServerName,ShareName,Dialect,Encrypted,UserName
$ sudo smbstatus
Windows SMB সার্ভারের দিকে, আপনি SMB প্রোটোকলের সংস্করণগুলির একটি তালিকা প্রদর্শন করতে পারেন যা ক্লায়েন্টরা বর্তমানে ব্যবহার করছে। কমান্ড চালান:
Get-SmbSession | নির্বাচন-বস্তু -সম্প্রসারণ উপভাষা | সাজান-বস্তু -অনন্য
এই উদাহরণে, SMB 2.1 (Windows 7/ Windows 2008) ব্যবহার করে সার্ভারের সাথে সংযুক্ত 898 ক্লায়েন্ট আছে এবং 8 SMB 3.02 ক্লায়েন্ট।
সংযোগের জন্য ব্যবহৃত SMB সংস্করণগুলির অডিটিং সক্ষম করতে আপনি PowerShell ব্যবহার করতে পারেন:
Set-SmbServer Configuration –AuditSmb1Access $true
SMB সংযোগ ইভেন্টগুলি তারপর ইভেন্ট ভিউয়ার লগ থেকে রপ্তানি করা যেতে পারে:
Get-WinEvent -LogName Microsoft-Windows-SMBServer/Audit
অনিরাপদ SMBv1 প্রোটোকল ব্যবহার করা বন্ধ করুন
গত কয়েক বছর ধরে, নিরাপত্তার কারণে মাইক্রোসফট পদ্ধতিগতভাবে সমস্ত পণ্যে উত্তরাধিকার SMB 1.0 প্রোটোকল নিষ্ক্রিয় করেছে। এটি এই প্রোটোকলের বড় সংখ্যক গুরুতর দুর্বলতার কারণে (ওয়ানাক্রিপ্ট এবং পেটিয়া র্যানসমওয়্যারের ঘটনাগুলি মনে রাখবেন, যা SMBv1 প্রোটোকলের একটি দুর্বলতাকে কাজে লাগিয়েছে)। মাইক্রোসফ্ট এবং অন্যান্য আইটি সংস্থাগুলি দৃঢ়ভাবে সুপারিশ করে যে আপনি আপনার নেটওয়ার্কে SMBv1 ব্যবহার বন্ধ করুন৷
৷যাইহোক, SMBv1 নিষ্ক্রিয় করা হলে Windows 10 (Windows Server 2016/2019) এর নতুন সংস্করণে লিগ্যাসি ক্লায়েন্ট (Windows XP, Windows Server 2003), থার্ড-পার্টি OS (Mac OSX 10.8 Mountain Lion, Snow) থেকে শেয়ার করা ফাইল এবং ফোল্ডার অ্যাক্সেস করতে সমস্যা হতে পারে। Leopard, Mavericks, old Linux distros), পুরানো NAS ডিভাইস।
যদি আপনার নেটওয়ার্কে কোনো লিগ্যাসি ডিভাইস অবশিষ্ট না থাকে যা শুধুমাত্র SMBv1 সমর্থন করে, তাহলে Windows এ SMB উপভাষাটি নিষ্ক্রিয় করতে ভুলবেন না।
আপনার যদি Windows XP, Windows Server 2003, বা শুধুমাত্র SMBv1 সমর্থন করে এমন অন্যান্য ডিভাইস চালানোর ক্লায়েন্ট থাকে, তাহলে তাদের আপডেট বা বিচ্ছিন্ন করা উচিত।
Windows এ SMBv1, SMBv2, এবং SMBv3 কিভাবে সক্ষম এবং নিষ্ক্রিয় করবেন?
আসুন উইন্ডোজে বিভিন্ন SMB সংস্করণ সক্ষম এবং নিষ্ক্রিয় করার উপায়গুলি দেখি। আমরা এসএমবি ক্লায়েন্ট এবং সার্ভার ম্যানেজমেন্ট কভার করব (এগুলি বিভিন্ন উইন্ডোজ উপাদান)।
Windows 10, 8.1, এবং Windows Server 2019/2016/2012R2 :
SMBv1 ক্লায়েন্ট এবং সার্ভার নিষ্ক্রিয় করুন:
অক্ষম-WindowsOptional Feature -Online -FeatureName smb1protocol
শুধুমাত্র SMBv1 সার্ভার নিষ্ক্রিয় করুন:
Set-SmbServer Configuration -EnableSMB1Protocol $false
SMBv1 ক্লায়েন্ট এবং সার্ভার সক্ষম করুন:
Enable-WindowsOptional Feature -Online -FeatureName smb1protocol
শুধুমাত্র SMBv1 সার্ভার সক্ষম করুন:
Windows 10 এবং Windows Server 2016/2019-এ SMBv1 প্রোটোকল সম্পর্কে আরও জানুন।
Set-SmbServer Configuration -EnableSMB1Protocol $true
SMBv2 এবং SMBv3 সার্ভার নিষ্ক্রিয় করুন:
Set-SmbServer Configuration -EnableSMB2Protocol $false
SMBv2 এবং SMBv3 সার্ভার সক্ষম করুন:
Set-SmbServer Configuration -EnableSMB2Protocol $true
Windows 7, Vista, এবং Windows Server 2008 R2/2008 :
SMBv1 সার্ভার নিষ্ক্রিয় করুন:
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB1 -Type DWORD -Value 0 -Force
SMBv1 সার্ভার সক্ষম করুন:
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB1 -Type DWORD -Value 1 -Force
SMBv1 ক্লায়েন্ট নিষ্ক্রিয় করুন:
sc.exe কনফিগারেশন lanmanworkstation depend=bowser/mrxsmb20/nsi
sc.exe কনফিগারেশন mrxsmb10 start=নিষ্ক্রিয়SMBv1 ক্লায়েন্ট সক্ষম করুন:
sc.exe কনফিগারেশন lanmanworkstation depend=bowser/mrxsmb10/mrxsmb20/nsi
sc.exe কনফিগারেশন mrxsmb10 start=স্বয়ংক্রিয়SMBv2 সার্ভার নিষ্ক্রিয় করুন:
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB2 -Type DWORD -Value 0 -Force
SMBv2 সার্ভার সক্ষম করুন:
সেট-আইটেমপ্রপার্টি -পাথ "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB2 -টাইপ DWORD -মান 1 -ফোর্স
SMBv2 ক্লায়েন্ট অক্ষম করুন:
sc.exe কনফিগারেশন lanmanworkstation depend=bowser/mrxsmb10/nsi
sc.exe কনফিগারেশন mrxsmb20 start=নিষ্ক্রিয়SMBv2 ক্লায়েন্ট সক্ষম করুন:
sc.exe কনফিগারেশন lanmanworkstation depend=bowser/mrxsmb10/mrxsmb20/nsi
sc.exe কনফিগার 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