Group Policy چیست؟

Group Policy ساختاری است که برای اعمال مجموعه ای از تنظیمات یا سیاست ها (حال یا امنیتی یا غیرامنیتی) به مجموعه ای از کاربران و کامپیوترهای یک ساختار اکتیودایرکتوری بکار می رود.شما از طریق Group Policy یا به اختصار GP می توانید یک سری تنظیمات امنیتی و کاربری را در سیستمتان انجام دهید ، در کامپیوترهای Local یا کامپیوترهایی که به عنوان سرور استفاده می شدند و دارای دامین کنترلر و اکتیودایرکتوری نیستند شما می توانستید یک GP را به مجموعه ای از کاربران Assign یا اعمال کنید ولی در شبکه که دارای دامین کنترلر و اکتیودایرکتوری است شما می توانید بینهایت GP را به کامپیوترها، کاربران و OU ها Assign کنید ، Group Policy دراین شبکه ها یک Object می باشد و شما میتوانید به ازای هرکدام از Object ها در دامینتان ، یک GP داشته باشید ،از اینرو به آن Group Policy Object یا به اختصار GPO مینامند.نکته ی دیگری که باید دقت کنید این است که شما به یک کاربر یا کامپیوتر بیشتر از 999 GPO نمی توانید اعمال کنید.

سطوح مختلف اعمال Group Policy


Group Policy درسطوح مختلفی وجود دارد که از نظر اولویت به ترتیب زیر می باشند : 

  • Local Group Policy-LGP- اولویت اول
  • Site Group Policy-SGP- اولویت دوم
  • Domain Group Policy-DGP- اولویت سوم
  • OU Group Policy-OU- اولویت چهارم

همانطور که از اسم هر سطح پیداست،LGP ،GP مربوط به سیستمهای local است.DGP هم GP های اعمال شده به دامین کنترلر می باشد.SGP هم GPهای اعمال شده به سایت ( به فضایی که سیستم ها در آن قرار میگیرند سایت گفته می شود ) می باشد و UGP هم GP هایی است که به هر OU اعمال می شود.حال نکاتی را باید در نظر داشته باشید: 

  • به صورت پیش فرض تمامی سیستم ها قبل از آنکه به عضویت دامین در آیند از LGP یا local group policy تبعیت می کنند.
  • به صورت پیش فرض اگر به هیچکدام از OU ها یا سایت ، GP اعمال نشود،از GP مربوط به دامین استفاده می کنند.

داخل شبکه دامینی برای اعمال Policy به شبکه از Group Policy استفاده می کنند و داخل شبکه های دامینی دو نوع Group Policy وجود دارد :

1 –  Local Group Policy

2 - Default Domain Policy

Local Group Policy

اولی یا همون Local Group Policy داخل ویندوز های معمولی هم وجود دارد که دستور دسترسی به آن gpedit.msc (در Run ویندوز تایپ می کنیم) هست. هر تغییری که در Local Group Policy داده شود فقط و فقط به همون کامپیوتر اعمال می شود و بر روی کلاینت های دیگر تاثیری ندارد.

 Default Domain Policy

اما دومی یعنی Default Domain Policy داخل ویندوزهای معمولی وجود ندارد و برای دسترسی به آن باید داخل ویندوز سرور دستور gpme.msc را در Run تایپ کنیم. هر تغییری که در اینجا اعمال شود به کل شبکه دامینی اعمال می شود. بعنوان مثال اگر بخواهیم قسمتی را برای همه ببندیم ، باید در اینجا اعمال کنیم.

نکته دیگری که باید دقت کنید این است که پشت کامپیوتری که دامین کنترلر (DC) هست ما
Group Policy به نام Local نداریم و حتما باید از Default Domain Policy یا همون gpme.msc استفاده کنیم.

مسیر دسترسی به Default Domain Policy غیر از دستور gpme.msc

از قسمت Administrative Tools وارد Group Policy Management می شویم.

پس از باز شدن پنجره مذکور، زیر دامین مورد نظر ، بر روی Default Domain Policy کلیک راست می کنیم و گزینه Edit رو انتخاب می کنیم.

