জাস্ট এনাফ অ্যাডমিনিস্ট্রেশন (জেইএ ) বৈশিষ্ট্যটি পাওয়ারশেল সংস্করণ 5.0 থেকে শুরু করে উপলব্ধ এবং আপনি পাওয়ারশেলের সাথে পরিচালনা করতে পারেন এমন যেকোনো কিছুতে প্রশাসনিক বিশেষাধিকার অর্পণ করার অনুমতি দেয়। PowerShell JEA-এর মূল উদ্দেশ্য হল বিশেষ সুবিধা সীমিত করা। JEA আপনাকে অ-প্রশাসক ব্যবহারকারীদের সার্ভার বা পরিষেবা প্রশাসকের অধিকার (AD, Exchange, SharePoint, ইত্যাদি) না দিয়ে নির্দিষ্ট প্রশাসনিক কাজগুলি সম্পাদন করার অনুমতি দেওয়ার অনুমতি দেয়। JEA ব্যবহার করে, আপনি সেট করতে পারেন কোন ব্যবহারকারীরা প্রশাসক বিশেষাধিকার সহ নির্দিষ্ট cmdlets, ফাংশন বা PowerShell স্ক্রিপ্ট চালাতে পারে এবং সমস্ত ক্রিয়া (PowerShell কমান্ড ইতিহাসের অনুরূপ) লগ করতে পারে।
কীভাবে PowerShell শুধু যথেষ্ট অ্যাডমিনিস্ট্রেশন বাস্তবায়ন করবেন?
একজন প্রশাসক একটি সার্ভারে একটি PowerShell সেশন কনফিগারেশন ফাইল তৈরি করে যাতে একজন ব্যবহারকারী চালাতে পারে এমন কমান্ড রয়েছে। ফাইলগুলির উপর ভিত্তি করে, একটি JEA এন্ডপয়েন্ট তৈরি করা হয় একজন ব্যবহারকারী তার কাছে উপলব্ধ যে কোনও কমান্ড বা প্রোগ্রামের সাথে সংযোগ করতে এবং কার্যকর করতে পারে।
এখানে আমরা একটি উদাহরণ দেখাব কীভাবে নন-প্রশাসক ব্যবহারকারীদের একটি ডোমেন কন্ট্রোলার রিবুট করার অনুমতি দিতে হয় এবং এটিতে DNS এবং ADDS পরিষেবাগুলি পুনরায় চালু করতে হয়৷
এই ক্ষেত্রে, আপনি ব্যবহারকারীদের জন্য ডোমেন কন্ট্রোলারে RDP অ্যাক্সেস মঞ্জুর করতে পারবেন না, তাদের AD-তে প্রশাসনিক সুবিধাগুলি অর্পণ করুন, Windows পরিষেবাগুলিতে অধিকার বরাদ্দ করুন, বা লিঙ্কগুলি অনুসরণ করা গাইড অনুসারে সার্ভার পুনরায় চালু করুন৷ সমস্ত প্রয়োজনীয় সীমাবদ্ধতা জাস্ট এনাফ অ্যাডমিনিস্ট্রেশনের কনফিগারেশনে সেট করা আছে।প্রথমত, একটি PowerShell সেশনের একটি কনফিগারেশন ফাইল তৈরি করুন (*.pssc ) এটি করতে, আপনার ডোমেন কন্ট্রোলারে এই কমান্ডটি চালান:
New-PSSessionConfigurationFile -Path 'C:\Program Files\WindowsPowerShell\dc_manage.pssc'
নোটপ্যাড ব্যবহার করে PSSC ফাইলটি খুলুন।
PSSC ফাইল সেট করে যে কারা এই JEA এন্ডপয়েন্টের সাথে সংযুক্ত হতে পারে এবং JEA সেশনের কমান্ডগুলি কোন অ্যাকাউন্টের অধীনে চলবে৷
নিম্নলিখিত মানগুলি পরিবর্তন করুন:
- সেশনের ধরন ডিফল্ট থেকে RestrictedRemoteServer এ . এই মোডটি নিম্নলিখিত PowerShell cmdlets ব্যবহার করার অনুমতি দেয়:Clear-Host, Exit-PSSession, Get-Command, Get-FormatData, Get-Help, Measure-Object, Out-default বা Select-Objectl
- TranscriptDirectory-এ একটি ফোল্ডার নির্দিষ্ট করুন (এটি তৈরি করুন) প্যারামিটার এখানে আপনি সমস্ত JEA ব্যবহারকারীর ক্রিয়াগুলি লগ করবেন:
TranscriptDirectory = C:\PS\JEA_logs
- RunAsVirtualAccount বিকল্পটি ভার্চুয়াল অ্যাডমিনিস্ট্রেটর অ্যাকাউন্টের অধীনে কমান্ড চালানোর অনুমতি দেয় (স্থানীয় প্রশাসক বা ডোমেন অ্যাডমিনিস্ট্রেটর গ্রুপের সদস্য):
RunAsVirtualAccount = $true
GroupManagedServiceAccount = 'woshub\gMSAJEAUser'
RoleDefinitions নির্দেশনায়, PowerShell সেশনের সাথে সংযোগ করার জন্য অনুমোদিত AD নিরাপত্তা গ্রুপ এবং JEA ভূমিকার নাম উল্লেখ করুন (এটি অবশ্যই PSRC ফাইলের নামের সাথে মেলে যা আমরা পরে তৈরি করতে যাচ্ছি)।
যেমন:
RoleDefinitions = @{‘woshub.com\HelpDesk' = @{ RoleCapabilities = 'HelpDesk_admins' }}
সেশন কনফিগারেশন ফাইল সংরক্ষণ করুন.
এগিয়ে যাওয়ার আগে, কনফিগারেশন ফাইলে কোন ত্রুটি নেই তা নিশ্চিত করুন:
Test-PSSessionConfigurationFile -Path 'C:\Program Files\WindowsPowerShell\dc_manage.pssc'
JEA কনফিগারেশন ফাইল রাখার জন্য একটি নতুন ডিরেক্টরি তৈরি করুন, উদাহরণস্বরূপ:
New-Item -Path 'C:\Program Files\WindowsPowerShell\Modules\JEA\RoleCapabilities ' -ItemType Directory
তারপর ভূমিকার বিবরণ সহ একটি কনফিগারেশন PSRC ফাইল তৈরি করুন (উপরের PSSC কনফিগারেশন থেকে ফাইলের নাম ব্যবহার করুন)।
New-PSRoleCapabilityFile -Path 'C:\Program Files\WindowsPowerShell\Modules\JEA\RoleCapabilities\HelpDesk_admins.psrc'
PSRC ফাইলটি উল্লেখ করে যে বর্তমান জেইএ সেশনে কী করার অনুমতি রয়েছে। VisibleCmdlets -এ নির্দেশে, আপনি প্রদত্ত ব্যবহারকারী গোষ্ঠীর জন্য ব্যবহার করার জন্য অনুমোদিত cmdlets (এবং তাদের বৈধ প্যারামিটার) নির্দিষ্ট করতে পারেন৷
VisibleExternal Commands-এ বিকল্প, আপনি বাহ্যিক কমান্ড এবং চালানোর জন্য অনুমোদিত EXE ফাইল নির্দিষ্ট করতে পারেন।
উদাহরণস্বরূপ, নিম্নলিখিত কনফিগারেশন হেল্পডেস্ককে অনুমতি দেয় ব্যবহারকারীরা শাটডাউন কমান্ড বা Restart-Computer
ব্যবহার করে ডোমেন কন্ট্রোলার পুনরায় চালু করতে cmdlet, সেইসাথে Restart-Service
ব্যবহার করে DNSServer এবং অ্যাক্টিভ ডিরেক্টরি ডোমেন পরিষেবাগুলি পুনরায় চালু করুন cmdlet।
VisibleCmdlets = 'Restart-Computer', @{ Name = 'Restart-Service'; Parameters = @{ Name = 'Name'; ValidateSet = 'DNS', 'NTDS' }} VisibleExternalCommands = 'c:\windows\system32\shutdown.exe'
আপনার PSRC ফাইল সংরক্ষণ করুন।
তারপর আপনার PSSC ফাইলের জন্য একটি নতুন PSSession কনফিগারেশন নিবন্ধন করুন:
Register-PSSessionConfiguration –Name testHelpDesk -Path 'C:\Program Files\WindowsPowerShell\dc_manage.pssc'
এবং WinRM পুনরায় চালু করুন:
Restart-Service WinRM
আপনি উপলব্ধ JEA শেষ পয়েন্ট তালিকা করতে পারেন:
Get-PSSessionConfiguration|ft name
আমাদের নতুন Just-Enough-Administration (JEA) কনফিগারেশন কীভাবে কাজ করে তা দেখা যাক। আপনি কনফিগারেশন ফাইলে নির্দিষ্ট নিরাপত্তা গ্রুপ থেকে ব্যবহারকারী অ্যাকাউন্টের অধীনে তৈরি করা JEA শেষ পয়েন্টের সাথে সংযোগ করতে পারেন। PowerShell রিমোটিং ব্যবহার করে ডোমেন কন্ট্রোলারের সাথে সংযোগ করুন (আপনাকে অবশ্যই JEA শেষ পয়েন্টের নাম উল্লেখ করতে হবে):
Enter-PSSession -ComputerName dc01 -ConfigurationName testHelpDesk
আপনার PowerShell সেশনে উপলব্ধ cmdlet গুলির তালিকা দেখুন:
Get-Command
আপনি দেখতে পাচ্ছেন, রিস্টার্ট-সার্ভিস এবং রিস্টার্ট-কম্পিউটার সহ অল্প সংখ্যক কমান্ড উপলব্ধ। একজন ব্যবহারকারী শুধু তাই করতে পারে যা তাকে করার অনুমতি দেওয়া হয়৷
৷DNS পরিষেবা পুনরায় চালু করার চেষ্টা করুন:
Restart-Computer dns
পরিষেবাটি সফলভাবে পুনঃসূচনা করা হয়েছে (কমান্ডটি ডোমেন প্রশাসকের অনুমতি সহ একটি বিশেষ সুবিধাপ্রাপ্ত ব্যবহারকারী হিসাবে চালানো হয়)।
আপনি যদি JEA কনফিগারেশন ফাইলে বর্ণিত নয় এমন অন্য কোনো পরিষেবা পুনরায় চালু করার চেষ্টা করেন, তাহলে নিম্নলিখিত ত্রুটি বার্তাটি উপস্থিত হবে:
Cannot validate argument on parameter 'Name'. The argument "spooler" does not belong to the set "DNS,NTDS" specifiedby the ValidateSet attribute. Supply an argument that is in the set and then try the command again. + CategoryInfo : InvalidData: (:) [Restart-Service], ParameterBindingValidationException
JEA PowerShell সেশনে সমস্ত ব্যবহারকারীর ক্রিয়াকলাপের ইতিহাস C:\PS\JEA_logs-এর ফাইলগুলিতে লগ করা হয়৷
সুতরাং, JEA আপনাকে প্রশাসক হিসাবে নির্দিষ্ট PowerShell cmdlets, স্ক্রিপ্ট বা প্রোগ্রামগুলি চালানোর জন্য ব্যবহারকারীদেরকে গ্র্যানুলারলি অ্যাক্সেস দেওয়ার অনুমতি দেয়৷