امیرحسین کریم پور
مدیر ارشد توسینسو و متخصص سرویس های مایکروسافت

معرفی 7 نکته مهم در رفع اشکال گروپ پالیسی (Group Policy)

مهمترین نکات در اعمال نشدن پالیسی ها و رفع اشکال های Group Policy چیست؟ در این مقاله قصد داریم به مهم ترین نکات درباره Group Policy و نحوه Troubleshooting آن که در آزمون مایکروسافت حتما از آن سئوال مطرح می شود بپردازیم. Group Policy Objects یا به اختصار GPO ها بخشی اجتناب ناپذیر از کار با سیستم عامل های مبتنی بر ویندوز هستند. اما دانستن نحوه استفاده از آن در طراحی شبکه تنها بخشی از پازل را شامل می شود.

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران

برای ادمین های شبکه دانستن نحوه Troubleshoot کردن Group Policy بسیار بسیار مهم است ، هم در محیط های عملیاتی و دنیای واقعی و هم در پاس کردن آزمون های مایکروسافت. در این مقاله بنده به مهم ترین نکات ریز و درشت Group Policy میپردازم و شما را آماده پاسخ دادن به سئوال های مربوط به Group Policy Troubleshooting می کنم. پس ما با من در ایم مقاله همراه باشید .....

اگر در دنیای IT به عنوان ادمین شبکه در شبکه های مبتنی بر سیستم عامل ویندوز مشغول به فعالیت هستید ، شما بسیار با Group Policy ها یا GPO ها سر و کار خواهید داشت. زمانیکه بخواهید یک درایو را به کاربران Map کنید ، نرم افزاری را تحت شبکه روی سیستم های کلاینت نصب کنید ، یا تنظیمات امنیتی روی سیستم های کلاینت انجام بدهید GPO ها عالی ترین ابزار برای انجام اینگونه کار ها هستند. از این رو داشتن دانش خوب درباره دنیای Group Policy برای یک ادمین شبکه بسیار ضروری است.

شرکت مایکروسافت نیز اعتقاد شدیدی به Group Policy و اهمیتش در شبکه و طراحی شبکه دارد و همیشه در آزمون هایش سئوال های گوناگونی درباره Group Policy طراحی می کند تا دانش مدیران شبکه را به چالش بکشد. یکی از مهمترین و اصلی ترین قسمت های یادگیری کار با Group Policy نحوه برطرف کردن مشکلات ناشی از اعمال نشدن GPO ها است. از این رو شما زمان زیادی را صرف رفع اشکال یا Troubleshoot کردن GPO ها می کنید تا اینکه صرفا یک GPO ایجاد کنید و به OU ها لینک کنید و تنظیماتش را انجام دهید.

زیرساخت گروپ پالیسی ( Group Policy ) را درست بشناسید

همانند همه آزمون های مایکروسافت ، مهم است که کار عملی انجام بدهید و دانش خود را در حوزه Group Policy تثبیت کنید. در آزمون های مایکروسافت سئوالات شبیه سازی شده نیز مطرح می شود و از شما خواسته می شود که یک GPO را به یوزر ها و یا کامپیوتر های مناسب خود اعمال کنید.

من شدیدا به شما پیشنهاد می کنم که یک لابراتوار مجازی برای خود آماده کنید و با کنسول GPMC بخوبی تمرین کنید. GPO های مختلفی را تست کنید و روی یوزر ها و همچنین کامپیوتر ها اعمال کنید ، به مشکل بخورید و روی مشکل کار کنید تا آنرا برطرف کنید تا بخوبی کار با کنسول Group Policy و چم و خم کار با آن دستتان بیاید.

GPO ها از دو قسمت تشکیل شده اند : Group Policy Container یا GPC و Group Policy Template یا GPT. خب GPC ها درون کنسول AD U&C قرار دارند اما بصورت پیش فرض نمیتوانید آنها را مشاهده کنید. GPC ها به عنوان یک نقطه مرجع برای GPT ها ایفای نقش می کنند و تنظیمات Template یا بعبارتی قالب تنظیمات GPO ی اعمال شده را در خود ذخیره می کند.

GPT در دامین کنترلر قرار دارد و در داخل پوشه SYSVOL ذخیره می شود. GPC و GPT را با توسط شناسه منحصر بفرد آن یا بعبارتی توسط Unique ID آن میشناسیم و در اصطلاح فنی به آن GUID یا Global Unique IDentifier نیز گفته می شود. GPT ها همچنین دارای یک Version Number هستند که هر بار که روی GPO تغییراتی اعمال شود این شماره Version افزایش می یابد. پس یکی از دلایل اعمال نشدن GPO ی تغییر یافته میتواند این باشد که Version Number مربوط به آن GPO آپدیت نشده و GPO ی قدیمی همچنان دارد به یوزر یا کلاینت اعمال می شود.