نکته!

کنسول Group Policy Management به صورت پیش فرض داخل ویندوز سرور 2003 وجود ندارد و برای اضافه کردن آن باید فایلی به نام gpmc.msi دانلود شود و نصب شود تا به ویندوز سرور اضافه شود.

GPOهای ساخته شده بصورت پیشفرض

برای اینکه به کنسول مدیریتی Group Policy Management دسترسی پیدا کنیم می بایست در Run تایپ کنیم gpmc.msc و بعد OK را بزنیم تا این کنسول نمایان شود مانند شکل زیر: 

Image


همانطور که در شکل مشاهده می کنید در اینجا دامین ما وجود دارد و به ما نشان میدهد که چه OUهایی داریم و چه Policyهایی به آنها Assign شده ، در Group Policy Management به صورت پیشفرض دو عدد GPO وجود دارد که خود به طور پیشفرض یک سری تنظیمات امنیتی در آنها وجود دارد: 

  • Default Domain Policy : که Policy های تنظیم شده دراین قسمت ،به کامپیوترها و یوزرهای Join شده به دامین را اعمال میشود.
  • Default Domain Controller Policy : که Policy های اعمال شده به این قسمت ،تنها به دامین کنترولرهای شبکه اعمال میشود.

ایجاد ، حذف و لینک کردن GPO

برای اینکه یک GPO درست کنیم بر Group Policy Objects راست کلیک میکنیم و New را میزنیم و در پنجره باز شده یک نام برای آن نوشته و OK میکنیم تا GPO ساخته شود.حالا برای اینکه این GPO را به یک OU ، Assign کنیم می بایست روی OU راست کلیک کرده و Link an Existing GPO را بزنیم سپس در پنجره باز شده لیست Group Policy Object های ساخته شده نشان داده میشود و GPO مد نظر خود را انتخاب می کنیم تا Assign شود. برای اینکه یک GPO را از OU برداریم می بایست بر روی GPO ی Link شده در مسیر OU مد نظر ، راست کلیک کرده و Delete را بزنیم دقت داشته باشید که از این روش تنها لینک از OU پاک میشود و برای پاک کردن GPO بصورت کامل میبایست GPO مد نظر را از مسیر Group Policy Objects پاک کنیم .با راست کلیک بر روی Group Policy Objects میتوانید لیست GPOهای ساخته شده را مشاهده کنید و با راست کلیک بر روی هرکدام از آنها و انتخاب Edit وارد تنظیمات GP آن شوید.در Group Policy تنظیمات بسیار زیادی وجود دارد که برای آشنایی بیشتر آن می توانید به مقاله مهمترین تنظیمات Group Policy در ویندوز سرور 2008 مراجعه کنید. 


توضیح:

OU مخفف organization unit است وکوچکترین واحد مدیریت داخل شبکه domain است و کوچکترین واحدی است که ما می توانیم به آن (group policy)gp اعمال کنیم.

کلا معیار برای ساختن ou ها متفاوت می باشد. معمولا در این تقسیم بندی و ساختن ou ها  بسیار موثر است.

زمانی که active directory users and computers  را بازمی کنیم چارت سازمانی  از نام domain شروع می شود برای مثال   Hava.hamedsan   بعد از آن ou ها , container ها را داریم.

 هرگاه active directory users and computers ساخته شد در آن ou ساخته می شود به نا م  domain controllers 

چگونه می توان ou ساخت؟

به دو روش می توان Ou ساخت

  •   گرافیکی
  • command

 هر وقت خواستیم جایی ou بسازیم فقط active directory users and computer است که می توان ou ساخت.

در این قسمت بر روی  wikipg.com یک کلیک راست کرده و new ou را انتخاب میکنیم و اسم آن را برای مثال  fani می گذاریم .

ساختن ou به روش گرافیکی

 برای ساختن ou به روش گرافیکی بر روی نام دامنه کلیک راست کرده و new  را انتخاب کرده سپس organization unit  را انتخاب می کنیم.بعد از انتخاب کردن این گزینه کادری باز می شود که در آن باید نام ou را مشخص کنیم.

 

