Защита RDP подключения

Бытует мнение, что подключение по удаленному рабочему столу Windows (RDP) очень небезопасно в сравнении с аналогами (VNC, TeamViewer, пр). Как следствие, открывать доступ из вне к любому компьютеру или серверу локальной сети очень опрометчивое решение — обязательно взломают. Второй аргумент против RDP как правило звучит так — «жрет трафик, для медленного интернета не вариант». Чаще всего эти доводы ничем не аргументированы.

Протокол RDP существует не первый день, его дебют состоялся еще на Windows NT 4.0 более 20 лет назад и с тех пор утекло много воды. На данный момент RDP не менее безопасен, чем любое другое решение для удаленного доступа. Что касается требуемой полосы пропускания, так в этом плане есть куча настроек, с помощью которых можно добиться отличной отзывчивости и экономии полосы пропускания.

Короче говоря, если знать что, как и где настроить, то RDP будет очень хорошим средством удаленного доступа. Вопрос в другом, а много ли админов пытались вникнуть в настройки, которые спрятаны чуть глубже, чем на поверхности?

Сейчас расскажу как защитить RDP и настроить его на оптимальную производительность.

Во-первых, версий RDP протокола существует много. Все дальнейшее описание будет применимо к RDP 7.0 и выше. Это значит, что у вас как минимум Windows Vista SP1. Для любителей ретро есть специальный апдейт для Windows XP SP3 KB 969084 который добавляет RDP 7.0 в эту операционку.

Настройка №1 — шифрование

На компьютере, к которому вы собираетесь подключаться открываем gpedit.msc Идем в Конфигурация компьютера — Административные шаблоны — Компоненты Windows — Службы удаленных рабочих столов — Безопасность

Устанавливаем параметр «Требовать использования специального уровня безопасности для удаленных подключений по методу RDP» в значение «Включено» и Уровень безопасности в значение «SSL TLS 1.0»

rdp1Этой настройкой мы включили шифрование как таковое. Теперь нам нужно сделать так, чтобы применялись только стойкие алгоритмы шифрования, а не какой-нибудь DES 56-bit или RC2.

Поэтому в этой же ветке открываем параметр «Установить уровень шифрования для клиентских подключений». Включаем и выбираем «Высокий» уровень. Это нам даст 128-битное шифрование.

rdp2Но и это еще не предел. Самый максимальный уровень шифрования обеспечивается стандартом FIPS 140-1. При этом все RC2/RC4 автоматически идут лесом.

Чтобы включить использование FIPS 140-1, нужно в этой же оснастке пойти в Конфигурация компьютера —  Конфигурация Windows — Параметры безопасности — Локальные политики — Параметры безопасности.

Ищем параметр «Системная криптография: использовать FIPS-совместимые алгоритмы для шифрования, хэширования и подписывания» и включаем его.

rdp3И в завершении в обязательном порядке включаем параметр «Требовать безопасное RPC-подключение» по пути Конфигурация компьютера — Административные шаблоны — Компоненты Windows — Службы удаленных рабочих столов — Безопасность.

rdp4Этот параметр требует от подключающихся клиентов обязательное шифрование согласно тем установкам, которые мы настроили выше.

Теперь с шифрованием полный порядок, можно двигаться дальше.

Настройка №2 — смена порта

По умолчанию протокол RDP висит на порту TCP 3389. Для разнообразия его можно изменить, для этого в реестре нужно изменить ключик PortNumber по адресу

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp

Настройка №3 — сетевая аутентификация (NLA)

По умолчанию, вы можете подключиться по RDP не вводя логин и пароль и увидеть Welcome-скрин удаленного рабочего стола, где уже от вас попросят залогиниться. Это как раз совсем не безопасно в том плане, что такой удаленный комп можно легко заDDoSить.

Поэтому, всё в той же ветке включаем параметр «Требовать проверку подлинности пользователя для удаленных подключений путем проверки подлинности на уровне сети»

rdp5

Настройка №4 — что еще проверить

Во-первых проверьте, что параметр «Учетные записи: разрешать использование пустых паролей только при консольном входе» включен. Параметр можно найти в Конфигурация компьютера — Административные шаблоны — Компоненты Windows — Службы удаленных рабочих столов — Безопасность.

Во-вторых, не забудьте проверить список пользователей, которые могут подключаться по RDP

