آشنایی با Group Policy
Group Policy
Configuration management یک رهیافت مرکزی جهت اعمال یک یا دسته ای از تنظیمات روی کامپیوتر های یک شبکه است. مولفه های اصلی Configuration management به شرح زیر اند:
یک Setting معرف یک تغییر روی تنظیماتی است که برای یک یا دسته ای از کاربران یا کامپیوتر های اعمال می شود.
دسته ای از کاربران یا کامپیوتر ها که Setting به آن ها اعمال می شود معرف Scope است.
مکانیزمی که تضمین می کند Setting روی دسته ای از کاربران یا کامپیوتر ها در Scope مشخص اعمال می شود. به این پروسه، Application گفته می شود.
در محیط Active Directory، Group Policy ابزاری است که امکان Configuration management را فراهم می آورد. کوچکترین عنصر در Group Policy که یک Setting را معین می کند، Policy Setting است که به اختصار به آن Policy گفته می شود. هزاران Policy در Group Policy وجود دارند که هر یک معرف تنظیمی روی کاربران یا کامپیوتر های Scope ای هستند که روی آن اعمال می گردند. جهت ویرایش Policy ها ابزار های Group Policy Management Editor – GPME و PowerShell در دسترس اند.
Policy
Policy ها به صورت عمومی به دو دسته تقسیم می گردند:
User Configuration: Policy هایی هستند که بدون در نظر گرفتن آنکه کاربر روی چه کامپیوتری به شبکه دسترسی دارد، روی کاربران در Scope خود اعمال می شوند.
Computer Configuration: Policy هایی هستند که بدون در نظر گرفتن آنکه چه کاربری از کامپیوتر استفاده می کند، روی کامپیوتر ها در Scope خود اعمال می شود.
یک Policy خود بدون در نظر گرفتن آنکه معین کننده ی چه Setting ای است، دارای سه وضعیت عمومی زیر است:
- Not Configured: به صورت پیش فرض تمام Policy را روی این گزینه تنظیم شده اند. به آن معنا است که این سیاست در همان تنظیم معین هیچ نقشی ایفا نمی کند و بی اثر است. (مشابه با رای ممتنع)
- Enabled: مشخص کننده آن است که تنظیم معین، فعال گردد.
- Disabled: مشخص کننده آن است که تنظیم معین، غیر فعال گردد.
توجه داشته باشید که در Enabled و Disabled خود Policy در نتیجه موثر اند و این دو گزینه تنها اثر آن را فعال را غیر فعال می کند. به عنوان مثال برای Prevent Access To Registry Editing Tools تنظیم گزینه Enabled به معنی آن است که از دسترسی کاربر جلوگیری خواهد شد.
برخی از Policy ها ممکن است شامل گزینه های بیشتری جهت مدیریت باشند. به عنوان مثال Prevent Access To Registry Editing Tools دارای option ای است که معین می کند آیا امکان merge کردن Register File ها وجود داشته باشد یا خیر.
Group Policy Object
Policy ها تحت عناصری به نام Group Policy Objectتعریف می گردند. یک GPO شیئ است که شامل یک یا چند Policy است. با استفاده از ابزار Group Policy Management Console – GPMC مدیریت می شوند. برای ساخت یک GPO جدید کافی است روی گره مطلوب در کنسول کلیک راست کرده و گزینه ی New را بزنید. برای ویرایش GPO های ایجاد شده، در GPMC روی آن کلیک راست کرده و گزینه Edit را بزنید. GPME هزاران Policy موجود در آن GPO را نمایش می دهد.
GPO Scope
متد های مختلفی برای تعیین Scope وجود دارد. اولین و ساده ترین راه، روش Link است. یک GPO می تواند به برخی از نقاط در محیط Active Directory، لینک شود. به عبارت دیگر، با روش لینک می توانیم معین کنیم که یک GPO دقیقا در کجا به کار گرفته شود؛ یک دامین، سایت و یا یک OU. بدیهی است که GPO برای تمام کامپیوتر ها و یوزر ها آن بخش به کار گرفته خواهد شد.
برای بیشتر محدود کردن سیاست ها، روش های دیگری در دسترس است. که به روش های فیلتر کردن GPO مشهور اند.
- Security Filters، که Global Security Group هایی را معین می کند که آن سیاست باید/نباید در آن به کار گرفته شوند
- Filters Windows Management Instrumentation یا به اختصار WMI Filters که از مشخصاتی از سیستم همانند سیستم عامل و یا میزان فضای خالی دیسک سخت استفاده می شود.
هر دو دسته فیلتر ها، برای محدود کردن Scope ای است که توسط لینک معین شده است. در Windows Server 2008 عناصر جدیدی به نام Group Policy Preferences تعریف شدند که می توانند از دیدگاه های متعددی filter و یا targeted شوند. Targeted Preferences این امکان را فراهم می آوردند تا Scope برای Preferences بیش از پیش فیلتر گردد. این روش ها در آینده بررسی شده اند.
انواع GPO
برای هر کامپیوتر می تواند تعدادی GPOs وجود داشته باشد که روی همان کامپیوتر ذخیره شده اند. به این GPO ها Local GPOs می گوییم. از طرف دیگر، هر کامپیوتر می تواند تحت اعمال تعداد هر تعدادی از GPO هایی قرار بگیرد که از سمت محیط Active Directory روی آن اعمال می شوند. به این GPOs ها Domain-Based GPOs می گوییم.
Local GPOs
یک کامپیوتر بدون در نظر گرفتن آنکه عضو Domain, Workgroup یا حتی اصلا به شبکه ای متصل است یا نه، دارای یک Local GPO است. این GPO در %SystemRoot%\System32\GroupPolicy ذخیره می شود و طبیعی است که Policy های آن، انحصارا روی همان کامپیوتر اعمال می گردد. به صورت پیش فرض تنها شاخه Security Settings از GPO پیش فرض تنظیم شده است و سایر تنظیمات Not Configured اند.
در Windows Vista و Windows Server 2008 به بعد، دارای چندین GPO به صورت Local هستند. علاوه بر Local GPO ای که پیش تر اشاره شد، دو GPO جدید به نام های Administrators و Non-Administratorsایجاد شده اند و با توجه به نوع کاربر آن ها اعمال می گردند. توجه داشته باشید که این نوع خاص از GPO که بر اساس نوع کاربر معین می شود تنها به صورت Local در دسترس است و در Domain-Based GPOs به این صورت وجود ندارد.
Domain-Based GPOs
این GPO ها در محیط Active Directory ایجاد می گردد و روی Domain Controller ها نگه داری می شوند. این GPO ها برای مدیریت مرکزی تنظیمات تحت شبکه مورد استفاده قرار می گیرند. زمانی که AD DS نصب می گردد، به صورت پیش فرض دو GPO ساخته می شود:
Default Domain Policy: این GPO روی تمام دامین شامل کامپیوتر ها ، یوزر ها و دامین کنترلر ها اعمال می شود.
Default Domain Controllers Policy: این GPO روی OU دامین کنترلر اعمال می شود. توجه داشته باشید که اکانت دامین کنترلرها روی یک ou جدا به نام Domain Controller نگه داری می شود.
ساخت، ایجاد و ویرایش GPOs
برای مدیریت GPOs، ابتدا لازم است از اکانت کاربری با سطح دسترسی مناسب استفاده کنید. برای link کردن یک GPO روی Site, Domain یا OUمورد نظر در Group Policy Management console کلیک راست کنید و سپس گزینه ی Link An Existing GPO را بزنید. اگر می خواهید یک GPO جدید ایجاد کنید، می توانید در یک گام روی node (گره) مطلوب در ساختار درختی GPMC کلیک راست کنید و New را بزنید. توجه داشته باشید تا وقتی که روی Sites کلیک راست کنید و گزینه ی Show Sites را نزده باشید، Site در GPMC نمایش داده نمی شوند.
به صورت پیش فرض هر دو کنسول GPMC و GPME به یک دامین کنترلر که نقش PDC emulator را دارد متصل می گردند. در هر کدام از کنسول ها می توانید با راست کلیک روی Root node و انتخاب connect to به یک Domain Controller دیگر متصل شوید. توجه داشته باشید که در یک محیط توزیع شده از دیدگاه جغرافیایی، ممکن است PDC emulator در یک Site دور قرار داشته باشد و عملیات Replication زمان بر باشد.
یک تنظیم خاص ممکن است با چند تنظیم متمایز در Scope های متفاوت روی یک کاربر یا کامپیوتراعمال گردد.از آنجایی که Policy های مختلفی ممکن است برای یک setting مشخص از روی Scope های مختلف اعمال شود، دانستن آنکه چه setting در نهایت اعمال خواهد شد داری اهمیت است از این روی؛ ارزیابی Resultant Set Of Policy (RSOP) قابل توجه است که در آینده بررسی می گردد.
برای دسترسی به Group Policy Object Editor در نسخ پیشین ویندوز می توانید به صورت زیر عمل کنید:
LGPO – Local Group Policy Objects
- – در RUN وارد کنید MMC و از منوی file گزینه Add/Remove Snap-In را انتخاب کنید.
– در زبانه Standalone tab در دایلاگ باکس Add/Remove Snap-In دکمه Add را بزنید.
– Group Policy Object Editor را Add کنید و دقت کنید که Local Computer انتخاب شده است.
– Finish را بزنید و سپس با زدن OK دایلاگ باکس را ببندید.
* با استفاده از GPedit.msc می توانید وارد LGPO شوید. از این رو، گاهی GPedit را به جای GPOE به کار برده می شود که منظور همان GPOE است.
LGPO روی کامپیوتر دیگر
- مراحل ۱ را انجام دهید با این تفاوت که با جای Local Computer ، کامپیوتر دلخواه را انتخاب کنید.
GPO روی یک سایت
- – به Administrative tools بروید و کنسول Active Directory Site & Services را باز کنید.
– در درخت کنسول (نوار سمت چپ کنسول) روی سایتی که می خواهید Group Policy اعمال کنید، کلیک راست کنید و Properties را بزنید.
– به زبانه (Tab) مربوط به Group Policy بروید و برای اضافه کردن یک GPO گزینه add را بزنید. می توانید برای ویرایش موارد موجود Edit را بزنید و… .
GPO روی یک OU یا دامین
- به Administrative tools بروید و کنسول Active Directory Users & Computers را باز کنید.
- در درخت کنسول (نوار سمت چپ کنسول) روی دامین یا OU که می خواهید Group Policy اعمال کنید، کلیک راست کنید و Properties را بزنید.
- به زبانه (Tab) مربوط به Group Policy بروید و برای اضافه کردن یک GPO گزینه add را بزنید. می توانید برای ویرایش موارد موجود Edit را بزنید و…
GPO Storage
Group Policy تنها تحت GPOs در رابط Active Directory ظاهر می شوند اما در واقع شامل دو جزء هستند: Group Policy Container (GPC) و Group Policy Template (GPT). GPC یک شیئ Active Directory است که در Group Policy Object container نگه داری می شود و مشابه با تمام اشیاء دیگر دارای یک GUID است. GPC خصوصیت هایی از GPO را معین می کند اما شامل هیچ Policy Setting ای نمی باشد. GPT شامل Policy Setting هاست و شامل مجموعه ای فایل هایی است که در sysvol در محل زیر نگه داری می شود. GUID در آدرس زیر، مقدار GUID مربوط به GPC نظیر است:
%SystemRoot%\SYSVOL\Domain\Policies\GPOGUID
بنابراین، بدیهی است زمانی که تغییراتی روی GPO اعمال می شود در GPT ذخیره می گردند. همانطور که می توانید حدس بزنید، با توجه به دو شیئ متمایز فوق، هر کدام از آن ها توسط مکانیسم های متفاوتی بین DC ها Replicate می شوند. GPC که یک شیئ است توسط Directory Replication Agent (DRA) و از طریق توپولوژی که Knowledge Consistency Checker (KCC) معین کرده است Replicate می شود. حال آنکه؛ GPT از طریق Replicate شدن SYSVOL بین DC ها Replicate خواهد شد پس توسط File Replication Service (FRS) یا در Windows Server 2008+ توسط Distributed File System Replication (DFS-R) عملیات Replication برای GPT انجام خواهد شد.
با توجه به آنکه این دو شیئ که هر دو با هم یک GPO را معین می کنند، توسط مکانیسم های مجزایی Replicate می شوند، ممکن است برای مدت کوتاهی یکی از دو شیئ out of sync باشند. به صورت عمومی، GPC احتمالا ابتدا Replicate خواهد شد. با استفاده از Group Policy Verification Tool (Gpotool.exe) می توان این دو جزء مختلف را ردیابی کرد.
تنظیم Group Policy
دو دسته Policy Setting در Group Policy وجود دارد که در درخت کنسول GPOE به خوبی تفکیک ایجاد می کند. Computer Configuration و User Configuration. همانطور از اسمشان آشکار است، Computer Configuration به کامپیوتر ها اعمال می شود و بدون توجه به آنکه چه کسی از کامپیوتر استفاده می کند. User Configuration به کاربران اعمال می شود و بدون توجه به آنکه از چه کامپیوتری استفاده می کند. برخی از تنظیمات فقط به User و برخی فقط به Computer ها قابل اعمال است. از این رو، توانایی پیدا کردن تنظیمات دلخواه در میان هزاران آیتم مختلف کار دشواری به نظر می رسد. اما درخت GPOE به خوبی طراحی شده و می توان در زمان قابل قبولی بدون داستن محل دقیق یک آیتم، آن را پیدا کرد. یک عدد غیر دقیق در خصوص تعداد آیتم ها از این حکایت دارد که در ویندوز ویستا و سرور ۲۰۰۸ نزدیک به ۳۰۰۰ آیتم مختلف وجود دارد و در ویندوز ۷ از مرز ۳۰۰۰ آیتم خواهد گذشت. قطعا نمی توان این ۳۰۰۰ گزینه را یک به یک بررسی کرد. در اینجا بخش های مختلف موجود در هر گروه را بررسی می کنیم. چنانچه در محیط اکتیودایرکتوری نباشید به بسیار از آیتم ها دسترسی نخواهید داشت.
همانطور که پیش تر اشاره شد، به صورت کلی Group Policy دو بخش اصلی دارد: Computer Configuration که در زمانی که کامپیوتر boot می شود و در بازه های زمانی ۹۰ تا ۱۲۰ دقیقه پس از آن refresh می شود. User Configuration که زمانی که کاربر Logon می کند و در بازه های زمانی ۹۰ تا ۱۲۰ دقیقه پس از آن. هر دو Container شامل Policy و Preference هایی هستند که مجموعا شامل حدود ۶۰۰۰ شیئ می باشند. در اینجا یک نگاه کلی روی Container آن های این اشیاء می کنیم و در آینده برخی از آن ها را با عمق بیشتری بررسی می کنیم. ابتدا Policy ها و سپس Preferences ها بررسی می گردند.
Software Settings
در هر دو بخش User Configuration و Computer configuration تنظیمات Software Installation موجود است
Windows Settings
- – Scripts : هر دو بخش شامل این گروه تنظیمات هستند، اما در Computer Configuration می توانید اسکریپتی که در زمان روشن/ خاموش شدن کامپیوتر اجرا شود را تنظیم کنید و در قسمت User Configuration می توانید اسکریپتی که در زمان login/ logout اجرا می شود را تنطیم کنید. توجه کنید که ابتدا Startup Script و سپس Logon Script اجرا خواهند شد و همچینی ابتدا Log off Script و سپس Shut down Script . نکته دیگر آن است که چنانچه چندین Script مختلف تنظیم شود ویندوز به ترتیب لیست از بالا به پایین اسکریپت ها را اجرا خواهد کرد. موضوع قابل توجه دیگر آن است که به صورت پیش فرض حداکثر زمان اجرای اسکریپت ۱۰ دقیقه است. چنانچه log off و Shut down اسکریپت روی هم دیگر زمانی بیش از ۱۰ دقیقه نیاز داشته باشند می توانید به راحتی با در Software Policy این زمان را تغییر دهید. از هر زبان ActiveX Scirpt می توان استفاده کرد. Microsoft Visual Basic نسخه اسکریپتینگ (VBScript) یا MicrosoftJScript یا Batch file ها (bat.* و cmd.*) پشتیبانی می شوند.
- – Security Settings : می توان جایگزین قالب های امنیتی پیش ساخته، این قسمت را ویرایش کرد.
- – Policy-Based QoS: معرف Policy ها برای مدیریت ترافیک شبکه است. به عنوان مثال ممکن است بخواهید کاربر بخش مدیریت کمپانی، اولویت بیشتری در دسترسی به Network Application هایی داشته باشد.
- -:Folder Redirection این امکان را ایجاد می کند که محل ذخیره سازی user data and settings را تغییر داد. ( به عنوان مثال: AppData, Music, Documents,….
- – Internet Explorer: با استفاده از اشیاء این بخش می توان جزئیات دقیقی در خصوص Internet Explorer را برای کاربران معین کرد.
Administrative Templates
این گروه از تنظیمات را Registery-Based می گویند چرا که از طریق Registry اعمال می شوند. بیش از ۷۰۰ آیتم متفاوت در این قسمت وجود دارد و خود شامل گروه های متفاوتی است. برای کسب اطلاع از هر کدام از این آیتم ها، توضیحات کاملی در خود Group Policy Object Editor درج شده است که از سه طریق قابل دسترسی اند:
- ۱) در Administrative Templates Help که در ویندوز سرور ۲۰۰۳ به بعد وجود دارد.
- ۲) در زبانه Explain قسمت Properties هر آیتم یا Extended tab مربوط به هر GPM.
- ۳) در نوار توضیح
توجه: همچنین این توضیحات برای سایر آیتم ها در بخش های دیگر نیز قابل دسترسی است و توضیحات کامل و جامعی می باشد.
Policyهای Administrative Templates در بخش Computer Configuration در شاخه( HKEY_LOCAL_MACHINE ( HKLM رجیستری ذخیره می شوند و Policyهای Administrative Templates در بخش user Configuration در شاخه (HKEY_CURRENT_USER (HKCU رجیستری ذخیره می شوند. هر کدام از آیتم ها در مکانی خاص از این شاخه ها ذخیره می شوند اما به صورت کلی چنین است:
۱) HKEY_LOCAL_MACHINESoftwarePolicies مربوط به Computer Configuration
۲) HKEY_CURRENT_USERSoftwarePolicies مربوط به User Configuration
۳) HKEY_LOCAL_MACHINESoftwareMicrosoft WindowsCurrentVersionPolicies مربوط به Computer Configuration
۴) HKEY_CURRENT_USERSoftwareMicrosoft WindowsCurrentVersionPolicies مربوط به user Configuration
با توجه به آنکه تعداد بسیار زیادی Policy در این قسمت وجود دارد، برای یافتن Policy های مورد نظر می توانید آن ها را به راحتی فیلتر کنید. برای این منظور روی Administrative Templates کلیک راست کرده و Filter Option را بزنید.
Policy Setting های Managed و Unmanaged
Policy های که در قسمت Administrative Templates وجود دارند، خود شامل دو نوع مختلف می باشند:
Managed: گروهی از policy ها هستند که روی Scope خود اعمال می شوند و تنظیماتی را از طریق Registry اعمال می کنند. با این وجود پس از آنکه کاربران/کامپیوتر هایی که شامل آن Scope بودند، از آن به هر دلیلی خارج گردند تنظیمات به حالت ابتدای خود باز خواهد گشت.
Unmanaged: تنظیماتی هستند که حتی اگر Scope تغییر کرد، همچنان اثر آن ها باقی می ماند.
GPME به صورت پیش فرض Policy هایی که Unmanaged هستند را به دلیل آنکه باز گردندان آن ها با حالت اولیه دشوار است (Revert) مخفی می کند. برای نمایش آن ها روی Administrative Templates کلیک راست کرده و Filter Option را بزنید. سپس در قسمت Managed گزینه مطلوب را انتخاب کنید.
Policy Setting های Managed و Unmanaged
Policy های که در قسمت Administrative Templates وجود دارند، خود شامل دو نوع مختلف می باشند:
Managed: گروهی از policy ها هستند که روی Scope خود اعمال می شوند و تنظیماتی را از طریق Registry اعمال می کنند. با این وجود پس از آنکه کاربران/کامپیوتر هایی که شامل آن Scope بودند، از آن به هر دلیلی خارج گردند تنظیمات به حالت ابتدای خود باز خواهد گشت.
Unmanaged: تنظیماتی هستند که حتی اگر Scope تغییر کرد، همچنان اثر آن ها باقی می ماند.
GPME به صورت پیش فرض Policy هایی که Unmanaged هستند را به دلیل آنکه باز گردندان آن ها با حالت اولیه دشوار است (Revert) مخفی می کند. برای نمایش آن ها روی Administrative Templates کلیک راست کرده و Filter Option را بزنید. سپس در قسمت Managed گزینه مطلوب را انتخاب کنید.
Preferences
در زیر node های User Configurationو Computer Configuration علاوه بر Policy ها، Preferences ها در یک Container مجزا قرار دارند. Preferences تعداد وصف ناپذیری تنظیمات برای رنج وسیعی از کاربرد های مختلف می باشند. مهمترین آن ها عبارتند از:
- Environment variables
Applications such as Microsoft Office
Mapped drives
Registry settings
Power options
Folder options
Regional options
Start menu options
Preferences همچنین برای اعمال تنظیمات روی موارد زیر نیز کارآمد اند:
- Files and folders
Shortcuts
Printers
Scheduled tasks
Network connections - به عنوان مثال در تصویر زیر، یک Network Drive با حرف Z اعمال می گردد:
مدیریت GPOs
در GPMC می توانید روی GPO مورد نظر کلیک راست کنید و ابزار های بسیار مفید زیر در دسترس هستند:
- Copy: می توانید یک GPO را کپی کنید. برای سناریوی هایی همانند Domain آزمایشی و ساخت یک GPO جدید بر اساس GPO قبلی بسیار مفید است. در سناریو های دامین آزمایشی، ابتدا تنظیمات برای کاهش هر گونه تداخل روی یک دامین آزمایشی و سپس در دامین اصلی اعمال می شود.
- Backup: همانند هر اطلاعات حساس دیگری، گرفتن backup از GPOs دارای اهمیت بسیار است.
- Restore: بازگرداندن یک نسخه Backup
- Import Setting: برای وارد کردن تنظیمات از یک untrusted-domain مفید است. زمانی که اطلاعاتی که Domain-Specific (مختص یک دامین) است همانند UNC وارد شود، برای ورود آن ها سوال می شود که دقیقا به همان صورت import شود و یا از یک جدول migration برای نگاشت (Map) کردن اسامی دامین مبدا به مقصد استفاده شود.
- Save Report: یک گزارش از GPO در فرمت HTML تولید می کند.