آموزش شبکه: آموزش مایکروسافت، آموزش سیسکو

خانه / کد 643-70 / Remote Desktop Services / مفهوم Network Level Authentication

مفهوم Network Level Authentication

Network Level Authentication یا NLA یکی از ویژگی های Remote Desktop Protocol 6.0 به بالاست. NLA این اطمینان را به شما می دهد که قبل از اینکه کاربر بتواند به سرور remote شده و بطور کامل بین دو کامپیوتر ارتباط برقرار شود، حتما احراز هویت شده و authenticate می شود. در اصطلاح به آن front authentication می گویند. در ورژن های قبلی RDP، کاربر تنها با وارد کردن نام کاربری و پسورد هنگام لاگین کردن به صفحه کامپیوتر remote احراز هویت شده و تا قبل آن authentication اتفاق نمی افتد. به دلیل اینکه، هر بار که یک session تلاش می کند احراز هویت انجام دهد (هر باری که کامپیوتری قصد remote شدن دارد)، اطلاعات حساسی را از سرور تقاضا می کند تا مراحل احراز هویت را انجام دهد. این موضوع کامپیوترهایی که قرار است به آنها remote زده شود یا Remote Desktop در آنها فعال است را به حملات denial-of-service حساس می کند. حملات denial-of-service (یا DOS) بدین صورت انجام می پذیرد که یک فرد تعداد درخواست های بیشماری به سمت سرور ارسال می کند. این درخواست ها به اندازه ایست که پهنای باند سرور را تماما گرفته و load سرور بالا می رود. این اتفاق تا زمانی صورت می گیرد که سرور به اصطلاح down شده و دیگر پاسخگو نمی باشد.

در واقع هنگامی که یک session شروع می شود (کامپیوتری قصد remote شدن به دیگری را دارد)، سرور می بایست فرآیند های بسیاری را بسازد، مانند، Csrss.exe و Winlogon.exe. به همین دلیل، ساخت این ارتباط (ساخت session) هزینه بر (برای سرور) و زمان بر است. حال اگر میزان کاربران احراز هویت نشده ای که تلاش می کنند session بزنند، بالا برود، می توانند دسترسی دیگر کاربرانی که در حال استفاده از سرور هستند را مسدود کنند. این عمل به این دلیل است که سرور در حال ساخت session برای کاربرانیست که credential (نام کاربری و پسورد) اشتباه داشته و  احراز هویت نمی شوند.

NLA با استفاده از CerdSSP نام کاربری و پسورد کاربران (credentials) را برای سرور فراهم می کند، تا قبل از اینکه session ایجاد شود، احراز هویت کاربران انجام پذیرد. همچنین CerdSSP می تواند تعداد دفعاتی که کاربر بایستی لاگین کند تا credentials اش برروی سرور ذخیره شود را کاهش دهد. هر کامپیوتری که برای اولین بار به سرور remote می شود، می تواند با ذخیره شدن credential خود بر روی سرور برای یک ارتباط، تا وقتی که پسورد را تغییر ندهد، در دفعات بعدی می تواند بدون وارد کردن credential ارتباط را ایجاد کرده و remote شود.

به دلیل اینکه NLA از پروتکل CerdSSP استفاده می کند، بصورت پیشفرض، NLA از ویندوز ویستا به بعد پشتیبانی شده و در سیستم عامل های XP به قبل وجود ندارد. البته شما می توانید برای پشتیبانی NLA در ویندوز XP SP3 (ویندوز XP سرویس پک 3)، Credential Security Support Provider (یا CerdSSP) را در رجیستری فعال کنید. البته شما می توانید با استفاده از این لینک، بطور خودکار آن را فعال سازید.

نحوه پشتیبانی CerdSSP از NLA

