1— مقدمه
چکیده
یک
دایرکتوری (Directory) مجموعهای ذخیرهشده از اطلاعات دربارهی
اشیایی است که به نوعی با یکدیگر مرتبطند. یک سرویس دایرکتوری (Directory Service) تمامیاطلاعاتی را که برای استفاده و مدیریت این
اشیا لازم است، در یک محل متمرکز ذخیره نموده و بدین ترتیب
نحوهی یافتن و مدیریت این منابع را تسهیل میبخشد. یک Directory Service زمینهای را فراهم میآورد تا دسترسی به منابع در سطح شبکه به بهترین نحو ممکن سازمان یابد . کاربران و مدیران
ممکن است که نام دقیق یک شئ مورد
نیاز را ندانند، اما با دانستن یک یا چند ویژگی از یک شئ و با استفاده از Directory Service میتوانند لیستی از اشیا با ویژگی مورد نظر
خود را جستجو کنند.
در این بخش به معرفی سرویس Active Directory در Windows Server 2003 پرداخته و به صورت مقدماتی با خصوصیات، اشیا موجود
و اجزای آن (فیزیکی و منطقی) آشنا میشویم.
کلمات
کلیدی:
Active Directory، Domain یا دامنه، Tree یا درخت، Forest یا جنگل، Organizational Units یا واحدهای سازمانی، Domain Controller،
و سایت.
آشنایی
با سرویس دایرکتوری موجود در ویندوز سرور 2003
(Active Directory)
Active Directory یک سرویس دایرکتوری بوده که در Windows Server 2003 قرار داده شده است. Active Directory شامل یک دایرکتوری بوده که اطلاعات مربوط به شبکه را ذخیره میکند، علاوه بر آن دارای تمامی سرویسهایی است که اطلاعات را قابل استفاده کرده و در دسترس قرار میدهد.
Active Directory ویژگیهای زیر را ارائه میکند:
. ذخیرهی
متمرکز داده (Centralized data store)
. مقیاس
پذیری (Scalability)
. قابلیت
توسعه (Extensibility)
. قابلیت
مدیریت (Manageability)
. ستفاده و
تمرکز بر سیستم نامگذاری دامنه (Integration with Domain Name System)
. مدیریت
تنظیمات سرویس گیرنده (Client configuration management)
. مدیریت
بر مبنای سیاست (Policy-based administration)
. تکرار
اطلاعات (Replication of information)
. شناسایی
ایمن و انعطاف پذیر (Flexible, secure authentication and
authorization)
. برنامهها
و زیرساختارهای مبتنی بر دایرکتوری
Directory-enable applications and infrastructures))
. تطبیق با
سایر سرویسهای دایرکتوری
(Interoperability with other directory services)
. ترافیک
رمزگذاری شده و امضا شده LDAP (Signed and
encrypted LDAP traffic)
اشیای موجود در Active Directory
هر دادهای
که در Active Directory ذخیره میشود، به صورت اشیایی (Objects) متفاوت سازمان مییابد. یک شئ مجموعه مجزایی از
صفات است که منابع شبکه را مشخص میکند.
صفات (Attributes)، خصوصیات اشیای موجود
در یک دایرکتوری را شامل میشود. به
عنوان نمونه صفات یک User account (حساب کاربر) میتواند شامل نام، نام خانوادگی و نام Log on برای آن کاربر باشد.
در حالی که صفات یک computer account ممکن است که شامل نام و مشخصات آن شئ باشد.
بعضی از
اشیا ، که از آنها به نام Container یاد میشود ، خود دربردارنده اشیایی دیگرند. به
عنوان مثال یک domain، خود یکcontainer است که میتواند شامل اشیایی مانند حساب
کاربران و کامپیوترها باشد. در شکل 1 پوشهی کاربران، یکcontainer بوده که دارای اشیای مربوط به حساب کاربران است.
شکل 1 : اشیا و صفات در Active Directory
اجزای Active Directory
برای
ایجاد یک ساختار دایرکتوری، اجزای زیادی مورد نیاز است.
این اجزا به دو دستهی منطقی و فیزیکی تقسیم میشوند.
اجزای منطقی عبارتند از :
•دامنهها (Domains)
•واحدهای
سازمانی (Organizational Units)
•درختها (Trees)
•جنگلها (Forests)
اجزای فیزیکی
که ساختار فیزیکی Active Directory را شکل میدهند عبارتند از :
•سایتها (Physical Subnets)
•Domain Controllerها (DC)
ساختار
منطقی
در Active Directory، میتوان منابع را به صورت یک ساختار منطقی سازمان داد (ساختاری که منعکس
کنندهی مدلهای سازمانی باشد). گروهبندی منطقی منابع این
امکان را فراهم میآورد تا یک منبع با استفاده از نامش به سادگی پیدا شود و این امر ما را از یادآوری
محل فیزیکی منبع بینیاز میسازد.
در شکل 2 رابطهی domainها، OUها، treeها و forestها دیده میشود.
شکل2 :
رابطه میان اجزای منطقی Active Directory
1. دامنه Domain
هستهی
اصلی ساختار منطقی در Active Directory، domain یا دامنه بوده که قادر به ذخیرهی میلیونها
شئ است. تمامیdomainها در دو ویژگی زیر
مشترکند.
•تمام
اشیای شبکه در یک Domain قرار دارند و هر Domain اطلاعات مربوط به
همان Domain را داراست.
•Domain یک محدودهی امنیتی است. دسترسی به اشیای Domainها از طریق لیستهای کنترل دسترسی یا ACL (Access Control List)
میسر میشود. ACLها شامل مجوزهایی هستند که
مرتبط با اشیای مورد نظر است. این مجوزها بیان میدارند که کدام یک از کاربران میتوانند بهیک شی دسترسی داشته باشند و این دسترسی از چه
نوع و در چه سطحی است. در خانوادهی Windows Server 2003، اشیا شامل فایلها، پوشهها، اشتراکات، چاپگرها و
سایر اشیای Active Directory است. این نکته میبایست در نظر گرفته شود که هیچ یک از تنظیمات و سیاستهای امنیتی مانند اختیارات
مدیریتی، سیاستهای امنیتی و ACLها نمیتوانند از یک Domain به Domain دیگر تغییر یابند. این امر بدان معنا است کهیک مدیر در سطح یک Domain تنها دارای اختیاراتی
است که وی را محدود به وضع سیاستها در همان Domain میکند.
سطح
عملیاتی دامنه (Domain Functional Level) که تحت عنوان حالت دامنه (Domain Mode) در Windows 2003 شناخته میشود، ویژگیهای خاصی را در پهنه دامنه (Domain-Wide) و در محیط شبکه فراهم میآورد.
چهار سطح
عملیاتی دامنه وجود دارد:
•Windows
2000 mixed
•Windows 2000 native
•Windows 2003 interim
•Windows Server 2003
2003 با Windows
2000 را فراهم میآورد.
سطح
عملیاتی “Windows 2003 interim” ارتباط DCهای Windows Server 2003 با DCهای NT4 را ممکن میسازد.
سطح
عملیاتی “Windows Server 2003” تنها DCهای 2003 را با
یکدیگر مرتبط میسازد.
تنها در
زمانی میتوان سطح عملیاتی یک Domain را بالا برد که تمامیDomain
Controllerها در آن Domain نسخههای مناسبی از Windows را اجرا کنند. به عنوان نمونه اگر سطح عملیاتی Domain “Windows Server
2003” باشد، در این صورت میبایست که تمامیDCها در این Domain دارای سیستم عامل windows server 2003 باشند.
2. Organization
Units)OUs) واحدهای سازمانی
OU خود یک container بوده که اشیای یک دامنه (Domain) را در گروههای مدیریتی سازمان دهی میکند. یک OU برای اعمال و اجرای وظایف مدیریتی (مانند مدیریت منابع و
کاربران) به کار رفته و میتواند شامل اشیایی مانند حسابهای کاربران، گروهها،
کامپیوترها، چاپگرها، برنامهها، فایلهای به اشتراک گذاشته شده و حتی سایر OUها از همان domain باشد. ساختار سلسله
مراتبی یک OU در یک domain مستقل از ساختار سلسله مراتبی OU در domainهای دیگر است. میتوان با اضافه کردن یک OU در داخل OU دیگر (nesting)، مدیریتی سلسله
مراتبی را سازمان داد. در شکل 3، domain با نام microsoft.com منعکس کنندهی سازمانی بوده که دارای سه OU است : US،Orders و Disp.
Orders و Disp در واحد سازمانی (OU) US آشیانهای شدهاند.به صورت پیشفرض تمامیاشیای فرزند (OUهای Disp وOrder)
مجوزهای
خود را از والدین به ارث میبرند (US OU). ایجاد مجوز در سطوح
بالاتر و استفاده از امکانات وراثت، Windows وظایف مدیریتی را کاهش میدهد.
شکل 3 : استفاده از OU برای به عهده گرفتن وظایف مدیریتی
3. درختها Trees
یک درخت(Tree)، سازمان دهی یا گروهبندی منطقی یک یا چند دامنه بوده که از طریق ایجاد یا
اضافه کردن چند دامنهی فرزند (Child Domain) به دامنهی پدر (Parent Domain) فعلی به وجود میآید. دامنهها
در یک درخت، دارای یک فضای اسمی(Contiguous Namespace) یا ساختار نامی سلسله مراتبی مشترک هستند. بر اساس استانداردهای DNS، نام یک دامنهی فرزند، ترکیبی از نام خود دامنهی فرزند به همراه نام دامنهی پدر است. در
شکل 4 Domain با نام microsoft.com به عنوان دامنهی
والد، و Domainهای us.microsoft.com و uk.microsoft.com دامنههای فرزند آن هستند. علاوه بر آن خود دامنهی uk.microsoft.com دارای یک دامنهی فرزند با نام sls.uk.microsoft.com است (به روند دنبالهوار
نام دامنهها دقت کنید).
شکل 4 : A Domain Tree
4. جنگلها Forests
یک جنگل (Forest) دستهبندی یا
سازماندهی سلسله مراتبی از یک یا چند درخت (Domain Tree) کاملاً مستقل و مجزا از هم است. یک جنگل دارای ویژگیهایی است:
درختها در یک جنگل با توجه به دامنههایشان، دارای ساختار نامیمتفاوت هستند.
دامنهها در یک جنگل به صورتی کاملاً مستقل
از هم عمل میکنند، ولی یک جنگل امکان ارتباط در تمامیسازمان
را برقرار میسازد.
در شکل 5
دو درخت microsoft.com و msn.com از یک جنگل دیده میشوند. میتوان مشاهده کرد که فضای نامیدر هر درخت دنبالهوار است.
شکل5: A forest of Trees
سطح عملیاتی جنگل (Forest Functional Level)، ویژگیهای خاصی را در
سطح جنگل و در محیط شبکه فراهم میآورد(Forest-wide Active
Directory Features) .
سه سطح
دسترسی جنگل وجود دارد:
•Windows
2000 ( پیش فرض )
•Windows 2003 interim
•Windows Server 2003
سطح عملیاتی “Windows Server 2003” تنها DCهای 2003 را با
یکدیگر مرتبط میسازد.
تنها در
زمانی میتوان سطح عملیاتی یک Forest را بالا برد که تمامیDomain
Controllerها در آن جنگل نسخههای مناسبی از Windows را اجرا کنند. به عنوان نمونه اگر سطح عملیاتی “Windows Domain Server
2003” باشد، در این صورت میبایست که تمامیDCها در این جنگل دارای سیستم عامل windows server 2003 باشند.
شکل 6 :
رابطه بین سایت و دامنه
2.(Domain Controller )DC
یک Domain Controller کامپیوتری است که دارای سیستم عامل Windows Server باشد و یک نسخه از دایرکتوری دامنه (Local Domain Database) یا replica را در خود ذخیره کند.
هر دامنه میتواند بیش از یک Domain Controller داشته باشد. یک Domain Controller تنها میتواند بهیک دامنه
سرویس دهد. یک DC وظیفهی شناسایی کاربرانی را که تلاش برای log on به دامنه دارند، را
بر عهده دارد. علاوه بر آن سیاستهای امنیتی برای یک دامنه را نیز تنظیم و
حفظ میکند.
2— مقدمه (ادامه)
در ادامهی مطالب بیان شده، در
این بخش با مفاهیم پایه در Active Directory آشنا میشویم.
کلمات
کلیدی: تکرار یا Replication،Replica ،
Partition،
Global Catalog،
سیاستهای گروهی یا Group Policies،
و ارتباطات مطمئن یا Trust Relationships
درک
مفاهیم Active Directory
در
خانوادهی ویندوز سرور 2003، با مفاهیم جدیدی در ارتباط با Active Directory روبرو میشویم. این مفاهیم شامل
موارد زیر است :
•تکرار (Replication)
•ارتباطات مطمئن (Trust Relationships)
•سیاستهای
گروهی (Group Policies)
انعکاس یاReplication
کاربران
و سرویسها میبایست در هر زمانی و از هر کامپیوتری در domain، به اطلاعات دایرکتوری دسترسی داشته باشند.
انعکاس (Replication) این امر را تضمین مینماید که هر تغییری در یک domain controller در سایر DCها از همان domain نیز منعکس میشود. اطلاعات دایرکتوری در domain controllerهای داخل و بین سایتها تکرار میشود.
چه اطلاعاتی تکرار میشود ؟
آنچه که
در دایرکتوری ذخیره میشود (در فایل Ntds.dit) به صورت منطقی به
چهار دسته تقسیم میشود. به هر یک از این دستههای اطلاعاتی، لفظ directory partition اطلاق میگردد. یک پارتیشن دایرکتوری را با عنوان متن نامی (naming context) نیز میشناسند.
دایرکتوری دارای پارتیشنهای زیر است:
1. Schema Partition : این پارتیشن اشیایی را مشخص میسازد که میتوانند در دایرکتوری ساخته شوند. علاوه بر آن، این پارتیشن ویژگیها و صفات این اشیا را نیز مشخص میسازد. این اطلاعات و دادهها در کل یک forest مشترک بوده و در تمامیDCهای موجود در یک forest تکرار میشود.
2. Configuration Partition : این پارتیشن ساختار منطقی چیدمان Active Directory را بیان میدارد و شامل دادههایی دربارهی ساختار domain و یا توپولوژی تکرار است. این دادهها نیز در تمامیdomainهای موجود در یک forest مشترک بوده و در تمامیDCهای موجود در آن جنگل تکرار میشوند.
3. domain را تعریف میکند. این دادهها و اطلاعات مخصوص بهیک domain بوده و منحصر به فرد در همان domain است و بنابراین در دیگر domainهای موجود در یک forest تکرار نخواهد شد.
4. Application Directory Partition : این پارتیشن شامل اطلاعات پویای کاربردی است. ذخیرهی این اطلاعات در این پارتیشن موجب کنترل حوزهی تکرار و محل نسخههای تکرار (replica) میگردد و این امر کوچکترین تأثیر نامطلوبی در کارائی شبکه را به دنبال نخواهد داشت. این پارتیشن میتواند هر نوع شی را دارا باشد (به غیر از اشیای امنیتی که شامل کاربران گروهها و کامپیوترها میباشد.) بدین ترتیب داده میتواند به صورتی مشخص به DCهایی هدایت شود که برای کارهای مدیریتی در نظر گرفته شدهاند و این امر ترافیک غیر ضروری تکرار (Replication) را کاهش میدهد.
یک Domain Controller موارد زیر را ذخیره کرده و تکرار مینماید :
•دادهی
موجود در schema partition در سطح forest
•دادهی
موجود در configuration partition به تمامیdomainها در سطح یک forest
•دادهی
موجود در domain partition (تمامیاشیای دایرکتوری و مشخصات آنها) برای همان domain. این دادهها در تمامیdomain controllerهای اضافی موجود در آن domain تکرار خواهد شد. به
منظور یافتن بهینهی اطلاعات ، بخشی از نسخهی تکرار (replica) که شامل صفاتی از تمام اشیایی است که به
صورتی دائمیدر domain مورد استفاده قرار میگیرند، در کاتالوگ سراسری (Global Catalog) نیز تکرار میگردد. کاتالوگ سراسری محلی مرکزی برای نگهداری اطلاعات در مورد اشیا در یک درخت یا جنگل است.
یک global catalog اطلاعات زیر را ذخیره و تکرار مینماید :
•دادههای
موجود در schema partition برای یک forest
•دادههای
موجود در configuration partition برای تمامیdomainها در یک forest
•بخشی از replica که شامل صفاتی از تمام اشیای دایرکتوری است که
معمولا در یک forest مورد استفاده قرار میگیرند ( این اطلاعات تنها بین Global Catalogها تکرار میشود).
•تمامیreplica که شامل کل صفات تمام اشیای دایرکتوری در domainهایی است که کاتالوگ سراسری در آن قرار دارد.
اطلاعات
چگونه منعکس میشود؟
Active Directory اطلاعات را به دو صورت منعکس میکند : intrasite (در داخل یک سایت) و intersite (بین سایتها) .
انعکاس
در داخل سایت (Intrasite Replication)
در داخل
یک سایت، سرویسی از ویندوز سرور 2003 تحت عنوان Knowledge Consistency
checker که به اختصار آن را KCC مینامیم، به صورت
خودکار یک توپولوژی برای تکرار در میان domain controllerها در همان دامنه و با استفاده از یک ساختار حلقه ایجاد میکند. KCC یک پروسهی خودکار
است که در تمامیDCها اجرا میشود. توپولوژی اعمال شده مسیری برای به روز رسانیهای
دایرکتوری فراهم میآورد تا از یک DC به DC دیگر جریان یابد و این انتقال تا زمانی ادامه مییابد که DCهای موجود در یک سایت به روزرسانیهای
دایرکتوری را دریافت نمایند . KCC تصمیم میگیرد که
کدام یک از سرورها برای انجام عمل انعکاس با یکدیگر مناسبتر هستند و سایر DCها را به عنوان شرکای انعکاس
آنها در نظر میگیرد. این تصمیمگیری بر اساس مواردی چون نحوهی اتصال، سابقهی
انعکاس موفق و بر مبنای تطابق با نسخههای انعکاس جزئی و یا کامل است. هر DC میتواند بیش از یک شریک برای انعکاس داشته باشد. بعد از آن KCC اشیای ارتباطی را میسازد که ارتباط میان شرکای انعکاس را نمایش خواهد داد.
ساختار
حلقه تضمین میکند که حداقل دو مسیر انعکاس از یک DC به DC دیگر وجود دارد. به همین
دلیل اگر یکی از DCها از کار بیفتد، عمل انعکاس (Replication) به سایر DCها ادامه خواهد یافت. شکل 7 توپولوژی انعکاس در داخل سایت
را نشان میدهد.
شکل 7 : Intrasite replication topology
KCC توپولوژی انعکاس در داخل سایت را هر پانزده دقیقهیکبار بررسی
کرده و از کارکرد آن اطمینان حاصل میکند. با اضافهیا خارج کردن یک DC از شبکه، KCC توپولوژی انعکاس را
مجددا پیکربندی میکند تا این تغییرات در آن منعکس شود.
هنگامیکه
بیش از هفت Domain controller بهیک سایت اضافه میشوند، KCC اشیای ارتباط اضافی
را در ساختار حلقه دخیل میکند تا این اطمینان حاصل شود که اگر تغییری در هر یک
از DCها ایجاد شود، هیچ یک از DCها بیش از سه Hop (گام) از DC دیگر فاصله نداشته
باشند. این ارتباطات بهینه به صورت تصادفی ایجاد میشوند و الزامیبرای ساخت
آنها در هر DC نیست. شکل 8 این مورد را نشان میدهد.
شکل 9: Intersite Replication Topology
رابطه
اعتماد Trust Relationship
یک Trust، اتصالی میان دو
دامنه است که در آن دامنهی اعتماد کننده (trusting domain)، اطلاعات مربوط به
دسترسی و شناسایی را از دامنهی مورد اعتماد (trusted domain) کسب میکند.دو دامنه وجود دارند که موجب برقراری یک رابطهی مطمئن و یا یک trust میشوند: دامنهی اعتماد کننده (trusting) و دامنهی مورد اعتماد (trusted). دامنهی اعتماد کننده
دامنهای است که منابع را در اختیار داشته و به سایر دامنهها برای استفاده از این منابع اعتماد دارد. دامنهی مورد اعتماد در حقیقت
استفاده کننده از منابع است. این مسئله در شکل زیر بهتر
نمود مییابد.
شکل 10: دامنهی اطمینان کننده و دامنهی مورد اعتماد قرار گرفته با یک اعتماد یک طرفه
trustها ویژگیهای زیر را دارا هستند:
•چگونگی
ایجاد (Method of creation): trustها میتوانند به صورت صریحexplicitly)) یا تلویحی (implicitly) ساخته شوند. هیچ trustی نمیتواند به هر دو صورت ساخته شود.
•ترانهادگی (Transitivity): یک trust ترانهاده یعنی آنکه
اگر Domain A به Domain B و Domain B به Domain C اعتماد یا trust دارد، آنگاه Domain A نیز به Domain C اعتماد میکند. یک trust غیر ترانهاده یعنی آن که اگر Domain A به Domain B و Domain B به Domain C اعتماد یا trust دارد، بین Domain A و Domain C هیچ ارتباط مطمئن یا Trust برقرار نیست.
•جهت (direction): trustها میتوانند یک طرفه(one-way) یا دو طرفه(two-way) باشند. در یک اعتماد یک طرفهDomain A به Domain B trust دارد. در یک trust دو طرفه اگر Domain A به Domain B اعتماد داشته باشد، آنگاه Domain B نیز به Domain A اعتماد دارد.
•ویندوز
سرور 2003 از انواع trustهایی که در زیر آمده است پشتیبانی میکند.
•Tree-root trust
•Parent-child trust
•Shortcut trust
•External trust
•Forest Trust
•Realm Trust
Parent-Child trust با ایجاد یک درخت و به صورت اتوماتیک میان تمامیدامنههای
موجود در آن درخت به وجود میآید. با اضافه شدن یک دامنهی جدید بهیک
درخت، پروسهی ایجاد اتوماتیک Trust صورت میپذیرد. این
نوع trust دو طرفه و ترانهاده است.
Tree-Root Trust نیز به صورت اتوماتیک و با اضافه شدن یک درخت به ساختار جنگل (a new root tree) برقرار میشود شکل
زیر این Trustها را نشان میدهد. این
نوع trust نیز دو طرفه و دارای خاصیت ترانهادگی است.
شکل 11:
ساختار دامنه به همراه دو نوع Trust : parent-child و tree-root