فایلهای رجیستری بخشی از سیستم های عامل Windows هستند. تا به حال کتاب خوب و کاملی برای کار با آن ارائه نشده است. تمامی مطالب ارائه شده به صورت پراکنده بوده است. فایل های فیزیکی که رجیستری را تشکیل می دهند بسته به نسخه ویندوز شما در محل و مکان خاصی نگهداری می شوند. در ویندوز 95 و 98 بصورت دو فایل مخفی در پوشه ویندوز قرار دارند و با نام های USER.DAT و SYSTEM.DAT شناخته می شوند. در نسخه ME علاوه بر این دو فایل، فایل دیگری نیز به نام CLASSES.DAT به آنها اضافه شده است. در حالیکه در نسخه های NT/2000 ویندوز فایلها در آدرس SystemRoot%\System32\Config% قرار گرفته اند.
این فایلها را نمی شود به صورت مستقیم ویرایش کرد. تنها چیزی که می توان در مورد رجیستری کاملا مطمئن بود این است که کارهایی که به صورت تصادفی وغیر تکراری در سیستم اتفاق می افتد بی ارتباط با رجیستری ویندوز است. قابل ذکر است تغییرات در رجیستری برای هر کامپیوتری خطرناک و غیرقابل برگشت است زیرا سیستم فایلی رجیستری با هر تغییر ولو کوچک به صورت اتوماتیک ذخیره می شود.
برای مثال یک هکر میتواند یک ابزار امنیتی خاص را روی کامپیوتر شما متوقف یا حذف کند (اگر ابزار امنیتی مثل Firewall، IDS یا ... در آخرین مرحله اجرای خود از کار بیافتد بسیار خطرناک است) و یا می تواند با هر بار بالا آمدن سیستم شما فایلی نا خواسته را روی کامپیوتر شما اجرا کند (فایلهای Trojan و Virus و Keylogger ها و...) تمامی این کارها به راحتی و فقط با مراجعه در قسمتهای Start up رجیستری ممکن است. خیلی به ندرت پیش می آید برنامه یا نرم افزاری احتیاجی به رجیستری نداشته باشد.
در آخر می توانم بگویم رجیستری عین عصب کامپیوتر میماند و حفظ و حراست از آن بسیار مهم و حیاتی است. در Win2000 به بعد به صورت پیش فرض فقط Administrator ها و متصدیان Backup می توانند به صورت Remot یا از راه دور به رجیستری سرور دسترسی داشته باشند. در این مقاله به بررسی محدود کردن و ایجاد مجوز برای کاربران دیگر می پردازیم.
اخطار :
هر تغییر در رجیستری و استفاده از Editor رجیستری بسیار خطر ناک می باشد. در صورت بروز اشکال در رجیستری باید سیستم عامل را دوباره نصب کنید.
محدود کردن دسترسی از راه دور به رجیستری در شبکه:
در شبکه برای ایجاد محدودیت های دسترسی به رجیستری برای Group ها و کاربران با کلید زیر سر و کار داریم:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Contro l \SecurePipeServers \winreg
Name: Description
Type: REG_SZ
Value: Registry Server
برای دسترسی به رجیستری از راه دور این کلید مجوزهای امنیتی (Security permission) برای کاربران و گروه های مختلف صادر می کند. زمانی که ویندوز را به صورت پیش فرض نصب می کنیم این کلید در لیست Access Control افرادی را در محدوده کاری خود ثبت می کند که در زیر شرح می دهم:
Administrators : به صورت کنترل کامل بر روی دسترسی از راه دور به رجیستری (Full Control)
در پیکر بندی پیش فرض ویندوز فقط مجوز دسترسی از راه دور به رجیستری برای Administrators تعریف شده است. برای درست کردن محدودیت در دسترسی برای کاربران دیگر مراحل زیر را پی می گیریم:
1- Editor ویندوز را باز می کنیم (Regedt32.exe) و به کیلد زیر می رویم:
HKEY_LOCAL_MACHINE\SYSTEM \CurrentControlSet \Control
2- در منو Edit قسمت New گزینه Key رانتخاب می کنیم.
3- مقدار کلید را به صورت زیر تعیین می کنیم.
Key Name: SecurePipeServers
Class: REG_SZ
4- به کلید زیر می رویم.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSetControl \SecurePipeServers
5- در منو Edit قسمت New گزینه Key رانتخاب می کنیم.
6- مقدار کلید را به صورت زیر تعیین می کنیم.
Key Name: winreg
Class: REG_SZ
7- به کلید زیر می رویم.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Contro l \SecurePipeServers \winreg
8- در منو Edit قسمت New گزینه Key رانتخاب می کنیم.
9- مقدار کلید را به صورت زیر تعیین می کنیم.
Value Name: Description
Data Type: REG_SZ
String: Registry Server
10- به کلید زیر می رویم.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Contro l \ecurePipeServers \winreg
نکته : در صورت وجود کلید شماره 10 احتیاجی به انجام مراحل 1 تا 10 نمی باشد.
11- winreg را انتخاب کرده کلیک راست می کنیم گزینه Permissions را انتخاب کرده در Tab اول کادر Permissions قسمت Security افرادی که به رجیستری از راه دور دسترسی دارند مشخص شده اند و در قسمت دوم در پایین کادر سطح دسترسی هر فرد مشخص شده است که می توان با دکمه Add فردی را اضافه و یا با Remove فردی را از لیست حذف کرده و سطح دسترسی به رجیستری را از راه دور در شبکه برای آن فرد تعیین کرد.
12- از Editor رجیستری خارج شده و سیستم راReboot کنید.
اما گاهی یک کاربر می خواهد از یک سرویس استفاده کند و باید به رجیستری از راه دور دسترسی داشته باشد. در روش بالا محدودیت دسترسی در هر سطحی که مشخص می کردیم برای کاربر انجام می شد اما اگر می خواستیم دسترسی به یک سرویس خاص را مشخص کنیم راه فرعی را برای تعیین و تعریف محدودیت کاربران باید بکار برد. مثلا سرویس Directory Replicator و سرویس Spooler برای اتصال به چاپگر در شبکه، لازم می باشد که به رجیستری از راه دور دسترسی داشته باشند. ما می توانیم هر یک از کاربرانی که از این سرویس ها می خواهند استفاده کنند را در لیست کلید winreg قرار دهیم و یا در پیکر بندی ویندوز از روش راه فرعی در محدود کردن دسترسی استفاده کنیم. (بابه وجود آوردن کلید های در لیست آنها در مقدار Machine یا Users د رداخل کلید AllowedPaths)
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Contro l \SecurePipeServers \winreg \AllowedPaths
Value: Machine
Value Type: REG_MULTI_SZ - Multi string
:Default Data
System\CurrentControlSet\Control\ProductOptions
System\CurrentControlSet\Control\Print\Printers
System\CurrentControlSet\Control\Server Applications
System\CurrentControlSet\Services\Eventlog Software\Microsoft\OLAP
Server Software\Microsoft\Windows NT\CurrentVersion
System\CurrentControlSet\Control\ContentIndex
System\CurrentControlSet\Control\Terminal Server
System\CurrentControlSet\Control\Terminal Server\UserConfig
System\CurrentControlSet\Control\Terminal Server\DefaultUserConfiguration
مقداری که می تواند در Data قرار گیرد، هر مسیری در داخل رجیستری می باشد. هر سرویسی که در این لیست وجود دارد می تواند به رجیستری از راه دور دسترسی داشته باشد.
Value: Users
Value Type: REG_MULTI_SZ - Multi string
Default Data: None
تغییراتی در win2000 به بعد در سری NT وجود دارد.
Value: Machine
Value Type: REG_MULTI_SZ - Multi string
:Default Data
System\CurrentControlSet\Control\ProductOptions
System\CurrentControlSet\Control\Print\Printers
System\CurrentControlSet\controlServer Applications
System\CurrentControlSet\Services\Eventlog
Software\Microsoft\Windows NT\CurrentVersion
Value: Users
این مقدار به صورت پیش فرض تعریف نشده است.
بعد از این تغییرات می توانیم یک دسترسی محدود به رجیستری از راه دور داشته باشیم.
توجه :
اگر کلید RestrictNullSessAccess وجود نداشت و یا value=0 باشد می تواند با دسترسی از راه دور یک Null session ایجاد کرد. برای این که جلوی این کار را بگیریم .باید کلید زیر را با مقادیر داده شده بسازیم.
HKLM\System\CurrentControlSet\Services\LanManServe r \Parameters
Value name: RestrictNullSessAccess
Value type: REG_DWORD
Value data: Set to 1