THE BELL

Є ті, хто прочитали цю новину раніше вас.
Підпишіться, щоб отримувати статті свіжими.
Email
ім'я
Прізвище
Як ви хочете читати The Bell
без спаму

Проблеми безпеки та швидкості роботи серверів стояла завжди, і з кожним роком їх актуальність тільки зростає. У зв'язку з цим, компанія Microsoft перейшла від початкової моделі аутентифікації на стороні сервера до перевірки автентичності на рівні мережі.

У чому ж різниця цих моделей?
  Раніше, при підключенні до служб терміналів, користувач створював сеанс зв'язку з сервером, через який останній завантажував екран введення облікових даних для користувача. Цей метод витрачає ресурси сервера ще до того, як користувач підтвердив свою легальність, що дає можливість нелегальному користувачеві повністю завантажити ресурси сервера множинними запитами на вхід. Сервер, не здатний обробити ці запити, відмовляє в обробці запитів легальним користувачам (DoS-атака).


Перевірка справжності на рівні мережі (Network-Level Authentication, NLA) змушує користувача вводити облікові дані в діалоговому вікні на стороні клієнта. За замовчуванням, якщо на клієнтської частини немає перевірки сертифіката автентичності на рівні мережі, то сервер не дозволить підключення, і воно не відбудеться. NLA запитує клієнтський комп'ютер надати свої облікові дані для перевірки автентичності, ще до створення сеансу з сервером. Цей процес ще називають фронтальною перевіркою достовірності.



NLA була представлена \u200b\u200bще в версії RDP 6.0 і підтримувалася спочатку Windows Vista. З версії RDP 6.1 - підтримується серверами під управлінням операційної системою Windows Server 2008 і вище, а клієнтська підтримка здійснюється у операційних систем Windows XP SP3 (необхідно в реєстрі дозволити нового провайдера безпеки) і вище. Метод використовує постачальника безпеки CredSSP (Credential Security Support Provider). При використанні клієнта віддаленого робочого столу для іншої операційної системи - потрібно дізнатися про її підтримку NLA.


Переваги NLA:
  • Не потребує значних ресурсів сервера.
  • Додатковий рівень для захисту від DoS-атак.
  • Прискорює процес посередництва між клієнтом і сервером.
  • Дозволяє розширити технологію NT "єдиного логіна" на роботу з термінальним сервером.
Недоліки NLA:
  • Не підтримуються інші постачальники безпеки.
  • Чи не підтримується версіями клієнта нижче Windows XP SP3 і сервера нижче Windows Server 2008.
  • Необхідне ручне регулювання реєстру на кожному клієнті Windows XP SP3.
  • Як будь-яка схема "єдиного логіна" вразлива перед крадіжкою "ключів від всієї фортеці".
  • Немає можливості використовувати функцію "Вимагати зміну пароля при наступному вході в систему".

Після установки оновлення KB4103718 на моєму комп'ютері з Windows 7 я не можу віддалено підключиться до сервера c Windows Server 2012 R2 через віддалений робочий стіл RDP. Після того, як я вказую адресу RDP сервера у вікні клієнта mstsc.exe і натискаю «Підключити», з'являється помилка:

Підключення до віддаленого робочого столу

Сталася помилка перевірки автентичності.

Зазначена функція не підтримується.
  Віддалений комп'ютер: computername

Після того, як я видалив оновлення KB4103718 і перезавантажив комп'ютер, RDP підключення стало працювати нормально. Якщо я правильно розумію, це тільки тимчасове обхідний рішення, в наступному місяці приїде новий кумулятивний пакет оновлень і помилка повернеться? Можете що-небудь порадити?

відповідь

Ви абсолютно праві в тому, що немає сенсу вирішувати проблему, адже ви тим самим піддаєте свій комп'ютер ризику експлуатації різних вразливостей, які закривають патчі в даному оновленні.