اگر گزینه ی protect container from accidental deletion انتخاب شده باشد در این صورت  اگر بر روی ou که ساخته شده است کلیک راست کرده و سپس گزینه  ی Remove  را انتخاب کنیم پاک نمی شود برای اینکه پاک شود باید مراحلی که در قسمت پاک کردن ou توضیح داده شده است مطالعه کنید. ( تیکprotectمیگه: این OU را از پاک شدن های تصادفی محافظت کن. که بهتر است آن را بگذاریم.)

حالا اگر در صفحه ی active directory users and computers نگاه کنیم میبینیم که ou  در اینجا با نام fani ایجاد شده است.

طریقه ی ساختن ou توسط command

با فرمان زیر می توانیم این کار را انجام دهیم.

Dsadd ou ou=edari,dc=alireza,dc=com

Dsadd  ou  DN  هر ou که می سازیم داخل ntds.dit ذخیره می شود این ou با فرمت Dstinguished Name ذخیره می شود

برای dn نوشتن از قوانین زیر پیروی می کنیم.

قانون DN نوشتن

از پایین به بالا سلسله مراتب می نویسیم

هر جا به ou رسیدیم آن را با OU نمایش می دهیم.

هر جا به DOMAIN رسیدیم آن را با DC  نمایش می دهیم

هر جا به موردی غیر از موارد بالا رسیدیم آن را با CN  نمایش می دهیم.

برای جدا کردن سلسله مراتب از یکدیگر از کاما ,   استفاده می کنیم.

برای مثال اگر بخواهیم ou با نام it بسازیم به این صورت عمل می کنیم:

پس از اینکه دستور را در cmd  وارد کردیم باید enter را بزنیم بعد از زدن Enter پیغام می دهد که ou با موفقیت ساخته شده است.

حالا اگر در صفحه ی active directory users and computers برویم ویک بار صفحه را Refresh کنیم  می بینیم که ou مورد نظر ساخته شده است.

اگر بخواهیم یک Ou را در داخل ou دیگر ایجاد کنیم در این حالت باید حتما باید PARENT  ساخته شود تا CHILD ساخته شود. برای مثال اگر بخواهیم که ou بانام mali در ou it ایجاد کنیم خواهیم داشت:

همانطور که میبینید باید از پایین ترین نقطه به سمت بالا ترین نقطه حرکت می کنیم. سپس enter  را می زنیم

پس لز زدن Enter پیغام می دهد که ou با موفقیت ساخته شده است. و اگر در صفحه  ی active directory users and computers برویم خواهیم دید که در زیر مجموعه ی ou it برای ما ou mali ساخته شده است.

 

پاک کردن ou

برای پاک کردن ou که به روش گرافیکی ساخته شده است اگر بر روی ou مورد نظر کلیک راست کرده و گزینه ی delete  را بزنیم.

 پاک نمی شود و error  می دهد.

برای پاک کردن ou که به روش گرافیکی آن را ساخته ایم به روش زیر عمل می کنیم.

 ابتدا در صفحه ی active directory users and computersگزینه ی view را انتخاب کرده سپس گزینه ی advance feature  را انتخاب می کنیم.

تا فعال شود سپس بر روی ou مورد نظر کلیک راست کرده و  گزینه ی  propertiesو تیک protect object from accident delition را برمی داریم.

و بعد با کلیک  راست کردن مجدد بر روی  ou      و انتخاب گزینه ی delete آن را پاک می کنیم.

 

زمانیکه  با command  در این قسمت ou می سازیم دیگر گزینه ی Protect  container from accident delition تیک نمی خورد و می توان با کلیک راست کردن بر روی آن و انتخاب کردن delete آن را حذف کرد.

حذف کردن ou توسط command

پاک کردن Ou از طریق  command با زدن dsrm می باشد.

 سپس enter را می زنیم.

قبل از delete کردن سوال می پرسد که می خواهی این ou حذف شود و y را می زنیم  سپس این صفحه را یک با ر refresh می کنیم.


 آشنایی با تب های موجود در تنظیمات OU و GPO