rdp6

Настройка №5 — оптимизация скорости

Идем в раздел Конфигурация компьютера — Административные шаблоны — Компоненты Windows — Службы удаленных рабочих столов — Среда удаленных сеансов.

Здесь можно и нужно отрегулировать несколько параметров:

  • Наибольшая глубина цвета — можно ограничиться 16 битами. Это позволит сэкономить трафик больше чем в 2 раза по сравнению с 32х битной глубиной.
  • Принудительная отмена фонового рисунка удаленного стола — для работы он не нужен.
  • Задание алгоритма сжатия RDP — лучше установить значение Оптимизация использования полосы пропускания. В этом случае RDP будет жрать памяти чуть больше, но сжимать будет эффективнее.
  • Оптимизировать визуальные эффекты для сеансов служб удаленных рабочих столов — ставим значение «Текст». Для работы то что нужно.

В остальном при подключении к удаленному компу со стороны клиента дополнительно можно отключить:

  • Сглаживание шрифтов. Это сильно уменьшит время отклика. (Если у вас полноценный терминальный сервер, то этот параметр так же можно задать на стороне сервера)
  • Композицию рабочего стола — отвечает за Aero и пр
  • Отображение окна при перетаскивании
  • Визуальные эффекты
  • Стили оформления — если хочется хардкора

rdp7Остальные параметры типа фона рабочего стола, глубины цвета мы уже предопределили на стороне сервера.

Дополнительно на стороне клиента можно увеличить размер кэша изображений, делается это в реестре. По адресу HKEY_CURRENT_USER\SOFTWARE\Microsoft\Terminal Server Client\ нужно создать два ключа типа DWORD 32 BitmapPersistCacheSize и BitmapCacheSize

  • BitmapPersistCacheSize можно установить равным 10000 (10 Мб) По умолчанию этот параметр берет значение 10, что соответствует 10 Кб.
  • BitmapCacheSize так же можно установить равным 10000 (10 Мб). Вы вряд ли заметите, если RDP-подключение съест лишних 10 Мб от вашей оперативной памяти

Про проброс всяких принтеров и пр говорить ничего не буду. Кому что нужно, тот то и пробрасывает.

 

На этом основная часть настройки заканчивается. В следующих обзорах расскажу, как можно еще улучшить и обезопасить RDP. Используйте RDP правильно, всем стабильного коннекта! Как сделать RDP терминал сервер на любой версии Windows смотрите здесь.

комментариев 9

  1. Владимир:

    Спасибо очень легко и понятно объяснено! Правда есть ошибки, например: «Безопасность» находится в «Узел сеанса рабочих столов», а не просто в «Службы удаленных рабочих столов» (хотя может раньше по-другому было) и ещё «Учетные записи: разрешать использование пустых паролей только при консольном входе» находится в «Конфигурация компьютера\Параметры Windows\Параметры безопасности\Локальные политики\Параметры безопасности».

  2. Petia:

    Подскажите пожалуйста, все эти настройки я выставлял в конфигурации сервера узла сеансов удаленных рабочих столов. Там я выбирал свое подключение и задавал такие же самые параметры безопасности(SSL, уровень шифрования). Разве они не будут действовать если установить их там?

  3. Евгений:

    Еще, по возможности, дополните статью следующей информацией касательно защиты RDP из вне:
    в брэндмауере Windows есть возможность созлавать разрешающее правило только для безопасных источников. Как я полагаю там используются сертификаты для аутентификации удаленной стороны. таким образом подключится сможет только тот, кому мы передали сертификат

  4. Сергей:

    Выполнил пункт №1 и теперь подключение по RDP из интернета не работает

  5. g8ms:

    Скажите, а если я подключаюсь у удаленному компьютеру, чтобы воспользоваться сервисом-программой, которой у меня нет, как с моей стороны защитить компьютер? Полагаю, что тот компьютер и так неплохо защищен. А как быть мне?

  6. Павел:

    Отличная статья, большое спасибо!

  7. Alex:

    Все получилось. Спасибо

  8. Николай:

    Перестала работать «теневая копия», подскажите плз, что на это влияет?

    • Николай:

      Уточню. Перестала работать после установок данной статьи. Версия сервера 2016 сборка 1607. При попытке подключения к сессии, почти ничего не происходит, ошибок не выдает.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*