SMB (Server Message Block) হল একটি নেটওয়ার্ক-লেয়ারড প্রোটোকল যা मुख্যভাবে Windows-এ ফাইল, প্রিন্টার শেয়ারিং এবং নেটওয়ার্ক-অ্যাটাচড কম্পিউটারগুলোর মধ্যে যোগাযোগের জন্য ব্যবহৃত হয়। এই প্রোটোকলটি মূলত IBM/Microsoft দ্বারা তৈরি করা হয়েছিল এবং এর প্রথম ইমপ্লিমেন্টেশন DOS/Windows NT 3.1-এ করা হয়েছিল। এর পর, SMB প্রায় প্রতিটি Windows ভার্সনে থাকে যেমন XP, Vista, 7, 8, 10, 11। SMB প্রোটোকল Windows সার্ভার এডিশনগুলেও থাকে। যদিও SMB প্রোটোকল Windows-নেটিভ, এটি Linux (SAMBA-এর মাধ্যমে) এবং macOS-ও সাপোর্ট করে।

SMB কর্মকাণ্ড
সর্বোচ্চ সরল রূপে, SMB ক্লায়েন্ট মেশিনগুলো SMP পোর্ট (পোর্ট ৪৪৫) ব্যবহার করে একটি SMB সার্ভারের সাথে সংযুক্ত হয় SMB-ভিত্তিক শেয়ার অ্যাক্সেস করার জন্য সফল SMB অথেন্টিকেশনের পর। একবার SMB সংযোগ স্থাপন হলে, ফাইল কোলাবোরেশন, প্রিন্টার শেয়ারিং, বা যেকোনো নেটওয়ার্ক-ভিত্তিক অপারেশন সম্পন্ন করা যায়।

SMB প্রোটোকলের ইতিহাস
SMB প্রোটোকল ১৯৮০দশকে IBM-এর একটি গ্রুপ দ্বারা ডেভেলপ করা হয়েছিল। বছরের পর বছর বিবর্তমান নেটওয়ার্ক প্রয়োজনীয়তা পূরণের জন্য, SMB প্রোটোকল একাধিক ভেরিয়েন্টের মাধ্যমে উন্নত হয়েছে, যাদের ভার্সন বা ডায়ালেক্ট বলা হয়। প্রোটোকলটি আজও LAN বা কর্মক্ষেত্রে রিসোর্স শেয়ারিং-এর জন্য সবচেয়ে বেশি ব্যবহৃত প্রোটোকলগুলোর একটি।
SMB প্রোটোকল ডায়ালেক্ট বা ভার্সন
সদা পরিবর্তনশীল IT হরাইজনের সাথে কম্প্যাটিবল থাকতে, SMB প্রোটোকল তার আসল ইমপ্লিমেন্টেশন থেকে অনেক উন্নতির মধ্য দিয়ে এসেছে। সবচেয়ে উল্লেখযোগ্যগুলো হল:
- SMB 1 ১৯৮৪ সালে DOS-এ ফাইল শেয়ার করার জন্য তৈরি হয়েছিল।
- CIFS (Common Internet File System) ১৯৯৬ সালে Microsoft দ্বারা Windows 95-এ Microsoft-এর SMB সংস্করণ হিসেবে পরিচয় করানো হয়েছিল।
- SMB 2 ২০০৬ সালে Windows Vista এবং Windows Server 2008-র অংশ হিসেবে রিলিজ হয়েছিল।
- SMB 2.1 ২০১০ সালে Windows Server 2008 R2 এবং Windows 7-র সাথে পরিচয় করানো হয়েছিল।
- SMB 3 ২০১২ সালে Windows 8 এবং Windows Server 2012-র সাথে রিলিজ হয়েছিল।
- SMB 3.02 ২০১৪ সালে Windows 8.1 এবং Windows Server 2012 R2-র সাথে ডেবিউ করেছিল।
- SMB 3.1.1 ২০১৫ সালে Windows 10 এবং Windows Server 2016-র সাথে পরিচয় করানো হয়েছিল।
SMBv1
SMBv1 ১৯৮০দশকে IBM দ্বারা ডেভেলপ করা হয়েছিল এবং ১৯৯০দশকে Microsoft দ্বারা যোগ ফিচারসহ CIFS হিসেবে রিনেম করা হয়েছিল। যদিও তার যুগে, SMB 1 বড় সফলতা অর্জন করেছিল, এটি আজকের কানেক্টেড বিশ্বের জন্য ডেভেলপ করা হয়নি (সকল সফটওয়্যার অ্যাপ্লিকেশন যা সেই যুগে ডেভেলপ হয়েছিল সেগুলোর মতো), আوقات, ৩০+ বছরের ইনফরমেশন রিভোলিউশন বিতিয়ে গেছে তারপর। Microsoft ২০১৩ সালে SMBv1 ডিপ্রিকেট করল এবং ডিফল্টরূপে এটি আর Windows এবং Windows সার্ভার এডিশনে ইনস্টলড থাকে না।
এই পুরনো প্রযুক্তির কারণে, SMBv1 অত্যন্ত অনিরাপদ। এর অনেক এক্সপ্লয়িট/ভালনারেবিলিটি আছে এবং এগুলোর অনেক রিমোট কোড এক্সিকিউশন অনুমতি দেয় টার্গেট মেশিনে। যদিও সাইবার সিকিউরিটি এক্সপার্টরা SMB 1 ভালনারেবিলিটি সম্পর্কে সতর্কতা দিয়েছিল, कुख্যাত WannaCry র্যানসমওয়্যার আক্রমণ এটি স্পষ্ট করে দিল কারণ আক্রমণটি SMBv1-এ পাওয়া ভালনারেবিলিটিকে লক্ষ্য করেছিল।