اولویت اعمال شدن Group Policy را در نظر داشته باشید

از آنجا که Group Policy قلب تپنده ی Active Directory است پس بدیهی است که ارتباط بسیار بسیار نزدیکی با اکتیودایرکتوری دارد. ساختار اکتیودایرکتوری بصورت سلسله مراتبی است و این سلسله مراتب در Group Policy و مکانیزم کاریش در اکتیودایرکتوری نیز باید رعایت شود. همیشه این جمله را به خاطر داشته باشید : سلسله مراتب یعنی رعایت اولویت ها. GPO ها بر اساس اولویت های زیر اعمال می شوند. این اولویت ها را از بیشتر به کمتر برای شما نوشته ایم :

  1. Each subsequent nested OU
  2. Domain
  3. Site level
  4. Local level

با توجه به اولویت بندی براحتی میتوان متوجه شد که کدام GPO زودتر اعمال می شود. این مورد یکی از محتمل ترین مواردی است که در آزمون مایکروسافت از آن سئوال طرح می شود. بدین صورت که از شما سئوال می شود که GPO به کدام یکی از Level های مربوطه اعمال می شود ، شما باید Level ای که اولویتش از بقیه بیشتر است را انتخاب کنید.

سطوح دسترسی یا Permissions را بررسی کنید

همانند سایر ابزار های مدیریتی دامین اکتیودایرکتوری بخصوص ابزار قدرتمند Group Policy ، مجوز های دسترسی یا Permission ها برای مدیریت Group Policy اهمیت پیدا می کنند. Permission ها به زبان ساده بیانگر این هستند که چه کسی و چه کاری را میتواند انجام دهد. زمانی که Permission ها را بصورت اشتباه ست شده باشند GPO اعمال نخواهد شد. همچنین باید مطمئن شوید که اسم GPO ACL را بخاطر دارید. بصورت معمول ، ادمین های دامین و گروه Creator Owners دسترسی Full Control به GPO ها دارند.

شما به یوزر های درون اکتیودایرکتوری میتوانید مجوز مدیریت برخی از GPO ها را Delegate کنید. گروه های کاربری Authorized در اکتیودایرکتوری بصورت پیش فرض زمانی که یک GPO ایجاد می شود مجوز های Read و Apply Group Policy دارند. البته شما میتوانید یک Group مشخصی را تعیین کنید که تنها این گروه مجوز های Read و Apply Group Policy را داشته باشد. با Explicit Deny کردن یک گروه هم میتوانید مجوز این کار ها را از گروه مربوطه سلب کنید. البته انجام این کار زیاد پیشنهاد نمی شود.

همچنین به این نکته توجه داشته باشید که در یک سازمان های بزرگ که بیش از یک مدیر شبکه دارد ، مدیران شبکه ناخودآگاه ممکن است اولویت یک GPO را تغییر بدهند و این باعث می شود که GPO به کاربران یا کامپیوتر ها اعمال نشود. به این نکته مهم نیز توجه کنید که اگر Permission های پوشه SYSVOL را تغییر بدهید (که این کار مطلقا پیشنهاد نمی شود) این کار باعث می شود که GPO های شما تحت تاثیر این کار قرار بگیرند و Policy ها اعمال نشوند.

Synchronization و Replication مهم هستند

همانطور که در مقاله قبلی نیز اشاره کردیم ، GPO ها از دو قسمت GPC و GPT ساخته می شوند. این دو در کنار یکدیگر باعث می شود که Policy در Level مد نظر اعمال شود. با این حال حتما آگاه باشید که اگر GPO ها به درستی بین دامین کنترلر ها Replicate نشود با مشکلات زیادی مواجه می شوید. دلیل اصلی Sync نشدن GPT و GPC مشکل عدم Replicate شدن بین Domain Controller هاست. زمانی که یک GPO ایجاد می شود هر دوی GPT و GPC در دامین کنترلر اصلی یا Primary قرار میگیرند.

زمانی که چندین دامین کنترلر در شبکه داشته باشید GPC از Active Directory Replication استفاده می کند تا بین دامین کنترلر ها Replicate شود اما GPT از File Replication Services یا FRS برای Replicate کردن خود در سطح دامین استفاده می کند.

اما هر دوی این ها از Replication Schedule های متفاوتی استفاده می کنند و این باعث می شود که این دو نتوانند با یکدیگر هماهنگ سازی شوند. به منظور برطرف سازی مشکلات ناشی از عدم GPO Replication میتوانید از ابزار GPRESULT گرافیکی کنسول GPMC برای چک کردن Version Number آنها استفاده کنید. Version Number های GPC و GPT زمانی که GPO تغییر داده شود افزایش یافته می شود.

