কম্পিউটার টিউটোরিয়াল

Windows Server-এ Access-Based Enumeration (ABE) সক্ষম করার পদ্ধতি

Access-based Enumeration (ABE) নেটওয়ার্ক শেয়ার্ড ফোল্ডারে থাকা অবজেক্ট (ফাইল ও ফোল্ডার) যেসব ইউজারের NTFS পারমিশন (Read বা List) নেই, তাদের কাছ থেকে লুকাতে সাহায্য করে। ফলে শেয়ার্ড ফোল্ডারে সংরক্ষিত ডেটার অতিরিক্ত গোপনীয়তা নিশ্চিত হয় (ফোল্ডার ও ফাইল স্ট্রাকচার ও নাম লুকিয়ে), ব্যবহারযোগ্যতা বাড়ে (ইউজারদের অ্যাক্সেস নেই এমন ডেটা দেখতে পায় না), এবং সিস্টেম অ্যাডমিনিস্ট্রেটর ব্যবহারকারীদের নিরন্তর প্রশ্ন "আমি এই ফোল্ডার অ্যাক্সেস কেন করতে পারছি না!!!" থেকে মুক্ত থাকেন। এই প্রযুক্তি, এর কনফিগারেশন বিশেষত্ব এবং বিভিন্ন Windows ভার্সনে ABE-এর ব্যবহার বিস্তারিতভাবে দেখি।

Windows-এ শেয়ার্ড ফোল্ডার অ্যাক্সেস কীভাবে কাজ করে?

Windows-এ নেটওয়ার্ক শেয়ার্ড ফোল্ডার প্রযুক্তির একটি খামি হল ডিফল্টভাবে সব ইউজার কমপক্ষে এর স্ট্রাকচার এবং সব ফাইল ও ডিরেক্টরির লিস্ট দেখতে পায়, এমনকি যেগুলোর NTFS পারমিশন তাদের নেই (খোলার চেষ্টা করলে "Access Denied" এরর দেয়)। কেন না যেসব ইউজারের অ্যাক্সেস পারমিশন নেই তাদের কাছ থেকে সেই ফাইল ও ফোল্ডার লুকিয়ে রাখা? Access-based Enumeration এটি করতে সাহায্য করে। একটি শেয়ার্ড ফোল্ডারে ABE সক্ষম করলে ব্যবহারকারীর indywidual অ্যাক্সেস পারমিশন (ACL) এর ভিত্তিতে একই নেটওয়ার্ক শেয়ারে ভিন্ন ব্যবহারকারী ভিন্ন ফোল্ডার ও ফাইল লিস্ট দেখবে।

SMB-এ শেয়ার্ড ফোল্ডার অ্যাক্সেস করার সময় ক্লায়েন্ট এবং সার্ভারের মধ্যে ইন্টারঅ্যাকশন কীভাবে হয়?

  • ক্লায়েন্ট সার্ভারকে নেটওয়ার্ক শেয়ার্ড ফোল্ডারের একটি ডিরেক্টরি অ্যাক্সেসের জন্য রিকোয়েস্ট করে;
  • সার্ভারের LanmanServer সার্ভিস ইউজারের এই ফোল্ডার অ্যাক্সেসের পারমিশন চেক করে;
  • অ্যাক্সেস অ্যালোড হলে (NTFS পারমিশন: লিস্ট কন্টেন্ট, রিড বা রাইট), ইউজার ডিরেক্টরির কন্টেন্ট দেখে;
  • ইউজার একই পদ্ধতিতে সাবফোল্ডার বা ফাইল অ্যাক্সেসের রিকোয়েস্ট করে (নেটওয়ার্ক ফোল্ডারে কে কোনো নির্দিষ্ট ফাইল খোলেছে সেটা যেভাবে দেখবেন);
  • অ্যাক্সেস ডেনাই হলে ইউজারকে বিষয়টি নোটিফাই করা হয়।