এই ভালনারেবিলিটিগুলোর ফলস্বরূপ, SMB1 ডিজেবল রাখা সুপারিশ করা হয়। SMB1 ভালনারেবিলিটির আরও ডিটেইলস Malwarebytes ব্লগ পেজে পাওয়া যাবে। একজন ব্যবহারকারী নিজেও SMB1 ভালনারেবিলিটি (বিশেষ করে, EternalBlue) Metasploit ব্যবহার করে চেক করতে পারেন।

SMBv2 এবং SMBv3
SMBv2 এবং SMBv3 SMB প্রোটোকলের নিচের উন্নতিগুলো অফার করে (যেগুলো SMB 1-এ নেই):
- Pre-authentication Integrity
- Secure Dialect Negotiation
- Encryption
- Insecure guest auth blocking
- Better message signing
কিছু ব্যবহারকারীর মনে একটি স্বাভাবিক প্রশ্ন আসতে পারে যদি তাদের সিস্টেমে SMBv2 বা 3 থাকে, তবে কি সেটি তাদের মেশিনে SMB 1-এর ভালনারেবিলিটি কভার করবে? কিন্তু উত্তর হল না কারণ SMB-এর এই উন্নতিগুলো ভিন্নভাবে কাজ করে এবং ভিন্ন মেকানিজম ব্যবহার করে। যদি একটি মেশিনে SMBv2 এবং 3 থাকার পাশাপাশি SMBv1 এনাবলড থাকে, তবে সেটি SMBv2 এবং 3 কেও আতঙ্কিত করতে পারে কারণ SMB 1 ম্যান-ইন-দ্য-মিডেল (MiTM) আক্রমণ নিয়ন্ত্রণ করতে পারে না। আক্রমণকারী শুধু তার পক্ষ থেকে SMBv2 এবং 3 ব্লক করে শুধু SMB 1 ব্যবহার করে তার ম্যালিশাস কোড টার্গেট মেশিনে এক্সিকিউট করতে পারে।
SMB 1 ডিজেবল করার প্রভাব
অতिआবশ্যক না হলে (Windows XP বা SMB 1 ব্যবহারকারী লেগ্যাসি অ্যাপ্লিকেশন চালাচ্ছে মেশিনগুলোর জন্য), সকল সাইবার সিকিউরিটি এক্সপার্ট সিস্টেম লেভেল এবং অর্গানাইজেশন লেভেলে SMBv1 ডিজেবল রাখার সুপারিশ করে। যদি নেটওয়ার্কে কোনো SMBv1 অ্যাপ্লিকেশন বা ডিভাইস না থাকে, তবে কিছুই প্রভাবিত হবে না কিন্তু সকল পরিস্থিতিতে এটা সত্য নয়। SMBv1 ডিজেবল করার প্রতিটি সিনেরিও ভিন্ন হতে পারে কিন্তু একটি I.T. অ্যাডমিনিস্ট্রেটর, SMB 1 ডিজেবল করার সময় নিচের বিষয়গুলো বিবেচনা করতে পারেন:
- হোস্ট এবং অ্যাপ্লিকেশনের মধ্যে আনক্রিপ্টেড বা সাইন করা যোগাযোগ
- LM এবং NTLM কমিউনিকেশন
- নিম্ন (বা উচ্চ) লেভেল ক্লায়েন্টের মধ্যে ফাইল শেয়ার কমিউনিকেশন
- বিভিন্ন অপারেটিং সিস্টেমের মধ্যে ফাইল শেয়ার কমিউনিকেশন (যেমন Linux বা Windows-এর মধ্যে যোগাযোগ)
- লেগ্যাসি সফটওয়্যার অ্যাপ্লিকেশন এবং ফিক্সড SMB-ভিত্তিক কমিউনিকেশন অ্যাপ্লিকেশন (যেমন Sophos, NetApp, EMC VNX, SonicWalls, vCenter/vSphere, Juniper Pulse Secure SSO, Aruba, ইত্যাদি)।
- প্রিন্টার এবং প্রিন্ট সার্ভার
- Windows-ভিত্তিক অ্যাপ্লিকেশনের সাথে Android কমিউনিকেশন
- MDB-ভিত্তিক ডাটাবেস ফাইল (যেগুলো SMBv2 SMBv3-এ করাপ্ট হতে পারে এবং এই ফাইলগুলোর জন্য SMBv1 অপরিহার্য)।
- SMB 1 ব্যবহারকারী ব্যাকআপ বা ক্লাউড অ্যাপ্লিকেশন
SMB 1 ডিজেবল করার পদ্ধতিগুলো
SMB1 ডিজেবল করার অনেক পদ্ধতি আছে এবং একজন ব্যবহারকারী তার সিনেরিওর সাথে সবচেয়ে ভালো মেলে এমন পদ্ধতি ব্যবহার করতে পারেন।
ডিফল্টরূপে ডিজেবলড
SMBv1 Windows 10 Fall Creators Update এবং পরবর্তী ভার্সনগুলতে ডিফল্টরূপে ডিজেবলড থাকে। SMB 1 Windows 11-এ ডিফল্টরূপে ডিজেবলড থাকে। সার্ভার এডিশনের জন্য, Windows Server version 1709 (RS3) এবং পরবর্তীতে SMB1 ডিফল্টরূপে ডিজেবলড থাকে। SMB1-র বর্তমান স্ট্যাটাস চেক করতে:
- Windows ক্লিক করুন, PowerShell সার্চ করুন, এতে রাইট-ক্লিক করুন, এবং সাব-মেনুতে, Run as Administrator সিলেক্ট করুন।

