Just Enough Administration

3 939

Just Enough Administration چیست:
یکی از بهترین قابلیتهای که در PowerShell 5.0 ارائه شده است قابلیت JEA می باشد. در توضیح این قابلیت باید بگم در بعضی سازمانها برای واگذاری مسئولیتها و تقسیم وظایف بر حسب محدوده کاری، بین آدمین ها از قابلیت Role Based Access Control استفاده می شود که در سرویس های مهم مایکروسافت وجود دارد. این سرویس ها عبارتند از:

Active Directory.

Exchange Server.

SharePoint.

Skype for business.

Etc.

 

RBAC مکانیزمی می باشد که دسترسی ها (Privilege) را به یک User یا Group واگذار می کند و آن گروه در محدوده کاری خود بدون داشتن مجوز Local Administrators یا Domain Admins می تواند کارهای مدیریتی خود را انجام دهد. به عنوان مثال در  Exchange Server ،  Management Role Group های وجود دارد که  Scope فعالیت آنها محدود به قسمت خاصی از  Exchange Server می باشد. به عنوان مثال  Server Management که اگر گروه ی عضو این  Role شود توانائی مدیریت  Certificate, Database و  Virtual Directory ها و… را دارد. ولی اگر بخواهیم  به یک نفر مجوز  Enable/Disable کردن یک  Send Connector را بدهیم باید  Role مربوط به این کار را پیدا و آن کاربر را عضو آن  Role کنیم.

ولی  RBAC یک مشکل عمده ای دارد،  Scope بعضی از  Role های فراتر از وظیفه آن ادمین می باشد و آن ادمین در مثال بالا علاوه بر غیرفعال کردن  Send Connector می تواند  Send Connector جدیدی را هم ایجاد کند.

یک مثال دیگر در مورد ضعف  RBAC، فرض کنید در بعضی مواقع سرویس  DNS،  Stop می شود و ما یک نفر را موظف کردیم که اگر  Alert سرویس  DNS را مشاهده کرد به  DNS سرور وصل شود و سرویس آن را فعال کند. در این سناریو تنها گروهی که در  Active Directory برای مدیریت  DNS وجود دارد DNSAdmins می باشد که عضو کردن کاربر در آن گروه، علاوه بر مجوز ریستارت سرویس، مجوز  Full به آن کاربر می دهد و آن کاربر می تواند  Zone های کل  Forest را دستکاری کند.

در چنین سناریوهای  Just Enough Administration وارد عمل شده و مشکل  RBAC را حل می کند. در  JEA هر کاربر فقط مجوز  Taskی را دارد که قرار است انجام دهد.

JEA یکی از قابلیتهای PowerShell می باشد و به همین خاطر آن کاربر برای انجام دادن Task خود باید از PowerShell استفاده کند. به نحوی تمام عملکرد  JEA بر بستر  PowerShell پیاده سازی میشود.

مزایای استفاده از Just Enough Administration:

  • کاهش تعداد اکانتهای آدمین بر روی سرورها. JEA با استفاده از Virtual Account و GMSA تسک های خود را بر روی ماشین مورد نظر اجرا می کند و این کار باعث کاهش استفاده از یوزرهای Local Administrator و Domain Admins می شود.
  • یوزر را محدود به کاری می کند که مجوز آن را دارد. ما بوسیله  ایجاد Capability file تعیین می کنیم کاربر مورد نظر توانائی اجرای چه  Cmdlet,  Functions و External Commands را دارد.
  • با استفاده از JEA مشخص می شود هر کاربری چه کارهای انجام می دهد. بوسیله فایلهای متنی و Event Viewer می توانیم  Sessionکاربر را کاملا بررسی کنیم.

نحوه کارکرد  Just Enough Administration:

بصورت خیلی خلاصه اساس کار  JEA بدین شکل می باشد که برای هر  Taskی یک Capabilities File یا  JEA Endpoint نوشته می شود. Capabilities File فایلی می باشد که شامل دستورات و ماژولهای می باشد که کاربر مجاز به استفاده از آنها می باشد. به عنوان مثال وظیفه یکی از کاربرا ریستارت کردن سرویسی بر روی DC ها می باشد پس در نتیجه درون Capabilities File دستورات زیر را اضافه می کنیم.

در نتیجه تنظیمات بالا درون Capabilities File ایجاد می شود. و Capabilities File به هر کاربری داده شود آن کاربر فقط توانائی اجرای ماژول و دستوری فوق را دارد. بعد از ایجاد Capabilities File و تعیین دسترسی نوبت به ساخت session configuration file می رسد. این فایل تعیین می کند چه گروه های و یوزرهای به چه Capabilities File وصل شوند. که تنظیمات آن را در آینده چک خواهیم کرد.

پیش نیازهای  Just Enough Administration:

این قابلیت در  PowerShell 5.0 به بعد ارائه شده است. در نتیجه برای استفاده از این قابلیت نسخه پاورشل Client/Server باید ۵٫۰ باشد. برای نسخه های  Windows Server 2012 R2 به پایین باید برنامه Windows Management Framework را نصب کنید. به جداول زیر توجه کنید:

Server Operating System JEA Availability
Windows Server 2016+ Preinstalled
Windows Server 2012 R2 Full functionality with WMF 5.1
Windows Server 2012 Full functionality with WMF 5.1
Windows Server 2008 R2 Reduced functionality1 with WMF 5.1

 