В свою проблему ви не самотні. Дана помилка може з'явиться в будь-якій операційній системі Windows або Windows Server (не тільки Windows 7). У користувачів англійської версії Windows 10 при спробі підключитися до RDP / RDS сервера аналогічна помилка виглядає так:

An authentication error has occurred.

The function requested is not supported.

Remote computer: computername

Помилка RDP "An authentication error has occurred" може з'являтися і при спробі запуску RemoteApp додатків.

Чому це відбувається? Справа в тому, що на вашому комп'ютері встановлено актуальні оновлення безпеки (випущені після травня 2018 року), яких виправляється серйозна уразливість в протоколі CredSSP (Credential Security Support Provider), що використовується для аутентифікації на RDP серверах (CVE-2018-0886) (рекомендую познайомиться зі статтею). При цьому на стороні RDP / RDS сервера, до якого ви підключаєтеся зі свого комп'ютера, ці оновлення не встановлені і при цьому для RDP доступу включений протокол NLA (Network Level Authentication / Перевірку достовірності на рівні мережі). Протокол NLA використовує механізми CredSSP для пре-аутентифікація користувачів через TLS / SSL або Kerberos. Ваш комп'ютер через нові налаштувань безпеки, які виставило встановлене у вас оновлення, просто блокує підключення до віддаленого комп'ютера, який використовує вразливу версію CredSSP.

Що можна зробити для виправлення цю помилки і підключитися до вашого RDP сервера?

  1. самий правильний   спосіб вирішення проблеми - установка останніх оновлень безпеки Windows на комп'ютері / сервері, до якого ви підключаєтеся по RDP;
  2. Тимчасовий спосіб 1 . Можна відключити перевірку автентичності на рівні мережі (NLA) на стороні RDP сервера (описано нижче);
  3. Тимчасовий спосіб 2 . Ви можете на стороні клієнта дозволити підключення до RDP серверів з небезпечною версією CredSSP, як описано в статті за посиланням вище. Для цього потрібно змінити ключ реєстру AllowEncryptionOracle   (Команда REG ADD
    HKLM \\ SOFTWARE \\ Microsoft \\ Windows \\ CurrentVersion \\ Policies \\ System \\ CredSSP \\ Parameters / v AllowEncryptionOracle / t REG_DWORD / d 2) або змінити налаштування локальної політики Encryption Oracle Remediation   / Виправлення вразливості шифрувального оракула), встановивши її значення \u003d Vulnerable / Залишити вразливість).

    Це єдиний спосіб доступу до віддаленого сервера по RDP, якщо у вас отсусвует можливість локального входу на сервер (через консоль ILO, віртуальної машини, хмарний інтерфейс і т.д.). У цьому режимі ви зможете з'єднатися з віддаленим сервером і встановити оновлення безпеки, таким чином перейдете до рекомендованого 1 способу. Після поновлення сервера не забудьте відключити політику або повернути значення ключа AllowEncryptionOracle \u003d 0: REG ADD HKLM \\ SOFTWARE \\ Microsoft \\ Windows \\ CurrentVersion \\ Policies \\ System \\ CredSSP \\ Parameters / v AllowEncryptionOracle / t REG_DWORD / d 0

Відключення NLA для протоколу RDP в Windows

Якщо на боці RDP сервера, якому ви підключаєтеся, включений NLA, це означає що для преаутентіфікаціі RDP користувача використовується CredSPP. Відключити Network Level Authentication можна у властивостях системи на вкладці Віддалений доступ(Remote) , Знявши галку «Дозволити підключення лише з комп'ютерів, на яких працює віддалений робочий стіл з перевіркою достовірності на рівні мережі / Allow connection only from computers running Remote Desktop with Network Level Authentication (recommended)» (Windows 10 / Windows 8).

У Windows 7 ця опція називається по-іншому. на вкладці Віддалений доступ   потрібно вибрати опцію « Дозволити підключення від комп'ютерів з будь-якою версією віддаленого робочого столу (небезпечний)   / Allow connections from computers running any version of Remote Desktop (less secure) ».

