فایلهای رجیستری بخشی از سیستم های عامل 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 efault 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 efault 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