و زمانی که Version Number ها در دامین کنترلر ها با یکدیگر برابر نباشند پس حتما مشکل از یکجایی آب میخورد. زمانی که یک کلاینت یک Query به سمت دامین کنترلر ارسال می کند تا اگر Policy ای وجود داشت که آنرا از سرور بگیرد و روی خود اعمال کند Version Number ارسالی از سمت دامین کنترلر مقایسه می شود تا مطمئن شود که GPO تغییر کرده است یا خیر ، اگر Version Number یکسان بود کلاینت GPO را Ignore یا از آن صرف نظر خواهد کرد و آن GPO اعمال نخواهد شد.

و زمانی که Version Number متفاوت بود کلاینت آن GPO را از دامین کنترلر Pull می کند و روی خود اعمال می کند. حالا در سناریویی که GPC و GPT با یکدیگر Sync نباشند Version Number در یک سمت برابر و در سمت دیگر متفاوت می باشد و این باعث می شود که GPO روی کلاینت اعمال نشود. و کلاینت ها از آخرین نسخه Version Number برای اعمال کردن Policy ها استفاده می کنند. ابزار مفیدی که برای چک کردن سلامت Active Directory Replication مورد استفاده قرار میگیرد ابزار خط فرمانی REPADMIN است. این ابزار ، ابزار خیلی مهمی است و حتما باید نحوه استفاده از آن را بلد باشید.

تنظیمات و امکانات دیگر در Group Policy که مهم هستند

تعدادی تنظیمات و امکانات اضافی در Group Policy وجود دارد که میتوانید روی GPO Application هایتان اضافه کنید و آنها را به کلاینت ها اعمال کنید. البته این تنظیمات ممکن است موجب دردسر بیشتر در زمان GPO Troubleshooting شود. یکی از این تنظیمات به نام Slow Link Detection معروف است. Slow Link Detection برای تست سرعت بین کلاینت و سرور طراحی شده است. اگر سرعت بین کلاینت و سرور مناسب بود Policy اعمال خواهد شد در غیر این صورت اعمال نخواهد شد.

طبیعی است که برای جلوگیری از مصرف بیش از پهنای باند شبکه این مکانیزم توسط مایکروسافت طراحی شده است. به شما دوستان اکیدا توصیه می کنم که حتما از این مورد اطمینان حاصل کنید که کدام Policy هایتان تحت تاثیر Slow Link Detection هستند. این مورد بدون شک یکی از موارد امتحانی هست که در آزمون مایکروسافت از آن سئوال مطرح خواهد شد ، بدین صورت که یک دامین در سطح چند Site با سرعت WAN Link های مختلف تقسیم شده است و GPO در یکی از آن Site ها اعمال نمی شود.

قابلیت دیگری که در GPO وجود دارد این است که برای یک OU میتوانید مشخص کنید که از OU های بالاسری Policy ها را Inherit نکند ، شما این قابلیت را با فعال سازی Block Inheritance روی OU مربوطه میتوانید فعال کنید. همچنین GPO ی مربوطه را میتوانید Enforce کنید تا به Child OU ها Override نشود. استفاده از این دو قابلیت در GPO زیاد پیشنهاد نمی شود زیرا که میتواند باعث اعمال نشدن Policy ها از OU های بالاسری شود. یکی دیگر از ابزار های مهم Group Policy که من از آن خیلی خوشم می آید Loopback Processing است. Loopback Processing دو حالت اجرایی دارد که یکی از آن ها Merge mode و دیگری Replace mode است.

شما باید با توجه به نیازتان یکی از این دو حالت را انتخاب کنید. هدف از طراحی Loopback Processing این است که کامپیوتر Lock Down شده همچنان Lock Down باقی بماند ، بدون توجه به آنکه چه یوزری روی آن سیستم لاگین کرده است. این را همیشه بخاطر داشته باشید که Policy ابتدا به Computer و سپس به User اعمال می شود .

زیرا هنگام Startup سیستم Policy مربوط به Computer Configuration اعمال می شود و سپس بعد از اینکه یوزر لاگین کرد تنظیمات یا پالسی های User Configuration به سیستم اعمال می شود. فرض کنید که یک یوزر پای کامپیوتری نشسته و به آن لاگین می کند اگر Loopback Processing را فعال کرده باشید و حالت Replace mode را انتخاب کرده باشید User Policy ها بر Computer Policy ها تقدم یا اولویت پیدا می کنند اما اگر حالت Merge mode را انتخاب کرده باشید Policy های Computer بر Policy های User اولویت پیدا می کنند.

ابزار ها و Log های دیگر در Group Policy

