بررسی فرآیند تغییر رمزعبور کامپیوتر در اکتیودایرکتوری
بارها پیش آمده است که مدیران Active Directory را دیدهام که دیدگاه اشتباهی در مورد Machine Account Password یا رمزعبور کامپیوتر برای ورود به Active Directory دارند. به همین خاطر میخواهم در مقالهای بیشتر مواردی که در مورد آنها اشتباه وجود دارد. را تصحیح کنم. یک مقاله در سال ۲۰۰۹ توسط NedPyle در آدرس زیر نوشته شده است.
Machine Account Password Process [http://blogs.technet.com/b/askds/archive/2009/02/15/test2.aspx]
این مقاله ترجمهای آزاد از مقاله NedPyle میباشد. در بخشی نیز به آن مطالبی افزوده شده است. این مقاله به صورت سوال و جواب نوشته شده است تا بتواند تاثیر بیشتری داشته باشد.
سوال: چند بار رمزعبور کامپیوتر در Active Directory تغییر میکند. آیا در سیستم عاملهای مختلف این مقدار متفاوت میباشد؟
جواب: تغییر رمزعبور کامپیوترها هر ۳۰ روز یک بار اتفاق میافتد که این مقدار قابل تغییر میباشد. از ویندوز ۲۰۰۰ تا به حال این مقدار ۳۰ روز بوده است. برای تغییر این مقدار میتوانید از GPO استفاده کند. این GPO باید به کامپیوترهایی اعمال شود که میخواهید زمان تغییر رمزعبور آنها کمتر یا بیشتر باشد. این GPO در مسیر زیر وجود دارد.
Computer ConfigurationWindows SettingsSecurity SettingsLocal PoliciesSecurity Options
این مقدار را با نام Domain member: Maximum machine account password age پیدا خواهید کرد. هر مقداری که به آن بدهید زمانی خواهد بود که کامپیوتر باید درخواست تغییر رمز عبور خود را به Active Directory بدهد.
سوال: در صورتی که کامپیوتری رمز عبور خود را تغییر ندهد آیا دیگر نمیتواند به Network وارد شود؟
جواب: باید به یاد داشته باشیم که رمزعبور کامپیوتر با رمزعبور کاربر متفاوت است. در صورتی که کامپیوتری درخواست تغییر رمزعبور خود را ندهد ساختار AD نمیتواند آن کامپیوتر را مجبور به تغییر پسورد کند. در حقیقت درخواست تغییر رمزعبور کامپیوتر توسط همان کامپیوتر به AD داده میشود نه اینکه AD از آن درخواست تغییر رمزعبور را داشته باشد. تا زمانی که حساب کاربری کامپیوتر غیرفعال و یا پاک نشده باشد میتواند با رمزعبور خود با AD مرحله احراز هویت را بگذراند به هیچ عنوان هم اهمیتی ندارد که چه زمانی از آخرین تغییر رمزعبور کامپیوتر گذشته باشد. در صورتی که کامپیوتر برای مدت طولانی خاموش باشد هیچ اتفاقی رخ نخواهد داد. زمانی که کامپیوتر روشن میشود متوجه میشود که رمزعبور آن بیش از ۳۰ روز عمر دارد پس باید فرآیند تغییر آن را آغاز میکند. سرویس Netlogon بر روی کامپیوتر کاربر مسئول این کار خواهد بود. این فرآیند زمانی رخ خواهد داد که کامپیوتر برای مدت زمان زیادی خاموش بوده باشد.
در این فرآیند ابتدا کامپیوتر بوسیله پسورد قبلی با یک Domain Controller ارتباط امنی را شروع میکند. رمزعبور کامپیوتر به صورت locally تغییر داده میشود سپس این تغییر به DC فرستاده میشود. در صورتی که کامپیوتر نتواند کانال امنی را با DC برقرار کند فرآیند تغییر رمزعبور نیز انجام نمیشود.
پارامترهایی که در Netlogon در مورد تغییر رمزعبور وجود دارد به شکل زیر میباشد:
-
ScavengeInterval (default 15 minutes),
-
MaximumPasswordAge (default 30 days)
-
DisablePasswordChange (default off).
در ادامه به بررسی این مقادیر خواهیم پرداخت:
DisablePasswordChange در صورتی که این مقدار فعال باشد از تغییر پسورد توسط کامپیوتر کاربر جلوگیری خواهد کرد. در صورتی که این مقدار بر روی کامپیوتری فعال باشد آن کامپیوتر درخواست تغییر پسورد را نخواهد کرد. این مقدار را میتوان در registry سیستم و یا GPO پیدا کرد. در زیر دو مسیر آورده شده است.
Key = HKLMSYSTEMCurrentControlSetServicesNetLogonParameters Value = DisablePasswordChange REG_DWORD Default = 0 Group policy setting: Computer Configurationwindows SettingsSecurity settingsLocal PoliciesSecurity Options Domain member: Disable machine account Password changes
نکته: استفاده از این تنظیم به هیچ عنوان پیشنهاد نمیشود چون باعث خطرات امنیتی و لو رفتن کانال امن بین کامپیوتر و DC میشود.
ScavengeInterval زمان اجرای فرآیند پاکسازی را مشخص میکند. این فرآیند در صورت امکان مسئول تغییر رمزعبور کامپیوتر میباشد. این مقدار را میتوان در registry سیستم و یا GPO پیدا کرد. در زیر دو مسیر آورده شده است.
HKLMSYSTEMCurrentControlSetServicesNetLogonParameters Value: ScavengeInterval REG_DWORD 60 to 172800 Seconds (48 hours) Default: 900 (15 minutes) Group policy setting: Computer ConfigurationAdministrative TemplatesSystemNetlogonScavenge Interval
MaximumPasswordAge مشخص کننده زمانی میباشد که کامپیوتر نیاز به تغییر رمز عبور خود دارد. این مقدار را میتوان در registry سیستم و یا GPO پیدا کرد. در زیر دو مسیر آورده شده است.
Key = HKLMSYSTEMCurrentControlSetServicesNetLogonParameters Value = MaximumPasswordAge REG_DWORD Default = 30 Range = 1 to 1,000,000 (in days) Group policy setting: Computer Configurationwindows SettingsSecurity settingsLocal PoliciesSecurity Options Domain member: Maximum machine account Password age
زمانی که سرویس Netlogon فعال میشود به همراه آن scavenger نیز بیدار میشود. در صورتی که عمر رمزعبور کمتر از MaximumPasswordAge باشد scavenger به خواب میرود و تنظیم بیدار شدن خود را زمانی میگذارد که رمزعبور کاربر به مقدار تعیین شده در MaximumPasswordAge برسد. در غیر این صورت scavenger شروع به تغییر رمزعبور خواهد کرد. در صورتی که نتواند با DC حرف بزند دوباره به خواب رفته و ۱۵ دقیقه بعد دوباره برای تغییر رمزعبور تلاش خواهد کرد. مقدار scavenger میتواند تغییر کند.
سوال: کامپیوترها چگونه از رمزعبور خود استفاده میکنند؟
جواب: هر کامپیوتر ویندوزی اطلاعات مربوط به رمزعبور کامپیوتر فعلی و قبلی خود را نگهداری میکند.. زمانی که دو کامپیوتر میخواهند با یکدیگر احراز هویت شوند اما هنوز رمزعبور جدید را دریافت نکردهاند ویندوز به رمزعبور قبلی اعتماد میکند و از آن استفاده میکند. در صورتی که فرآیند تغییر رمزعبور بیش از دوبار صورت گیرد کامپیوتر مورد نظر امکان دارد نتواند ارتباط برقرار کند و شما پیغام ایرادی را در این زمینه دریافت کنید.
زمانی که کامپیوتر کاربر بررسی میکند و نیاز به تغییر رمزعبور میباشد تلاش میکند تا با domain controller خود ارتباط برقرار کرده تا بتواند رمزعبور خود را تغییر دهد. در صورتی کامپیوتر بتواند ارتباط موفقی با domain controller خود داشته باشد رمزعبور خود را به صورت locally تغییر میدهد. کامپیوتر کاربر ابتدا سعی میکند رمزعبور خود را به صورت locally تغییر دهد سپس این تغییر را بر روی domain controller اعمال کند. در صورتی که domain controller تنظیم شده باشد که تغییر رمزعبور کامپیوتر کاربر را نپذیرد (RefusePasswordChange، تنظیمی است که در GPO مربوط به DC ها تنظیم میشود و تغییر رمزعبور کامپیوتر کاربرها را نمیپذیرد.) در این حالت کامپیوتر کاربر به رمزعبور قبلی که استفاده میکرد برمیگردد. در صورتی که فرآیند تغییر رمزعبور با مشکلی مواجه شود و انجام نشود کامپیوتر کاربر به استفاده از رمزعبور جدید بصورت locally ادامه میدهد. در این حالت فرآیند scavenge به صورت دورهای انجام میشود تا بتواند کار خود را انجام دهد.
اطلاعات مربوط به رمزعبور کامپیوتر در مسیر زیر ذخیره میشود:
HKLMSECURITYPolicySecrets$machine.ACC
رمزعبور جدید تحت عنوان CurrVal و رمزعبور قبلی تحت عنوان OldVal ذخیره میشود. در AD اطلاعات مربوط به رمزعبور تحت عنوان unicodepwd و lmpwdHistory نگهداری میشود. اطلاعات مربوط به زمان تغییر رمزعبور نیز در pwdlastset ذخیره میشود.
با تشکر، به صورت پیشفرض Domain member: Disable machine account Password changes روی حالت disable هست من خوب متوجه نشدم این تنظیم باید به enable تغییر داده بشه؟