এই স্কিম অনুযায়ী স্পষ্ট হয় যে সার্ভার প্রথমে ফোল্ডারের সম্পূর্ণ কন্টেন্ট ইউজারকে দেখায়, এবং NTFS পারমিশন চেক হয় কেবলমাত্র ইউজার কোনো নির্দিষ্ট ফাইল বা ফোল্ডার খোলার চেষ্টা করলে।

Access-based Enumeration (ABE) ফাইল সিস্টেম অবজেক্টের অ্যাক্সেস পারমিশন ইউজারকে ফোল্ডার কন্টেন্টের লিস্ট পাওয়ার পূর্বে চেক করতে দেয়। তাই ফাইনাল লিস্টে শুধু সেই অবজেক্ট থাকে যেগুলোর ইউজারের NTFS পারমিশন আছে (কমপক্ষে রিড-অনলি), এবং সব অ্যাক্সেস নয় এমন রিসোর্স সিম্পলি প্রদর্শিত হয় না (লুকায় থাকে)।

অর্থাৎ, একই শেয়ার্ড ফোল্ডার (\\filesrv1\docs) এ একটি ডিপার্টমেন্টের ইউজার (যেমন গুদাম) এক লিস্ট দেখবে (Public এবং Warehouse ফোল্ডার)। অন্য ডিপার্টমেন্টের ইউজার (যেমন IT ডিপার্টমেন্ট, ভিন্ন সিকিউরিটি গ্রুপে) একই নেটওয়ার্ক ফোল্ডারে Public এবং Warehouse-এর পাশাপাশি ৫টি আরও ডিরেক্টরি দেখবে।

Windows ফাইল সার্ভারে ABE ব্যবহার করার মূল ডিসঅ্যাডভান্টেজ হলো সার্ভারে অতিরিক্ত লোড। এটি হাই-লোড ফাইল সার্ভারে বিশেষভাবে স্পষ্ট। দেখা যাচ্ছে ডিরেক্টরিতে যত বেশি অবজেক্ট (ফাইল ও ডিরেক্টরি) থাকে এবং যত বেশি ইউজার ফাইল ওপেন করে, তত বেশি লেটেন্সি। মাইক্রোসফ্ট অনুযায়ী, প্রদর্শিত ফোল্ডারে ১৫,০০০ অবজেক্ট থাকলে ফোল্ডার খোলা ১-৩ সেকেন্ড ধীর হয়। তাই শেয়ার্ড ফোল্ডার স্ট্রাকচার ডিজাইন করার সময় স্পষ্ট এবং হায়ারার্কিক্যাল সাবফোল্ডার স্ট্রাকচার তৈরি করতে গুরুত্ব দিতে হয় যাতে ফোল্ডার খোলার লেটেন্সি কম দেখায়।

নোট: বুঝতে হবে Access-based Enumeration ফাইল সার্ভারের নেটওয়ার্ক শেয়ার্ড ফোল্ডারগুলোর লিস্ট লুকায় না, শুধু তাদের কন্টেন্ট লুকায়। যদি কোনো ইউজার থেকে একটি শেয়ার্ড ফোল্ডার লুকাতে চান, তবে শেয়ার নামের শেষে $ সিম্বল যোগ করুন।

ABE কমান্ড প্রম্প্ট (abecmd.exe ইউটিলিটি), GUI, PowerShell বা স্পেশাল API থেকে ম্যানেজ করা যায়।

Access-Based Enumeration সীমাবদ্ধতা

Windows-এ Access-based Enumeration নিচের কেসগুলোতে কাজ করে না:

  • ফাইল সার্ভার হিসেবে Windows XP বা Windows Server 2003 (Service Pack 1 ছাড়া) ব্যবহার করলে;
  • লোকালি ডিরেক্টরি ভিউ করলে (সার্ভার থেকে সরাসরি);
  • লোকাল ফাইল সার্ভার অ্যাডমিনিস্ট্রেটর গ্রুপের মেম্বারদের জন্য (তারা সবসময় ফাইলগুলোর পূর্ণ লিস্ট দেখে)।

Windows Server 2008/ 2008 R2-এ ABE ব্যবহার

