هر آنچه مدیران شیرپوینت باید در مورد DisableLoopbackCheck بدانند

سلام

احتمالاً تعدادی از شما عزیزان به خصوص مدیران شبکه و شیرپوینت عبارت DisableLoopbackCheck شنیده اید و یا با آن آشنا هستید، اما اینکه LoopbackCheck چیست و دقیقاً چه کمکی به شما در فارم شیرپوینت خواهد کرد، بحثی است که در این پُست به آن خواهم پرداخت.

در ویندوز ۲۰۰۳ سرور سرویس پک ۱ ، بحث بررسی امنیت  loopback مطرح شد. این قابلیت در ویندوز  2008 سرور هم همچنان وجود دارد. این قابلیت که بیشتر برای حفظ امنیت در ویندوز سرور میباشد، سبب ممانعت از دسترسی به وب اپلیکیشن ها با استفاده از FQDN یا Fully Qualified Domain Name می شود. به عبارتی اگر شما در سروری هستید که وب اپلیکیشن شما در آن هاست میشود، اگر تصمیم داشته باشید به این وب اپلیکیشن از طریق FQDN آن متصل شوید، از شما جلوگیری خواهد شد و برای دسترسی به سایت یا وب اپلیکیشن میبایست در پنجره Login ، نام کاربری و رمز عبور را وارد کنید و در نهایت هم حطای ۴۰۱٫۱ Access Deined از طریق وب سرور به شما نمایش داده خواهد شد.

متاسفانه همانطور که مطلع هستید، این خطای ۴۰۱٫۱ هم خیلی مفید نیست و کمکی جهت یافتن و رفع مشکل نخواهد کرد و معمولاً در خطاهای عدم دسترسی یا Access Denied خود را نشان میدهد.

مایکروسافت قابلیت loopback رو یک امکان امنیتی برای سرور به حساب می آورد. که بسیاری از Exploit ها سعی می کنند تا با استفاده از Reflection به سرور ویندوز حمله و نفوذ کنند و از طریق نفوذ به سرور لوکال محدودیت ها رو دور بزنند! مایکروسافت با قراردادن قابلیت loopback جلوی این اقدام هکرها را در ویندوز سرور گرفت و این حفره امنیتی را برطرف کرد.

اما این قابلیت چه نقشی در سرورهای شیرپوینت دارد؟

مسلماً سرورهای WFE شیرپوینت هم وظیفه هاست کردن وب سایت ها یا وب اپلیکیشن های شیرپوینت رو از طریق IIS بر عهده دارند. و حتماً برای شما هم این موضوع اتفاق افتاده که تصمیم داشته باشید در سرورهای تحقیقاتی یا عملیاتی سازمان آدرس سایت شیرپوینتی رو از طریق Host Header فراخوانی کنید. خب با چه پیغامی مواجه خواهید شد؟! باکس مربوط به لاگین سایت، که پیاپی نام کاربری و رمز عبور را از شما سئوال خواهد کرد و پس از چند بار پیغام خطای ۴۰۱٫۱ را به شما نمایش خواهد داد!

مایکروسافت برای رفع این مشکل دو روش را پیشنهاد کرده است که میتوانید براساس شرایط زیر یکی از آنها را انتخاب و بر روی سرو اعمال کنید.

توجه داشته باشید که اگر سرور شما تحقیقاتی و آزمایشی است میتوانید به راحتی قابلیت Loopback را در سرور غیرفعال (DisableLoopbackCheck) کنید(استفاده از روش اول).  اما اگر سرور شما عملیاتی و Production میباشد برای رفع این مشکل به هیچ وجه نباید این قابلیت را به صورت کامل غیر فعال کنید، چون اینکار سبب دستکاری در امنیت سرور شما خواهد شد. بلکه باید host header های مجاز رو در لیستی که در ادامه تشریح خواهم کرد اضافه کنید و با اینکار امنیت سرور را حفظ کنید.(استفاده از روش دوم)

روش اول :

Disable the loopback check (less-recommended method)

To set the DisableLoopbackCheck registry key, follow these steps:

  1. Set the

    DisableStrictNameChecking

    registry entry to 1. For more information about how to do this, click the following article number to view the article in the Microsoft Knowledge Base:

    ۲۸۱۳۰۸ (http://support.microsoft.com/kb/281308/ ) Connecting to SMB share on a Windows 2000-based computer or a Windows Server 2003-based computer may not work with an alias name

  2. Click Start, click Run, type regedit, and then click OK.
  3. In Registry Editor, locate and then click the following registry key:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa

  4. Right-click Lsa, point to New, and then click DWORD Value.
  5. Type DisableLoopbackCheck, and then press ENTER.
  6. Right-click DisableLoopbackCheck, and then click Modify.
  7. In the Value data box, type 1, and then click OK.
  8. Quit Registry Editor, and then restart your computer.

همچنین در این روش میتوانید به جای مراحل فوق، از دستور PowerShell زیر نیز در ویندوز استفاده کنید :

New-ItemProperty HKLM:\System\CurrentControlSet\Control\Lsa -Name "DisableLoopbackCheck" -Value "1" -PropertyType dword

روش دوم :

Specify host names (Preferred method if NTLM authentication is desired)

To specify the host names that are mapped to the loopback address and can connect to Web sites on your computer or server, follow these steps:

  1. Set the

    DisableStrictNameChecking

    registry entry to 1. For more information about how to do this, click the following article number to view the article in the Microsoft Knowledge Base:

    ۲۸۱۳۰۸ (http://support.microsoft.com/kb/281308/ ) Connecting to SMB share on a Windows 2000-based computer or a Windows Server 2003-based computer may not work with an alias name

  2. Click Start, click Run, type regedit, and then click OK.
  3. In Registry Editor, locate and then click the following registry key:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0

  4. Right-click MSV1_0, point to New, and then click Multi-String Value.
  5. Type BackConnectionHostNames, and then press ENTER.
  6. Right-click BackConnectionHostNames, and then click Modify.
  7. In the Value data box, type the host name or the host names for the sites that are on the local computer, and then click OK.
  8. Quit Registry Editor, and then restart the IISAdmin service.

    از مزایای روش دوم این است که پس از اعمال تغییرات در رجیستری سرور نیازی به ریستارت کردن سرور ندارید و با ریستارت کردن سرویس IISAdmin تغییرات بر روی سرور اعمال خواهد شد.

    منبع KB مایکروسافت :

    http://support.microsoft.com/kb/896861

    موفق باشید.

    پاسخ دهید