با کلیک بر روی GPO مد نظر در سمت راست تصویر یک سری تنظیمات را مشاهده می کنید به شکل زیر نگاه کنید : 

Image


در تب Scope می توانیم ببینیم که این GPO به کجاها Assign شده است. در قسمت Links می بینیم که این GPO به چه Siteها ، Domainها و یا OUهایی Assign شده و در قسمت پایین تر یعنی Security Filtering میتوانید مشخص کنید که این GPO چه یوزرها ، گروهها و یا کامپیوترهایی را تحت تاثیر قرار داده است ، همانطور که مشاهده می کنید در اینجا Authenticated users به صورت پیشفرض وجود دارد به این معنی که GPO ساخته شده میتواند تمامی یوزرها ، گروهها و یا کامپیوترهایی که احراز هویت شده اند و دارای username و password ( که البته این پسورد می تواند blank باشد ) هستند را تحت تاثیر قرار می دهد. 

Image


تب بعدی Details هست که در آن میتوانید وضعیت GPO را مشاهده کنید همچنین میتوانید تعیین کنید که این GPO به کامپیوترها اعمال شود یا یوزرها ، هیچکدام و یا هر دو آنها . 

Image


تب بعد Setting هست که گزارش میدهد که چه تغییراتی در این GPO انجام شده. 


و در تب آخر که Delegation هست شما می توانید انجام یک سری از تنظیمات را به کاربران واگذار کنید.از آنجا که در شبکه های بزرگ یا متوسط ، چندین نفر در بخش شبکه مشغول فعالیت هستند از اینرو هر شخص وظایف مختلفی خواهند داشت.در این بخش شما می توانید کارها را در شبکه تقسیم بندی کنید و به هر شخص متناسب با کاری که باید انجام دهد ، دسترسی هایی را تعریف کنید.بدینصورت که یک یوزر را Add میکنید بعد روی یوزر کلیک کرده و Advanced را می زنید و Permission های مد نظر خود را اعمال می کنید. خوب حال در سمت چپ شما می توانید کلیه OU هایی که ایجاد کرده اید را مشاهده کنید. اگر بر روی هر OU درسمت چپ کلیک کنید گزینه های زیر را مشاهده خواهید کرد ، با هم نگاهی کوتاه به آنها می اندازیم: 

Image


تب اول Linked Group Policy Objects که GPOهای لینک شده به OU را به ترتیب اولویت نشان میدهد. 

Image


تب دوم Group policy Inheritance هست که نشان میدهد که چه GPOهایی و با چه اولویتهایی به آن Assign شده اند. در مورد اولویت ها در انتها در قسمت ترتیب اثر در OU Group Policy  صحبت می شود

Image


و تب سوم Delegation هست که برای واگذاری تغییر تنظیمات به عهده کاربر است. 


رفع اشکال


رفع اشکال در مبحث Group Policy بسیار مهم هست ، در اینجا دو روش رفع اشکال به شما معرفی می کنم ، شما ممکن است یک GPO را به OU ای Assign کنید ولی ببینید که اثر نکرده و یا اولویتهای اثر آن با آن چیزی که اتنظار می رفت متفاوت بوده ، در اینجا شما می توانید بر OU مد نظر کلیک کرده و در سمت راست ، در تب Group policy Inheritance به ترتیب اولویت ، GPO هایی که به آن Assign شده و می بایست اعمال شود را مشاهده کنید.به شکل زیر دقت کنید: 

Image



خوب حالا اگر با استفاده از این روش باز هم نتیجه مطلوبی دریافت نکردیم چه کنیم؟ یکی دیگر از راهها استفاده gpresult است اگر ما بخواهیم ببینیم که به یک کاربر و کامپیوترش چه GPO هایی Assign شده می توانیم پشت کامپیوتر آن کاربر نشسته و با وارد کردن دستور زیر در Command Prompt یک گزارش از پالیسی های Assign شده بگیریم ، خروجی این دستور در مسیر درایو C و در فایلی به نام result.txt ذخیره می گردد. 

 
Gpresult –z >c:\result.txt

