سلام

مدتی از طراحی و اجرای دومین جدیدم گذشته بود که دیدم کارکنان با درخواست تغییر رمز مواجه شده اند با اینکه زمانی برای درخواست تغییر اتوماتیک نذاشته بودم و Default اون رو غیر فعال کرده بودم اما پیام داده بود لذا دنبال علت رفتم و به مقاله زیر از  http://www.bexpert.ir برخوردم که کامل و جامع بود:

بارها پیش آمده است که مدیران 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 Configuration\Windows Settings\Security Settings\Local Policies\Security 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 = HKLM\SYSTEM\CurrentControlSet\Services\NetLogon\Parameters

Value = DisablePasswordChange REG_DWORD

Default = 0

Group policy setting:

Computer Configuration\windows Settings\Security settings\Local Policies\Security Options

Domain member: Disable machine account Password changes

 

نکته: استفاده از این تنظیم به هیچ عنوان پیشنهاد نمی‌شود چون باعث خطرات امنیتی و لو رفتن کانال امن بین کامپیوتر و DC‌ می‌شود.

ScavengeInterval زمان اجرای فرآیند پاکسازی را مشخص می‌کند. این فرآیند در صورت امکان مسئول تغییر رمزعبور کامپیوتر می‌باشد. این مقدار را می‌توان در registry سیستم و یا GPO‌ پیدا کرد. در زیر دو مسیر آورده شده است.

 

HKLM\SYSTEM\CurrentControlSet\Services\NetLogon\Parameters

Value: ScavengeInterval REG_DWORD 60 to 172800 Seconds (48 hours)

Default: 900 (15 minutes)

Group policy setting:

Computer Configuration\Administrative Templates\System\Netlogon\Scavenge Interval

MaximumPasswordAge مشخص کننده زمانی می‌باشد که کامپیوتر نیاز به تغییر رمز عبور خود دارد. این مقدار را می‌توان در registry سیستم و یا GPO‌ پیدا کرد. در زیر دو مسیر آورده شده است.

 

Key = HKLM\SYSTEM\CurrentControlSet\Services\NetLogon\Parameters

Value = MaximumPasswordAge REG_DWORD

Default = 30

Range = 1 to 1,000,000 (in days)

Group policy setting:

Computer Configuration\windows Settings\Security settings\Local Policies\Security 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 به صورت دوره‌ای انجام می‌شود تا بتواند کار خود را انجام دهد.

اطلاعات مربوط به رمزعبور کامپیوتر در مسیر زیر ذخیره می‌شود:

HKLM\SECURITY\Policy\Secrets\$machine.ACC

رمزعبور جدید تحت عنوان CurrVal و رمزعبور قبلی تحت عنوان OldVal ذخیره می‌شود. در AD اطلاعات مربوط به رمزعبور تحت عنوان unicodepwd و lmpwdHistory‌ نگهداری می‌شود. اطلاعات مربوط به زمان تغییر رمزعبور نیز در pwdlastset ذخیره می‌شود.