در واقع پروتکل CerdSSP به برنامه ها و نرم افزارها اجازه می دهد که بصورت امن، credential های کاربر (نام کاربری و پسورد) از یک کلاینت به سرور منتقل و واگذار شود. این پروتکل، ابتدا کانال امن و رمزنگاری شده ای را با استفاده از TSL (یا Transport Layer Security) بین کلاینت و سرور ایجاد می کند. هنگامی که شما با استفاده از RDC 6.x به بعد (با ویندوز ویستا به بالا)، به یک سرور remote می شوید، بایستی به این موضوع دقت کنید که نمی توانید بطور مستقیم به صفحه لاگین متصل شده تا credential خود را وارد کنید. به جای آن، بصورت local و روی خود کلاینت، کادری باز می شود (pop-up) تا credential را از کلاینت دریافت کند (هنوز ارتباطی با سرور برقرار نیست). این کادر سمت ابتدایی CerdSSP است.

هنگامی که شما credential خود را در این کادر وارد می کنید، حتی اگر دکمه save را هم نزنید، این اطلاعات به سمت CerdSSP خواهند رفت. پس از آن، با استفاده از کانال امن، credential را به سمت session سرور ارسال می کند. RD Session Host server فقط زمانی ارتباط کاربر را ایجاد می کند که این credential پذیرفته شده و کاربر احراز هویت شود.

کلاینتی که از CerdSSP و RDP 6.x به بعد پشتیبانی می کند، اگر NLA در دسترس باشد، همیشه از آن استفاده می کند. به دلیل اینکه CerdSSP (فناوری که از NLA پشتیبانی می کند) بخشی از سیستم عامل بوده و قسمتی از RDP نیست، سیستم عامل کلاینت بایستی از CerdSSP پشتیبانی کند تا NLA عمل کند.اگر چه نسخه RDC 6.0 در ویندوز XP SP2 وجود دارد، اما به ویندوز اجازه استفاده از NLA را نمی دهد. فقط کلاینت هایی با ویندوز XP SP3 و ویندوزهای بالاتر از NLA پشتیبانی می کنند.

چگونه کلاینت ها را مجبور کنیم که از NLA استفاده کنند؟!

بصورت پیشفرض، سرورهایی که قرار است به آنها remote زده شود (RD Session Host server) نیازی به NLA ندارند. شما می توانید سرورها را به گونه ای پیکربندی کنید که فقط به کلاینت هایی اجازه remote دهند که از NLA پشتیبانی می کنند. برای تنظیم سرور، به گونه ای که برای ایجاد ارتباط نیاز به NLA باشد، با استفاده از تنظیمات پایه ای سرور، RD Session Host Configuration را باز کنید. برای رسیدن به این بخش، از منوی start به Administrative Tools بروید. از Remote Desktop Services روی Remote Desktop Session Host Configuration کلیک کنید.

remote desktop 3

از صفحه پیش رو، از قسمت Connections روی RDP-Tcp دابل کلیک کنید.

remote desktop 4

در سربرگ General، تیک گزینه Allow Connections Only From Computers Running Remote Desktop with Network Level Authentication را بزنید. این کار باعث می شود تا کلاینت هایی که از NLA پشتیبانی نمی کنند، نتوانند به سرور remote شوند.

remote desktop 5

برای فعال کردن این ویژگی، می توانید از طریق Group policy نیز عمل کنید. برای اینکه، تمامی سرورهای remote (همان RD Session Host server ها) فقط ارتباطاتی که با NLA درخواست می شوند را بپذیرند، یک OU ایجاد کرده و همه computer object سرورها را به درون آن منتقل کنید. حال از group policy به مسیر زیر بروید.

Computer Configuration | Policies | Administrative Templates | Windows Components | Remote Desktop Services | Remote Desktop Session Host | Security | Require User Authentication For Remote Connections By Using Network Level Authentication

remote desktop 6

کافیست این policy را اجرا کرده و Enable کنید. Disable یا Not Configuring کردن این policy به این معناست که NLA نیاز نیست.