اما در شبکه های بزرگ ، رفتن پای سیستم کاربر کار وقت گیری هست ، حالا چاره چیست ؟ شما می توانید وارد اکتیو دایرکتوری شوید ( در Run بنویسید dsa.msc ) و بر روی کاربر مد نظر راست کلیک کنید و در منوی باز شده وارد All Tasks شده: 

Image



  • Resultant Set Of Policy Planning : برای اینکه ببینیم چه تنظیماتی میبایست به کاربر اعمال شود.
  • Resultant Set Of Policy Logging : برای اینکه ببینیم در حال حاضر چه نتظیماتی به کاربر اعمال شده است.


بدلیل اینکه قصد تشریح این دو گزینه را نداریم با هم ساده ترین راه استفاده از این دو مورد را بررسی می کنیم

بتدا Resultant Set Of Policy Planning را می زنیم ، پنجره ای به شکل زیر باز میشود : 

Image



مانند شکل بالا بر Computer کلیک کرده و آدرس یک کامپیوتر را به آن می دهیم تا گزارش گیری با توجه به استفاده کاربر از آن کامپیوتر محاسبه گردد ، همچنین گزینه Skip to the final page of this wizard without collecting additional data را تیک میزنیم ادامه داده و در پایان Finish میکنیم ، در نهایت یک پنجره برای ما نمایان میشود که در آن میتوانیم Policyهایی که میبایست برای کاربر و کامپیوتر مشخص شده ، اعمال شود را بصورت جداگانه مشاهده کنیم. همچنین میتوانیم موقع بستن پنجره آن را در حافظه با پسوند msc ذخیره کنیم تا در دفعات بعد با اجرای آن ، تغییرات را در همان زمان مشاهده کنیم.

Resultant Set Of Policy Logging را اگر بزنیم پنجره ای مشابه پنجره قبلی نمایش داده میشود اما کمی ساده تر، به شکل زیر نگاه کنید 

Image



اگر This Computer را بزنیم تنظیمات با توجه به کامپیوتری که در آن هستیم محاسبه میگردد ، Another Computer را انتخاب میکنیم و آدرس یک کامپیوتر را به آن میدهیم تا گزارش گیری با توجه به استفاده کاربر از آن کامپیوتر محاسبه گردد سپس Next میکنیم تا آخر Fnish کرده و نتایج را مانند مورد قبلی ملاحظه میکنیم. فقط به این نکته دقت داشته باشید که در طی انجام این مراحل ممکن است با پیغام زیر برخورد کنید: 

Image