Windows Server 2008/R2-এ Access Based Enumeration ফাংশনালিটি ব্যবহার করতে কোনো অ্যাডিশনাল কম্পোনেন্ট ইনস্টল করতে হয় না, কারণ ABE ম্যানেজমেন্ট ফিচার ইতিবাচকভাবে Windows GUI-তে বিল্ট-ইন। Windows Server 2008/2008 R2-এ একটি নির্দিষ্ট ফোল্ডারের জন্য Access-based Enumeration সক্ষম করতে MMC ম্যানেজমেন্ট কনসোল Share and Storage Management খুলুন (Start → Programs → Administrative Tools → Share and Storage Management)। প্রয়োজনীয় শেয়ারের প্রোপার্টিজে যান। তারপর Advanced সেটিংসে যান এবং Enable access-based enumeration চেক করুন।

Windows Server 2012 R2/ 2016-এ Access-based Enumeration কনফিগারেশন

Windows Server 2012 R2 / 2016-এ ABE কনফিগারেশনও খুব সহজ। Windows Server 2012-এ ABE সক্ষম করতে প্রথমে File and Storage Services role ইনস্টল করতে হবে, তারপর Server Manager-এ শেয়ার প্রোপার্টিজে যান। Settings section-এ Enable access-based enumeration অপশন চেক করুন।

Windows Server 2003-এ Access-Based Enumeration বাস্তবায়ন

Windows Server 2003-এ (এখন সাপোর্টেড নয়), ABE Service Pack 1 থেকে সাপোর্টেড। Windows Server 2003 SP1 (বা পরবর্তী) এ ABE সক্ষম করতে এই লিংক থেকে প্যাকেজ ডাউনলোড ও ইনস্টল করতে হবে: https://www.microsoft.com/en-us/download/details.aspx?id=17510। ইনস্টলেশনের সময় স্পেসিফাই করতে হবে ABE সব শেয়ার্ড ফোল্ডারের জন্য সক্ষম হবে নাকি ম্যানুয়ালি কনফিগার করবেন। দ্বিতীয় অপশন বেছে নিলে ইনস্টলেশনের পর নেটওয়ার্ক শেয়ার প্রোপার্টিজে নতুন ট্যাব, Access-based Enumeration আসবে। নির্দিষ্ট ফোল্ডারের জন্য ABE এক্টিভেট করতে প্রোপার্টিজে Enable access-based enumeration on this shared folder অপশন চেক করুন। Windows 2003 DFS-ভিত্তিক Access Based Enumeration সাপোর্ট করে, কিন্তু এটি কেবল কমান্ড প্রম্প্ট থেকে cacls দিয়ে কনফিগার করা যায়।

কমান্ড প্রম্প্ট থেকে ABE ম্যানেজমেন্ট

Abecmd.exe ইউটিলিটি দিয়ে কমান্ড প্রম্প্ট থেকে Access-based Enumeration সেটিংস ম্যানেজ করা যায়। এই টুল Windows Server 2003 SP1-র Access-based Enumeration প্যাকেজের অংশ (উপরের লিংক দেখুন)।

Abecmd.exe দিয়ে একসাথে সব ডিরেক্টরির জন্য বা নির্দিষ্ট ডিরেক্টরির জন্য ABE এক্টিভেট করা যায়। সব শেয়ারের জন্য Access-Based Enumeration সক্ষম করতে:

abecmd /enable /all

নির্দিষ্ট ফোল্ডারের জন্য (যেমন Docs নামে নেটওয়ার্ক শেয়ার্ড ফোল্ডার):

abecmd /enable Docs

PowerShell ব্যবহার করে Access Based Enumeration ম্যানেজ করুন

SMBShare PowerShell মডিউল (Windows 10/8.1 এবং Windows Server 2016/2012 R2-এ ডিফল্ট ইনস্টলড) ব্যবহার করে নির্দিষ্ট ফোল্ডারের Access Based Enumeration সেটিংস ম্যানেজ করা যায়। নির্দিষ্ট শেয়ার্ড ফোল্ডারের প্রোপার্টি লিস্ট করুন:

Get-SmbShare Install|fl *