Також можна відключити перевірку автентичності на рівні мережі (NLA) за допомогою редактора локальної групової політики - gpedit.msc   (В Windows 10 Home редактор політик gpedit.msc можна запустити) або за допомогою консолі управління доменними політиками - GPMC.msc. Для цього перейдіть в розділі Конфігурація комп'ютера -\u003e Адміністративні шаблони -\u003e КомпонентиWindows   -\u003e Служби віддалених робочих столів - Вузол сеансів віддалених робочих столів -\u003e Безпека   (Computer Configuration -\u003e Administrative Templates -\u003e Windows Components -\u003e Remote Desktop Services - Remote Desktop Session Host -\u003e Security), відключіть   політику (Require user authentication for remote connections by using Network Level Authentication).

Також потрібно в політиці « Вимагати використання спеціального рівня безпеки для віддалених підключень по протоколу RDP»(Require use of specific security layer for remote (RDP) connections) вибрати рівень безпеки (Security Layer) - RDP.

Для застосування нових налаштувань RDP потрібно оновити політики (gpupdate / force) або перезавантажити комп'ютер. Після цього ви повинні успішно підключитися до віддаленого робочого столу сервера.

Відкриваємо редактор реєстру.

Гілка HKEY_LOCAL_MACHINE \\ SYSTEM \\ CurrentControlSet \\ Control \\ Lsa

Відкриваємо параметр Security Packages і шукаємо там слово tspkg. Якщо його немає, додаємо до вже існуючих параметрах.

Гілка HKEY_LOCAL_MACHINE \\ SYSTEM \\ CurrentControlSet \\ Control \\ SecurityProviders

Відкриваємо параметр SecurityProviders і додаємо до вже існуючих провайдерам credssp.dll, якщо такий відсутній.

Закриваємо редактор реєстру.

Тепер треба перезавантажитися. Якщо цього не зробити, то комп'ютер запросить у нас ім'я користувача і пароль, але замість віддаленого робочого столу відповість наступне:

Ось, власне і все.

Адміністраторам серверів на базі Windows 2008 можливо доведеться зіткнутися з такою проблемою:

Підключення по rdp протоколу до улюбленого сервера зі станції Windows XP SP3 провалюється з наступною помилкою:

Віддалений робочий стіл відключений.

Віддалений комп'ютер вимагає перевірки автентичності на рівні мережі, яку даний комп'ютер не підтримує. Зверніться за допомогою до системного адміністратора або в службу технічної підтримки.

І хоча багатообіцяюча Win7 загрожує згодом замінити свою бабусю WinXP, ще рік-другий проблема буде актуальною.

Ось що необхідно зробити для включення механізму перевірки достовірності на мережевому рівні:

Відкриваємо редактор реєстру.

гілка HKEY_LOCAL_MACHINE \\ SYSTEM \\ CurrentControlSet \\ Control \\ Lsa

відкриваємо параметр Security Packages   і шукаємо там слово tspkg. Якщо його немає, додаємо до вже існуючих параметрах.

гілка HKEY_LOCAL_MACHINE \\ SYSTEM \\ CurrentControlSet \\ Control \\ SecurityProviders

відкриваємо параметр SecurityProviders   і додаємо до вже існуючих провайдерам credssp.dll, Якщо такий відсутній.

Закриваємо редактор реєстру.

Тепер треба перезавантажитися. Якщо цього не зробити, то при спробі підключення комп'ютер запросить у нас ім'я користувача і пароль, але замість віддаленого робочого столу відповість наступне:

Підключення до віддаленого робочого столу

Помилка при перевірці достовірності (код 0x507)

Ось, власне і все.

THE BELL

Є ті, хто прочитали цю новину раніше вас.
Підпишіться, щоб отримувати статті свіжими.
Email
ім'я
Прізвище
Як ви хочете читати The Bell
без спаму