- এখন এক্সিকিউট করুন:
Get-SmbServerConfiguration | Select EnableSMB1Protocol, EnableSMB2Protocol

মনে রাখবেন Microsoft Windows আপডেটের মাধ্যমে SMB 1-এর স্বয়ংক্রিয় রিমูভাল অন্তর্ভুক্ত করেছে কিন্তু যদি একজন ব্যবহারকারী পুনরায় এনাবল করে, তবে ভবিষ্যতে প্রোটোকলটি ডিজেবল্ড নাও থাকতে পারে এবং মেশিনকে আতঙ্কিত করতে পারে।
Windows 10, 8, বা 7-এর Control Panel ব্যবহার করুন
- Windows ক্লিক করুন, Control Panel সার্চ করুন এবং খুলুন।

- এখন Programs সিলেক্ট করুন এবং Turn Windows Features on or off খুলুন।

- তারপর SMB 1.0/CIFS File Sharing Support আনচেক করুন এবং Apply-এ ক্লিক করুন।

- এখন আপনার সিস্টেম রিস্টার্ট করুন এবং SMB 1 আপনার সিস্টেমে ডিজেবলড হয়ে যাবে।

Windows 11-এর Optional Features মেনু ব্যবহার করুন
- Windows-এ রাইট-ক্লিক করুন এবং Settings খুলুন।