FolderEnumerationMode অ্যাট্রিবিউটের মান লক্ষ্য করুন। আমার কেসে এটি Unrestricted। অর্থাৎ এই ফোল্ডারের জন্য ABE ডিজেবল।

সার্ভারের সব শেয়ার্ড ফোল্ডারের ABE স্ট্যাটাস চেক করুন:

Get-SmbShare | Select-Object Name,FolderEnumerationMode

নির্দিষ্ট ফোল্ডারের জন্য ABE সক্ষম করুন:

Get-SmbShare Install | Set-SmbShare -FolderEnumerationMode AccessBased

সকল পাবলিশড নেটওয়ার্ক ফোল্ডার (অ্যাডমিনিস্ট্রেটিভ শেয়ার ADMIN$, C$, E$, IPC$… সহ) এর জন্য ABE সক্ষম করুন:

Get-SmbShare | Set-SmbShare -FolderEnumerationMode AccessBased

ABE ডিজেবল করতে:

Get-SmbShare Install | Set-SmbShare -FolderEnumerationMode Unrestricted

Windows 10 / 8.1 / 7-এ Access-Based Enumeration

অনেক ইউজার, বিশেষ করে হোম বা SOHO নেটওয়ার্কে, Access-Based Enumeration ফিচার ব্যবহার করতে চান। সমস্যা হলো মাইক্রোসফ্ট ক্লায়েন্ট OS-গুলোর ন तो গ্রাফিক্যাল নই কমান্ড ইন্টারফেস আছে ABE ম্যানেজ করার জন্য।

Windows 10 (Server 2016) এবং Windows 8.1 (Server 2012R2)-এ PowerShell ব্যবহার করে Access-based Enumeration ম্যানেজ করা যায় (উপরের সেকশন দেখুন)। পুরনো Windows ভার্সনে latest PowerShell (>= 5.0) ইনস্টল করতে হবে বা Windows Server 2003 প্যাকেজ থেকে abecmd.exe ইউটিলিটি ব্যবহার করতে হবে, এটি ক্লায়েন্ট OS-এ ঠিকঠাক কাজ করে। যেহেতু Windows Server 2003 Access-based Enumeration প্যাকেজ Windows 10, 8.1 বা 7-এ ইনস্টলড নয়, তাই প্রথমে Windows Server 2003-এ ইনস্টল করুন, তারপর C:\windows\system32 ডিরেক্টরি থেকে কপি করে ক্লায়েন্টের সেম ফোল্ডারে পেস্ট করুন। এরপর উপরের কমান্ড অনুযায়ী ABE সক্ষম করুন।

নোট: কর্পোরেট এনভায়রনমেন্টে ABE DFS ফোল্ডারসহ খুব ভালো কাজ করে যেটি ইউজার থেকে ফোল্ডার লুকিয়ে পাবলিক ফোল্ডার ট্রির আরও সুবিধাজনক স্ট্রাকচার প্রদান করে। DFS-এ ABE সক্ষম করতে DFS Management বা dfsutil.exe ব্যবহার করুন: dfsutil property abde enable \\namespace_root

অতিরিক্তভাবে, AD ডোমেনের কম্পিউটারে GPO দিয়ে ABE সক্ষম করা যায়। এটি GPP দিয়ে করা যায় সেকশনে: Computer Configuration → Preferences → Windows Settings → Network Shares। নেটওয়ার্ক ফোল্ডার প্রোপার্টিজে Access-Based Enumeration অপশন আছে, মান Enable করলে এই GPO দিয়ে তৈরি সব শেয়ার্ড ফোল্ডারের জন্য ABE মোড সক্ষম হবে।

  1. উইন্ডোজ ১১-এ ভয়েস অ্যাক্সেস সক্রিয় করুন: ধাপে ধাপে গাইড

  2. SSH দিয়ে ক্র্যাশ করা উইন্ডোজ PC অ্যাক্সেস করুন: ধাপে ধাপে গাইড

  3. দ্রুত গাইড: Windows 11-এ Startup Folder অ্যাক্সেস করা

  4. উইন্ডোজ ১১-এ ফোল্ডার এক্সেস ডেনাইড এরর দ্রুত সমাধান করুন