یکی از ابزار های اصلی برای عیب یابی Group Policy ابزار خط فرمانی GPresult است. این ابزار خروجی جامع و کاملی از تنظیمات GPO ها تهیه می کند و به ما نمایش می دهد. نسخه GUI یا گرافیکی این ابزار ، ابزار RSoP یا Resultant Setting of Policy است که خود بخشی از کنسول GPMC است. به شما پیشنهاد می کنم که با خروجی های این دو ابزار بخوبی آشنا شوید و خوب یادش بگیرید ، زیرا که در عیب یابی و رفع اشکال GPO ها بسیار بسیار کاربردی و موثر است.

همچنین برای تحلیل Log های GPO ها میتوانید از ابزار Event Viewer استفاده کنید. در سمت کلاینت Entry هایی با عنوان USERENV در Log های مربوط به Group Policy در بخش Application در کنسول Event Viewer وجود دارد که میتوانید از آن استفاده کنید و GPO ها را راحت تر عیب یابی کنید. در سمت سرور نیز میتوانید با تحلیل Log های File Replication هرگونه ارور های NTFRS را Troubleshoot کنید ، که میتواند بخش GPT از GPO تان را تحت تاثیر قرار دهد.

موارد دیگری که برای عیب یابی GPO باید در نظر بگیرید

یک اصل در شبکه حاکم است که برای Troubleshooting باید خارج از چهارچوب فکر کنید. همیشه قرار نیست که با استفاده از ابزار های خود Group Policy اقدام به عیب یابی و رفع اشکال GPO ها کنید. برای مثال مواردی که در فکر خود باید در نظر بگیرید این هست که آیا دامین سالم هست ؟ آیا DNS به درستی کار می کند ؟ تاریخ و زمان کلاینت با سرور یکسان است ؟ آیا سیستم ها در شبکه دامین به درستی نصب و پیکربندی شده اند ؟ این یک تصور غلط است که دامین کنترلر ها Policy ها را به کلاینت ها ارسال می کنند.

بلکه این کلاینت ها هستند که Policy ها را از دامین کنترلر ها Pull یا دریافت می کنند. پس اگر کلاینت Query بگیرد و دامین کنترلر جواب ندهد مقصر کلاینت نیست بلکه یک مشکلی برای دامین کنترلر اتفاق افتاده است. خب بهتر است که یک نگاهی هم به پیشینه Group Policy بیندازیم.

در ویندوز سرور 2008 شما میتوانستید در سطح OU بیایید و Account Policies تنظیم کنید اما در ویندوز سرور 2003 تنها میتوانستید Account Policies را در سطح Domain راه اندازی کنید. نکته مهم بعدی در مورد GPO ها که باید به آن اشاره کنم این است که شما میتوانید Precedence مربوط به GPO ها را تغیر دهید و مشخص کنید کدام یکی از دیگری در اعمال شدن برتری یا تقدم داشته باشد.

ممکن است بنشینید و پیش خود بگویید که Group Policy یک دردسر بزرگ در شبکه است و ترجیح میدهم روی صد ها کلاینت بصورت دستی تک تک Policy را تنظیم کنم !!! واقعا دوست دارید این کار را انجام دهید ؟! من که به شخصه دوست ندارم !

به هر حال چه شما دوست داشته باشید چه دوست نداشته باشید Group Policy با تمامی ضعف ها و دردسر هایش یک نقطه قوت برای اکتیودایرکتوری محسوب می شود و یادگیری عیب یابی و رفع اشکال آن از یادگیری خود Group Policy بسیار بسیار بسیار مهم تر است زیرا که در حالت خیلی ساده احتمال اینکه یک GPO را ایجاد کنید و انتظار این را داشته باشید که آن GPO به سادگی و بدون دردسر به کلاینت اعمال می شود خیلی کم است .

البته نکات GPO Troubleshooting به همین موارد محدود نمی شود و شاید رفع اشکال GPO بسیار پیچیده تر از آن باشد که در این سری از مقالات به آنها اشاره کردیم. اما جای نگرانی نیست چون ما مهمترین و شایع ترین موارد را به شما جهت رفع اشکال Group Policy آموزش دادیم و از شما این انتظار میرود که آنها را بخوبی یاد بگیرید. امیدوارم از خواندن این سری مقالات لذت برده باشید.


امیرحسین کریم پور
امیرحسین کریم پور

مدیر ارشد توسینسو و متخصص سرویس های مایکروسافت

امیرحسین کریم پور ، مدیر ارشد توسینسو ، متخصص شبکه ، تخصص در حوزه سیستم عامل های کلاینت و سرور مایکروسافت و سرویس های مربوطه ، سیستم عامل لینوکس و... ، سابقه کار با سازمان ها و شرکت های مختلف در زمینه سرویس های مایکروسافت در قالب پروژه ، مشاوره و آموزش. علاقه مند به حوزه امنیت اطلاعات و تست نفوذ سنجی

نظرات