Client Operating System JEA Availability
Windows 10 1607+ Preinstalled
Windows 10 1603, 1511 Preinstalled, with reduced functionality2
Windows 10 1507 Not available
Windows 8, 8.1 Full functionality with WMF 5.1
Windows 7 Reduced functionality1 with WMF 5.1

 

بر روی سیستم های قبل از  Windows Server 2012 R2 شما باید PowerShell Remoting را فعال کنید و تنظیم کنید.

برای فعال کردن  PSRemoting با  GPO از لینک زیر استفاده کنید:

Enable and configure Windows PowerShell Remoting using Group Policy.

همچنین در صورت وجود فایروال بین سیستم مبدا و مقصد اجازه عبور ترافیک WMI را بدهید.

یکی از مهمترین پیش نیازهای  JEA فعال بودن پروتکل  WinRM در سیستم مقصد می باشد تا کاربران بتوانند از سیستم خود به سیستم مورد نظر به وسیله  PowerShell ریموت بزنند.

نکته:

 شاید قسمت امنیت سازمان موافق فعال کردن این قابلیت نباشند (این قابلیت درWindows Server 2012R2 به بعد بصورت پیش فرض فعال می باشد) و شما مجبور باشید برای امنیت  WinRM طرحی را ارائه کنید. که توصیه می کنم برای اینکار از  Best Practice های مایکروسافت استفاده شود.

PowerShell Remoting Security Considerations.(Microsoft)

HOW TO SECURE POWERSHELL REMOTING IN A WINDOWS DOMAIN.(3party)

Increase PowerShell remoting security with two simple techniques.( 4sysops)

نکته:

بصورت پیش فرض فقط یوزرهای عضو  Local Administrators می توانند از  PowerShell Remoting استفاده کنند. ولی از   Windows Server 2012 and Windows 8 به بعد گروهی در این سیستم عاملها ایجاد شد به نام  Remote Management Users که کاربران عضو آن می توانند از  PowerShell Remoting استفاده کنند بدون اینکه روی سیستم مقصد مجوز  Local Administrators را داشته باشند.

مانیتور کردن کاربرانی که از JEA استفاده می کنند:

برای  Track کردن فعالیت های کاربرانی که از  JEA استفاده می کنند  نیاز داریم که  GPO زیر بر روی سیستمی که دستورات  PowerShell بر روی آن اجرا می شود فعال کنیم.  برای اینکار:

 

Navigate to Computer Configuration\Administrative Templates\Windows Components\Windows PowerShell

Double-click on Turn on Module Logging

Click Enabled

In the Options section, click on Show next to Module Names

Type * in the pop-up window to log commands from all modules.

Click OK to set the policy

Double-click on Turn on PowerShell Script Block Logging

Click Enabled

Click OK to set the policy

 JEA با چه مجوزی دستورات را اجرا می کند:

قابلیت JEA برای اجرای دستورات خود باید از یک  Identity استفاده کند. در ویندوز به اکانتهای که سرویسی را با مجوز خود اجرا می کنند  Service Account گفته می شود. در سیستم های ۲۰۰۳ به پایین از یوزهای معمولی بعنوان سرویس اکانت استفاده می شد که در فواصل مشخص ادمین آن سرویس برای امنیت، پسورد چنین اکانتهای را تغییر می داد. ولی در ویندوز ۲۰۰۸ به بالا مایکروسافت دو نوع اکانت برای این منظور ایجاد کرد که عبارتند از:

Local Virtual Account.

Managed service accounts.

که  Local Virtual Account برای استفاده بصورت لوکال می باشد و   Group-Managed service account برای استفاده دومینی. اگر کاربر با Session JEA بخواهد دستورات را بر روی یک سیستم اجرا کند از  Local virtual account استفاده می کند ولی اگر در آن Session بخواهد از یک سیستم به  منابع شبکه وصل شود از  Group-Manage service account استفاده می کند. امیدوارم واضح باشد.

نکته:  

LVA بصورت پیش فرض بر روی  Member Server/Workstation عضو گروه  Local Administrators می باشد و روی  Domain Controller عضو گروه  Domain Admins

ما در session configuration file تعیین می کنیم  JEA Session از  LVA استفاده کند یا خیر همچنین می توانیم تعین کنیم  LVA عضو چه گروه های باشد. برای اطلاع بیشتر از این دو اکانت حتما لینک زیر را مطالعه کنید.

JEA Security Considerations

پایان قسمت اول….

نویسنده احمد جهلولی

3 نظرات
  1. میلاد اسحاقی می گوید

    به به مهندس چه مطلب عالی و فوق العاده ای ، از اون مباحثی هست که مرجع فارسی ازش خیلی کم هست یا اصلا نیست ! مخصوصا اینکه جزئیات و بررسی هایی که شما مطرح میکنید کاملا کاربردی و عملیاتی هست .
    مشتاقانه پیگیر مطالبتون هستم

  2. […] Just Enough Administration […]

  3. فرهاد خانلری می گوید

    لذت میبرم مطالبی رو میخونم که با این دقت و ریزه کاری ها هست ، مهندس جان کارت درسته، در مورد امنیت WMI هم اگر تونستی مطلب قرار بده.باتشکر

ارسال یک پاسخ

آدرس ایمیل شما منتشر نخواهد شد.