- এখন, বাম প্যানে, Apps-এ যান, এবং তারপর ডান প্যানে, Optional Features খুলুন।

- তারপর নিচে স্ক্রল করুন এবং Related Settings-এর অধীনে, More Windows Features-এ ক্লিক করুন।

- এখন, দেখা মেনুতে, SMB 1.0/CIFS File Sharing Support আনচেক করুন এবং Apply-এ ক্লিক করুন।

- তারপর আপনার PC রিস্টার্ট করুন এবং রিস্টার্ট হলে, SMBv1 PC-এ ডিজেবলড থাকবে।
PowerShell ব্যবহার করুন
উপরের দুটি পদ্ধতি অধিকাংশ ব্যবহারকারীর প্রয়োজন পূরণ করতে পারে, কিন্তু একটি সার্ভার সিস্টেমে, একটি অ্যাডমিনকে PowerShell ব্যবহার করতে হতে পারে (যদিও, ধাপগুলো ক্লায়েন্ট মেশিনেও ভালো কাজ করে)।
- Windows ক্লিক করুন, PowerShell সার্চ করুন, এতে রাইট-ক্লিক করুন, এবং Run as Administrator সিলেক্ট করুন।
- এখন এক্সিকিউট করুন:
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB1 -Type DWORD -Value 0 –Force or Disable-WindowsOptionalFeature -Online -FeatureName smb1protocol or Set-SmbServerConfiguration -EnableSMB1Protocol $false or on server Remove-WindowsFeature -Name FS-SMB1 or Set-SmbServerConfiguration -EnableSMB1Protocol $false

- তারপর আপনার সিস্টেম রিস্টার্ট করুন এবং রিস্টার্ট হলে, সিস্টেমের SMB 1 ডিজেবলড থাকবে।
সিস্টেমের Registry Editor ব্যবহার করুন
PowerShell ছাড়া একটি সার্ভার মেশিনে (যেমন Windows Server 2003) একটি অ্যাডমিন registry editor ব্যবহার করে SMB 1 ডিজেবল করতে পারেন যদিও ধাপগুলো ক্লায়েন্ট মেশিনেও ভালো কাজ করে।
সতর্কতা:
আপনার নিজস্ব ঝুঁকিতে এবং অতিরিক্ত সতর্কতার সাথে অগ্রসর হন কারণ সিস্টেমের রেজিস্ট্রি এডিট করা একটি দক্ষ কাজ এবং সঠিকভাবে না করলে, আপনি আপনার সিস্টেম, ডেটা, বা নেটওয়ার্ককে আপায়ে ফেলতে পারেন।
- Windows, Regedit সার্চ করুন, এতে রাইট-ক্লিক করুন, এবং সাব-মেনুতে, Run as Administrator সিলেক্ট করুন।

- এখন নেভিগেট করুন নিচের পথে:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters

- তারপর, ডান প্যানে, SMB1-এ ডাবল-ক্লিক করুন এবং এর ভ্যালু সেট করুন 0-তে। কিছু ব্যবহারকারী, যেমন Windows 7-র ব্যবহারকারীদের SMB1 DWORD (32-bit) ভ্যালু তৈরি করতে হয় এবং এর ভ্যালু 0 সেট করতে হয়।
Group Policy Editor ব্যবহার করুন
যদিও উপরের ধাপগুলো ইনডিভিডুয়াল মেশিনের জন্য কাজ করে কিন্তু SMB 1 অর্গানাইজেশন লেভেলে ডিজেবল করতে, একটি অ্যাডমিন Group Policy Editor ব্যবহার করতে পারেন।
SMB 1 Server ডিজেবল করুন
- Group Policy Management Console লঞ্চ করুন এবং GPO-তে রাইট-ক্লিক করুন যেখানে নতুন প্রেফারেন্সগুলো যোগ করা উচিত।
- তারপর Edit সিলেক্ট করুন এবং নিচের লোকেশনে যান:
Computer Configuration>> Preferences>> Windows Settings
- এখন, বাম প্যানে, Registry-এ রাইট-ক্লিক করুন এবং Registry Item সিলেক্ট করুন।