در چنین مواقعی شما میبایست در فایروال کامپیوتری که یوزر مد نظرتان با آن لاگین کرده ، رول (Windows Management Instrumentation (WMI-In را Enabled کنید.جناب مهندس نصیری در خصوص رفع اشکال GPO مطلبی در سایت تحت عنوان ساده ترین روشهای رفع مشکلات Group Policy ارائه دادند که پیشنهاد می کنم حتما مطالعه کنید. 

ترتیب اثر در OU Group Policy


ترتیب اثر پالیسی ها یا اولویت اثر آنها به گونه ای هست که چنانچه یک Policyدر OU والد تنظیم شده باشد و در OU فرزند نیز همان Policyتنظیم شده باشد، Policy فرزند بر Policy والد برتری خواهد داشت و سیاست فرزند اعمال خواهد شد. در واقع Policy والد بی اثر خواهد بود . پس Policy والد در اولویت است. برای مثال به شکل زیر نگاه کنید : 

Image



در این شکل در مواقعی که دو یا چند پالیسی یکسات در GPOها اعمال شده باشد Policy 2 بر روی Policy 1 اولویت داشته و همچنین Policy3 بر تمامی اینها اولویت دارد یعنی اگر تنظیماتی در Policy 3 داشته باشیم و مشابه آن را در Policy 1 و Policy 2 داشته باشید ، سیاستهای در Policy 1 در شبکه اعمال میشود. 
اگر بخواهیم کاری کنیم که یک OU تنظیمات خود را از بالاسری خود نگیرد چه کنیم؟ در این حالت روی OU مد نظر راست کلیک کرده و Block Inheritance را میزنیم ، همچنین با راست کلیک بر روی GPO و انتخاب Enforce کاری میکنیم که GPO ما ، تنها سیاستهای اعمال شده ی خود را در بالاترین اولویت قرار دهد. به بیانی دیگر اگر ما بر GPO مد نظر خود Enforce را بزنیم در صورتی که همان Policy در GPOهای دیگر وجود داشته باشد، Policy ای که در GPOی Enforce شده وجود دارد اولویت بالاتری داشته و اعمال میشود.از ترکیب Enforce و Block Inheritance در یک GPO میتوانیم کاری کنیم که تنها تنظیماتی که در آن GPO داشته ایم در بالاترین اولویت قرار گیرد همچنین هیچ تنظیماتی را هم از بالاسر خود هم نگیرد. حالا اگر چند GPO را یکجا در OU داشتیم چطور اولویت آن را تعیین کنیم؟ شما خیلی راحت میتوانید با کلیک بر OU مورد نظر در سمت راست ، در تب Linked Group Policy Objects لیست GPOهای لینک شده را به ترتیب اولویت مشاهده و با ابزاری که در شکل مشخص شده اولویت آن را تغییر دهید. 

Image




Backup گیری از Group Policy Object


وارد Group Policy Objects شوید و بر GPO ای که می خواهید نسخه پشتیبانی تهیه کنید راست کلیک کرده و Back Up… را انتخاب کنید 

Image



در اینجا در قسمت Location آدرس فولدری که میخواهید نسخه پشتیبانی در آن ذخیره شود میدهیم و در قسمت Description میتوانیم یکسری توضیحات را برای آن بنویسیم و بعد Backup را میزنیم تا نسخه پشتیبانی گرفته شود.همچنین برای Restore کردن آن میتوانید بر روی Group policy objects راست کلیک کرده و Manage Backups را بزنیم و در ادامه پنجره ای باز شده که در آن Browse را میزنیم ، آدرس فولدری که نسخه پشتیبانی در آن ذخیره شده را میدهیم و OK میکنیم سپس لیست GPOهای Backup گرفته شده در آن فولدر نمایش داده میشود و روی موارد مورد نیاز کلیک کرده و Restore را میزنیم. مانند شکل زیر: 

Image


شما میتوانید با راست کلیک بر روی Group policy objects و انتخاب Backup All از کلیه GPOها نسخه پشتیبانی تهیه کرده و با روشی مشابه روش قبل آن را Restore کنید. 


استفاده از الگو برای ایجاد GPO


در Group Policy Management ، Starter GPOs دیده میشود که بوسیله آن میتوانید یک الگو برای GPO ایجاد کرده و تنظیمات مورد نظر خود را در آن انجام دهید ، سپس در هنگام ایجاد GPO جدید تعیین میکنید که GPO ساخته شده از چه الگویی پیروی کند. 

Image



برای ساخت الگو بر روی Starter GPOs راست کلیک کرده و New را میزنیم در پنجره باز شده یک نام برای آن وارد می کنیم و میتوانیم یه سری توضیحات هم برای آن بنویسیم ، OK میکنیم تا الگوی ما ساخته شود سپس روی الگوی ساخته شده راست کلیک کرده و Edit میکنیم تا پنجره ی Group Policy Starter GPO Editor جلوی ما نمایان شود که در آن سیاست های مد نظر خود را وارد می کنیم.خوب تا اینجا یک الگو ساخته ایم ، برای اینکه از این الگو یک GPO ایجاد کنیم بر Group Policy Objects راست کلیک میکنیم و New را میزنیم و در پنجره باز شده یک نام برای آن نوشته و در پایین در قسمت Source Starter GPO لیست الگوهای ایجاد شده را مشاهده میکنیم که بر حسب نیاز روی الگوی مد نظر کلیک کرده و OK میکنیم مانند شکل زیر: 

Image



با آرزوی موفقیت 

منابع: سعید شمس آبادی  در: انجمن تخصصی فناوری اطلاعات ایران ITPro.ir  و http://www.wikipg.com و...