Бытует мнение, что подключение по удаленному рабочему столу Windows (RDP) очень небезопасно в сравнении с аналогами (VNC, TeamViewer, пр). Как следствие, открывать доступ из вне к любому компу или серверу локальной сети очень опрометчивое решение — обязательно взломают. Второй аргумент против RDP как правило звучит так — «жрет трафик, для медленного интернета не вариант». Но чаще всего такое мнение ничем не аргументировано.
Протокол RDP существует не первый день, его дебют состоялся еще не платформе NT 4.0 и надо сказать, что с тех пор утекло много воды. На данный момент 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»
Этой настройкой мы включили шифрование как таковое. Теперь нам нужно сделать так, чтобы применялись только стойкие алгоритмы шифрования, а не какой-нибудь DES 56-bit или RC2.
Поэтому в этой же ветке открываем параметр «Установить уровень шифрования для клиентских подключений». Включаем и выбираем «Высокий» уровень. Это нам даст 128-битное шифрование.
Но и это еще не предел. Самый максимальный уровень шифрования обеспечивается стандартом FIPS 140-1. При этом все RC2/RC4 автоматически идут лесом.
Чтобы включить использование FIPS 140-1, нужно в этой же оснастке пойти в Конфигурация компьютера — Конфигурация Windows — Параметры безопасности — Локальные политики — Параметры безопасности.
Ищем параметр «Системная криптография: использовать FIPS-совместимые алгоритмы для шифрования, хэширования и подписывания» и включаем его.
И в завершении в обязательном порядке включаем параметр «Требовать безопасное RPC-подключение» по пути Конфигурация компьютера — Административные шаблоны — Компоненты Windows — Службы удаленных рабочих столов — Безопасность.
Этот параметр требует от подключающихся клиентов обязательное шифрование согласно тем установкам, которые мы настроили выше.
Теперь с шифрованием полный порядок, можно двигаться дальше.
Настройка №2 — смена порта
По умолчанию протокол RDP висит на порту TCP 3389. Для разнообразия его можно изменить, для этого в реестре нужно изменить ключик PortNumber по адресу
HKEY_LOCAL_MACHINESystemCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp
Настройка №3 — сетевая аутентификация (NLA)
По умолчанию, вы можете подключиться по RDP не вводя логин и пароль и увидеть Welcome-скрин удаленного рабочего стола, где уже от вас попросят залогиниться. Это как раз совсем не безопасно в том плане, что такой удаленный комп можно легко заDDoSить.
Поэтому, всё в той же ветке включаем параметр «Требовать проверку подлинности пользователя для удаленных подключений путем проверки подлинности на уровне сети»
Настройка №4 — что еще проверить
Во-первых проверьте, что параметр «Учетные записи: разрешать использование пустых паролей только при консольном входе» включен. Параметр можно найти в Конфигурация компьютера — Административные шаблоны — Компоненты Windows — Службы удаленных рабочих столов — Безопасность.
Во-вторых, не забудьте проверить список пользователей, которые могут подключаться по RDP
Настройка №5 — оптимизация скорости
Идем в раздел Конфигурация компьютера — Административные шаблоны — Компоненты Windows — Службы удаленных рабочих столов — Среда удаленных сеансов.
Здесь можно и нужно отрегулировать несколько параметров:
- Наибольшая глубина цвета — можно ограничиться 16 битами. Это позволит сэкономить трафик больше чем в 2 раза по сравнению с 32х битной глубиной.
- Принудительная отмена фонового рисунка удаленного стола — для работы он не нужен.
- Задание алгоритма сжатия RDP — лучше установить значение Оптимизация использования полосы пропускания. В этом случае RDP будет жрать памяти чуть больше, но сжимать будет эффективнее.
- Оптимизировать визуальные эффекты для сеансов служб удаленных рабочих столов — ставим значение «Текст». Для работы то что нужно.
В остальном при подключении к удаленному компу со стороны клиента дополнительно можно отключить:
- Сглаживание шрифтов. Это сильно уменьшит время отклика. (Если у вас полноценный терминальный сервер, то этот параметр так же можно задать на стороне сервера)
- Композицию рабочего стола — отвечает за Aero и пр
- Отображение окна при перетаскивании
- Визуальные эффекты
- Стили оформления — если хочется хардкора ????
Остальные параметры типа фона рабочего стола, глубины цвета мы уже предопределили на стороне сервера.
Дополнительно на стороне клиента можно увеличить размер кэша изображений, делается это в реестре. По адресу HKEY_CURRENT_USERSOFTWAREMicrosoftTerminal Server Client
нужно создать два ключа типа DWORD 32 BitmapPersistCacheSize
и BitmapCacheSize
BitmapPersistCacheSize
можно установить равным 10000 (10 Мб) По умолчанию этот параметр берет значение 10, что соответствует 10 Кб.BitmapCacheSize
так же можно установить равным 10000 (10 Мб). Вы вряд ли заметите, если RDP-подключение съест лишних 10 Мб от вашей оперативной памяти ????
Про проброс всяких принтеров и пр говорить ничего не буду. Кому что нужно, то и пробрасывает.
В принципе на этом базовая настройка выполнена. В следующих обзорах расскажу, как можно еще улучшить и обезопасить RDP.
Используйте RDP правильно, всем стабильного коннекта!
Как сделать RDP терминал сервер на любой версии Windows смотрите здесь.