- তারপর এন্টার করুন:
Action: Create Hive: HKEY_LOCAL_MACHINE Key Path: SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters Value name: SMB1 Value type: REG_DWORD Value data: 0

- এখন অ্যাপ্লাই করুন পরিবর্তনগুলো এবং সিস্টেম রিস্টার্ট করুন।
SMB1 Client ডিজেবল করুন
- Group Policy Management Console লঞ্চ করুন এবং GPO-তে রাইট-ক্লিক করুন যেখানে নতুন প্রেফারেন্সগুলো যোগ করা উচিত।
- তারপর Edit সিলেক্ট করুন এবং নিচের লোকেশনে যান:
Computer Configuration>> Preferences>> Windows Settings
- এখন, বাম প্যানে, Registry-এ রাইট-ক্লিক করুন এবং New Registry Item সিলেক্ট করুন।
- তারপর, এন্টার করুন:
Action: Update Hive: HKEY_LOCAL_MACHINE Key Path: SYSTEM\CurrentControlSet\services\mrxsmb10 Value name: Start Value type: REG_DWORD Value data: 4

- এখন অ্যাপ্লাই করুন পরিবর্তনগুলো এবং DependOnService Properties খুলুন।
- তারপর সেট করুন নিচের موارد এবং অ্যাপ্লাই করুন পরিবর্তনগুলো:
Action: Replace Hive: HKEY_LOCAL_MACHINE Key Path: SYSTEM\CurrentControlSet\Services\LanmanWorkstation Value name: DependOnService Value type REG_MULTI_SZ Value data: Bowser MRxSmb20 NSI

- ফাইনাল ভিউ নিচের মতো হওয়া উচিত এবং পরে, সিস্টেম রিবুট করুন।

SMBv2 বা 3 ডিজেবল করা
কিছু ব্যবহারকারী SMB 1-এর হুমকির স্তর দেখে SMBv2 বা 3 ডিজেবল করার সিদ্ধান্ত নিতে পারেন, যা বর্তমান সময়ে অনাবশ্যক। যদি একজন ব্যবহারকারী SMBv2 বা 3 ডিজেবল করে, সে হারাতে পারে:
- Local caching
- Large file-sharing network
- Failover
- Symbolic links
- 10GB ethernet
- Bandwidth limitations
- Multichannel fault-tolerance
- গত ৩ দশকে সিকিউরিটি এবং এনক্রিপশন উন্নতি
SMB1 ব্যবহার করতে বাধ্য ব্যবহারকারীরা
নিচের সিনেরিওগুলো একজন ব্যবহারকারীকে SMB 1 ব্যবহার করতে বাধ্য করতে পারে:
- Windows XP বা Windows Server মেশিনের ব্যবহারকারী
- ব্যবহারকারীদের জর্জিয়ার্ড ম্যানেজমেন্ট সফটওয়্যার ব্যবহার করার বাধ্যবাধকতা থাকে যা সিস্টেম অ্যাডমিনদের নেটওয়ার্ক नेबरহुड ব্রাউজ করতে বাধ্য করে।
- পুরনো প্রিন্টার ব্যবহারকারী जिनके প্রাচীন ফার্মওয়্যার আছে "scan to share"-এর জন্য।
শুধু তখন SMB1 ব্যবহার করুন যখন অন্য কোনো উপায় নেই। যদি একটি অ্যাপ্লিকেশন বা ডিভাইস SMBv1 খোসে, তবে সেটির বিকল্প খুঁজে বের করা সেরা (এটা এখনকို့ ব্যয়বহুল দেখতে পারে কিন্তু দীর্ঘমেয়াদে এটি লাভজনক হবে, শুধু WannaCry ভুগেছে এমন একজন ব্যবহারকারী বা অর্গানাইজেশনকে জিজ্ঞাসা করুন)।
তাহলে, এটিই ছিল। আপনার যদি কোনো কোয়েরি বা সুপারিশ থাকে, কমেন্টে পিং করুন ভুলবেন না।