Защита RDP подключения. Как настроить удалённый доступ через RDP Защита rdp соединения помощи ssl

По умолчанию во всех операционных системах Windows для подключения по протоколу RDP (Remote Desktop Protocol / Удаленный рабочий стол) использует порт TCP 3389 .

Если ваш компьютер подключен напрямую к интернету (например, VDS сервер), или вы настроили на своем пограничном маршрутизаторе порта 3389/RDP в локальную сеть на компьютер или сервер с Windows, вы можете изменить стандартный RDP порт 3389 на любой другой. Изменив номер RDP порта для подключения, вы можете спрятать ваш RDP сервер от сканеров портов, уменьшите вероятность эксплуатации RDP уязвимостей (последняя критическая уязвимость в RDP BlueKeep описана в ), уменьшите количество попыток удалённого подбора паролей по RDP (не забывает периодически ), SYN и других типов атак (особенно при ).

Замену стандартного RDP порта можно использовать, когда за маршрутизатором с одним белым IP адресом находится несколько Windows компьютеров, к которым нужно предоставить внешний RDP доступ. На каждом компьютере вы можете настроить уникальный RDP порт и настроить перенаправление портов на маршрутизаторе на локальные компьютеры (в зависимости от номера RDP порта сессия перенаправляется на один из внутренних ПК).

При выборе нестандартного номера порта для RDP обратите внимание, что желательно не использовать номера портов в диапазоне от 1 до 1023 (известные порты) и динамические порты из RPC диапазона (от 49152 до 65535).

Попробуем изменить порт, на котором ожидает подключения служба Remote Desktop на 1350 . Для этого:

  1. Откройте редактор реестра и перейдите в ветку HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp ;
  2. Найдите DWORD параметр реестра с именем PortNumber . В этом параметре указан порт, на котором ожидает подключения служба Remote Desktop;
  3. Измените значение этого порта. Я изменил RDP порт на 1350 в десятичном значении (Deciamal);
  4. Если на вашем компьютере включен Windows Firewall, вы должны создать новое правило, разрешающее входящее подключение на новый RDP порт (если вы перенастраиваете удаленный сервер через RDP, не создав правило в брандмауэре, вы потеряете доступ к серверу). Вы можете создать разрешающее входящее правило для нового TCP/UDP порта RDP вручную из консоли ‘Брандмауэр Защитника Windows’ (firewall.cpl ) или с помощью : New-NetFirewallRule -DisplayName "New RDP Port 1350" -Direction Inbound -LocalPort 1350 -Protocol TCP -Action allow И: New-NetFirewallRule -DisplayName "New RDP Port 1350" -Direction Inbound -LocalPort 1350 -Protocol UDP -Action allow
  5. Перезагрузите компьютер или перезапустите службу удаленных рабочих столов командой: net stop termservice & net start termservice
  6. Теперь для подключения к данному Windows компьютеру по RDP, в клиенте mstsc.exe нужно указывать порт RDP подключения через двоеточие следующим образом: Your_Computer_Name:1350 или по IP адресу 192.168.1.100:1350 или из командной строки: mstsc.exe /v 192.168.1.100:1350

    Если для управления множеством RDP подключений вы используете менеджер RDP подключений , заданный вами номер RDP порта для подключения можно указать на вкладке “Connection Settings”.

  7. В результате вы успешно подключитесь к рабочему столу удаленного компьютера по новому номеру RDP порта (с помощью команды nenstat –na | Find “LIST” убедитесь, что служба RDP теперь слушает на другом порту).

Полный код PowerShell скрипт для смены RDP порта, создания правила в брандмауэре и перезапуска службы RDP на новом порту может выглядеть так:




New-NetFirewallRule -DisplayName "New RDP Port $RDPPort" -Direction Inbound –LocalPort $RDPPort -Protocol UDP -Action Allow

Write-host "Номер RDP порта изменен на $RDPPort " -ForegroundColor Magenta

Можно изменить номер RDP удаленно на нескольких компьютерах в домене AD (определенной OU) с помощью Invoke-Command и :

Write-host "Укажите номер нового RDP порта: " -ForegroundColor Yellow -NoNewline;$RDPPort = Read-Host
$PCs = Get-ADComputer -Filter * -SearchBase "CN=DMZ,CN=Computers,DC=winitpro,DC=ru"
Foreach ($PC in $PCs) {
Invoke-Command -ComputerName $PC.Name -ScriptBlock {
param ($RDPPort)
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-TCP\" -Name PortNumber -Value $RDPPort
New-NetFirewallRule -DisplayName "New RDP Port $RDPPort" -Direction Inbound –LocalPort $RDPPort -Protocol TCP -Action Allow
New-NetFirewallRule -DisplayName "New RDP Port $RDPPort" -Direction Inbound –LocalPort $RDPPort -Protocol TCP -Action Allow
Restart-Service termservice -force
}

Это инструкция по смене стандартного RDP порта подойдёт для любой версии Windows, начиная с Windows XP (Windows Server 2003) и заканчивая Windows 10 (Windows Server 2019).

RDP — Remote Desktop Protocol (Удаленный Рабочий Стол)

В первую очередь, здесь пойдет речь о StandAlone Server. То есть, об отдельно — стоящем сервере. А не о контроллерах домена и корпоративных сетях. (там как раз требуются высококвалифицированные специалисты)

Ситуация, когда тебе в голову пришла некая идея и ты решил ее воплотить в жизнь. И для ее реализации тебе необходимо наличие Сервера, который ты арендуешь в неком дата-центре.

Выбрал подходящий тариф, заплатил деньги и вот у тебя уже есть Сервер, на котором установлено необходимое тебе ПО. В большинстве случаев, для таких пробных проектов достаточно Windows 2003 Server. Вполне бюджетно и эффективно.

Техподдержка тебе выдаст IP адрес, Логин и Пароль для RDP доступа, и ты начинаешь свое путешествие, полное …, ну вообщем — мало не покажется.

По умолчанию, можно сказать, что этот сервис в Windows настроен так, чтобы доставить пользователю немало хлопот и проблем.

Хотя, конечно — он сам по себе работает и прекрасно выполняет свою функцию. Но со временем, (иногда, это может оказаться слишком поздно) беспечный владелец удаленного сервера ужаснется осознав, что реально творится с его системой и какая толпа жаждущих крови стоит вокруг стен его крепости.
Это как отключить инфракрасный фильтр у видеорегистратора и начать вдруг, видеть источники видеосъемки — камеры ГИБДД с фотофиксацией, и сигналы пультов дистанционного управления телевизором.

Ты начинаешь видеть и потом, возможно понимать.

С одной стороны — разработчики программного обеспечения делают вид, что они делают свои системы для обычного человека, и ты начинаешь этому верить.

Но с другой стороны — эти же разработчики, предполагают, что клавиатуру может взять в руки только сертифицированный специалист. И чтобы сертификат был этого года.

Такой вот парадокс.

Давай я расскажу тебе как все выглядит на самом деле.

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

Причем, я вот смотрю на логи, и вижу, что в большинстве своем, это одни и те же словари.

А твой сервер — вынужден отбиваться. А ты — не в курсе. И не понимаешь, почему у тебя низкая производительность, почему долго выполняются запросы.

Ты же о великом думаешь. Стратегически, о функционале. А тут — какие то тормоза не понятные.

Поэтому, ты начнешь оптимизировать память, удалять временные переменные, дефрагментировать диски и т.д.

И может быть даже внимательно посмотришь на вкладку «События» в оснастке управления.

Но уверяю тебя, что ты там не увидишь причину! Потому, что там не отображаются попытки неверного ввода логина и пароля. Возможно, ты даже будешь спорить с другими людьми, что тебя вот не ломают, потому, что боятся или уважают.
Нет. Уверяю тебя, просто разработчики — они такие веселые парни. И изначально немножко перевешивают чашу весов в сторону тьмы. Они говорят, что если бы эти события отображались бы, то нагрузка на сервер была бы более высокой.
Но вот, только надо заметить, что первое, что каждый должен сделать — это включить это отображение. Хотя, конечно существуют полностью закрытые от внешнего мира некие технологические системы, где никто и никогда ни чего не взламывает. Но там как раз такие системы и обслуживают целые команды профи.

Так, что давай, для начала — поправим эту ситуацию и приведем систему в нормальный рабочий вид.

Что мы сделаем:

  1. Ограничим количество разрешенных одновременно открытых сеансов.
    (Если ты сам администрируешь свой удаленный сервер, зачем тебе надо, чтобы кто-то кроме тебя одновременно с тобой управлял сервером?
    Хотя, еще один может понадобиться — например для техподдержки. А больше — зачем?)
  2. И включим свет. То есть позволим системе отображать в оснастке «Events» неудачные попытки входа.
    И вот тут — ты удивишься.
  3. Запретим доступ к серверу с более чем 3000 IP адресов, которые собственно говоря ничем другим не занимаются, кроме доставлять людям проблемы. Импортируем Черный Список.

Если ты от нечего делать сделаешь запросы в сети о настройке RDP, то встретишь очень много советов (и я сам долго был уверен, что они весьма эффективны, пока не решил провести эксперимент)

  1. Ограничить количество разрешенных ошибочных попыток входа.
    (Если ты не пьян — то 3х раз тебе хватит, чтобы понять, что клавиатура не на том языке и не на том регистре.)
  2. Ограничить время для этих 3х попыток.
    (Можно ведь, 3 раза за неделю, а можно — 3 раза в секунду, да еще и многопоточно. И потому, как никто из кулхацкеров не тычет в клавиатуру одним пальцем долго выбирая букву, то там идет приличный трафик, который за 10 минут, которые определили разработчики успеет перебрать несколько сотен, пару тысяч комбинаций.)
  3. Установить время блокировки для входа в случае, если ты пьян, или если — ты — это не ты.
    (По умолчанию — 3 минуты ни кого не огорчат. Выставим пол-часа. Пусть устанут ждать.)

Признаюсь, я очень обрадовался, когда нашел такие статьи, и тут же все сделал как надо. Был уверен, что вот теперь можно сосредоточиться на самом проекте, и не беспокоиться сильно за безопасность.

Как были десятки тысяч попыток в течении суток. (а я не сижу уткнувшись в монитор целый день, но раз в день захожу проверить работоспособность своих приложений) Так все и осталось.

И все никак не мог понять, как же так, вот я вижу, что у меня настроено 3 попытки и потом блокировка на 30 минут. А этот бот фигачит уже шесть часов без устали перебирая логины от «Administrator» до «ферапонта».
Но все было не досуг. И потом — я же все настроил, значит — должно работать!

Однажды, пришлось переносить один свой проект с одного сервера на другой, по причине выхода из строя RAID массива. И старый сервер, в течении некоторого времени был мне доступен, но на нем можно было без опасений попробовать провести опасные и не очень эксперименты. Поэтому — я решил на нем проверить.

Для этого, в течении нескольких минут пытался залогиниться с неправильным паролем, ожидая, что вот сейчас меня система аутентификации заблокирует. Фигушки. Ничего не произошло.

Я потратил пару дней на более детальное изучение этой проблемы. Погрузился в мануалы и скудные комментарии. Все как один уверяют на форумах — такой способ супер эффективный.

И вот, что я теперь тебе скажу:

  • во первых — этот способ работает только под контроллером домена (не знаешь — что это такое? Плюнь — это тебе не надо) а для standalone server — нужно погрузиться в специальные знания и выучить заклинания.
  • во вторых — оказывается, и видимо многие ошибочно и наивно предполагают иное (как и я сам), что при реализации такого механизма будет заблокирован тот, кто пытается войти.
    Нет — как раз, не он. А будешь заблокирован Ты!
    Да — именно твой аккаунт будет заблокирован на то время, которое там ты прописал. И ты сам ни за что не сможешь войти на свой собственный сервер!

Выходя из дома и заперев дверь — сломаю замок. Отморожу уши — назло Бабушке.

Но думаю, что расставание с такими иллюзиями — стоило пары дней мучений.

С преамбулой покончили. Давай займемся делом.

1. Ограничим количество разрешенных одновременно открытых сеансов.

Находим и открываем оснастку «Terminal Services Configuration»:

В этой оснастке выбираем открываем в «свойствах» RDP-Tcp вкладку , где и ограничиваем «Msximum Connections» до 2х, для всех сетевых адаптеров.

Жмем ОК. Теперь, одновременно с тобой сможет зайти только еще один человек. А без тебя — всем желающим придется становиться в шеренги по двое.
В очередь — сукины дети!

2. Включаем отображение неудачных попыток входа в оснастке «Events».

Находим и открываем оснастку «Local Security Settings» и в ней — раздел: «Audit Policy»:

И изменяем значения свойств всех записей «Audit» — как показано на скриншоте. Надо будет затем перезагрузиться, чтобы изменения стали активны.

Можно подождать и через несколько часов посмотреть на теперь уже реальную картину, чтобы осмыслить в каком мире мы живем, и кто нас в действительности окружает.

3. Запрещаем доступ к серверу от 100% зловредных IP адресов. Импортируем Черный Список.

Тут у тебя 2 варианта:

  • Быстрый и сразу все.
  • Ручной, с пониманием, что именно ты делаешь.
Быстрый способ.

После чего, у тебя должно получиться вот так:

Ручной способ, с пониманием.
  1. Вначале, необходимо создать дополнительную политику. Открываешь оснастку «Local Security Settings».
  2. Выбираешь раздел «IP Security Policies on Local Computer» и правой кнопкой: «Create IP Security Policy…» запускаешь Мастер настройки.
  3. Придумываешь имя для нового Правила. Например: «Block IP».
  4. Дальше, на все вопросы жми и в завершении у тебя будет форма для редактирования свойств Политики.
  5. Добавляем новое Правило. Жмем . и если стоит галочка Wizard, то запустится еще один Мастер, на вопросы которого нужно ответить.
  6. Tunnel Endpoint. жми
  7. Network Type. Там уже стоит «All network connections». жми
  8. IP Filter List.
    Добавляем новый Фильтр. Жмем и придумываем осмысленное Имя.

    Например: Block brute forcing IP.
    Список у него пока, что пустой. Сохраняем как есть.

Достаточно часто у многих пользователей, которые используют сеансы удаленного доступа, возникает вопрос, как изменить порт RDP. Сейчас посмотрим на простейшие решения, а также укажем несколько основных этапов в процессе настройки.

Для чего нужен протокол RDP?

Для начала несколько слов о том, RDP. Если посмотреть на расшифровку аббревиатуры, можно понять, что удаленного доступа

Говоря простым языком, это средство терминальному серверу или рабочей станции. Настройки Windows (причем любой из версий системы) используют параметры по умолчанию, которые подходят большинству пользователей. Тем нем менее иногда возникает необходимость их изменения.

Стандартный порт RDP: нужно ли его менять?

Итак, вне зависимости от модификации Windows все протоколы имеют предустановленное значение. Это порт RDP 3389, который и используется для осуществления сеанса связи (подключения одного терминала к удаленным).

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

Изменение настроек в системном реестре

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

Для начала вызываем стандартный редактор реестра командой regedit в меню «Выполнить» (Win + R). Здесь нас интересует ветка HKLM, в которой по дереву разделов нужно спуститься через директорию терминального сервера до каталога RDP-Tcp. В окне справа находим ключ PortNumber. Его-то значение нам и нужно поменять.

Заходим в редактирование и видим там 00000D3D. Многие сразу недоумевают по поводу того, что это такое. А это просто шестнадцатеричное представление десятичного числа 3389. Чтобы указать порт именно в десятичном виде, используем соответствующую строку отображения представления значения, а затем указываем нужный нам параметр.

После этого перегружаем систему, а при попытке подключения указываем новый порт RDP. Еще одним способом подключения является использование специальной команды mstsc /v:ip_address:XXXXX, где XXXXX - новый номер порта. Но и это еще не все.

Правила для файрволла Windows

Увы, но встроенный брандмауэр Windows может блокировать новый порт. Значит, необходимо внести изменения в настройки самого фаервола.

Вызываем настройки фаервола с расширенными параметрами безопасности. Тут следует сначала выбрать входящие подключения и кликнуть на строке создания нового правила. Теперь выбираем пункт создания правила для порта, затем вводим его значение для TCP, далее разрешаем подключение, раздел профилей оставляем без изменений и наконец присваиваем новому правилу название, после чего жмем кнопку завершения настройки. Остается перегрузить сервер и при подключении указать новый порт RDP через двоеточие в соответствующей строке. По идее, проблем наблюдаться не должно.

Проброс порта RDP на роутере

В некоторых случаях, когда используется беспроводное соединение, а не кабельное, может потребоваться сделать проброс порта на маршрутизаторе (роутере). Ничего сложного в этом нет.

Сначала в свойствах системы разрешаем и указываем пользователей, имеющих на это право. Затем заходим в меню настроек роутера через браузер (192.168.1.1 или в конце 0.1 - все зависит от модели роутера). В поле (если основной адрес у нас 1.1) желательно указать адрес, начиная с третьего (1.3), а правило выдачи адреса прописать для второго (1.2).

Затем в сетевых подключениях используем просмотр деталей, где следует просмотреть детали, скопировать оттуда физический MAC-адрес и вставить его в параметры роутера.

Теперь в разделе настроек NAT на модеме включаем подключение к серверу, добавляем правило и указываем порт XXXXX, который нужно пробросить на стандартный порт RDP 3389. Сохраняем изменения и перегружаем роутер (без перезагрузки новый порт воспринят не будет). Проверить подключение можно на каком-нибудь специализированном сайте вроде ping.eu в разделе тестирования портов. Как видим, все просто.

Напоследок обратите внимание, что значения портов распределяются следующим образом:

  • 0 - 1023 - порты для низкоуровневых системных программ;
  • 1024 - 49151 - порты, выделяемые для частных целей;
  • 49152 - 65535 - динамические приватные порты.

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

Что же касается именно такая процедура используется в основном только в случаях Wi-Fi-соединения. Как уже можно было заметить, при обычном проводном подключении она не требуется: достаточно изменить значения ключей реестра и добавить правила для порта в файрволле.

Наверняка, многие из вас уже слышали и видели эту аббревиатуру - дословно переводится она, как Протокол удалённого рабочего стола (Remote Desktop Protocol) . Если кого-то интересуют технические тонкости работы этого протокола прикладного уровня - могут почитать литературу, начиная с той же самой википедии. Мы же рассмотрим чисто практические аспекты. А именно тот, что данный протокол позволяет удалённо подключаться к компьютерам, под управлением Windows различных версий с использованием встроенного в Windows инструмента «Подключение к удалённому рабочему столу».

Какие плюсы и минусы в использовании протокола RDP?

Начнём с приятного - с плюсов. Плюс состоит в том, что этот инструмент, который правильней называть Клиентом RDP , доступен любому пользователю Windows как на компьютере, с которого предстоит управлять удалённым, так и тому, кто хочет к своему компьютеру удалённый доступ открыть.

Через подключение к удалённому рабочему столу возможно не только видеть удалённый рабочий стол и пользоваться ресурсами удалённого компьютера, так и подключать к нему локальные диски, принтеры, смарткарты и т.п. Конечно, если вы захотите посмотреть видео или послушать музыку через RDP - вряд ли этот процесс доставит вам удовольствие, т.к. в большинстве случаев вы увидите слайд шоу, и звук скорей всего будет прерываться. Но, не под эти задачи разрабатывалась служба RDP.

Ещё одним несомненным плюсом является то, что подключение к компьютеру осуществляется безо всяких дополнительных программок, которые в большинстве своём платные, хотя и имеют свои достоинства. Время доступа к RDP-серверу (которым и является ваш удалённый компьютер) ограничивается лишь вашим желанием.

Минусов всего два. Один существенный, другой - не очень. Первый и существенный - для работы с RDP компьютер, к которому осуществляется подключение, должен иметь белый (внешний) IP, либо на этот компьютер должна быть возможность «пробросить» порт с маршрутизатора, который опять же должен иметь внешний IP. Статическим он будет или динамическим - значения не имеет, но он должен быть.

Второй минус - не такой существенный - последние версии клиента перестали поддерживать 16-цветную цветовую схему. Минимум - 15бит. Это сильно замедляет работу по RDP, когда вы подключаетесь по чахлому-дохлому интернету со скоростью, не превышающей 64 килобита в секунду.

Для чего можно использовать удалённый доступ по RDP?

Организации, как правило, используют RDP-сервера для совместной работы в программе 1С. А некоторые, даже, разворачивают на них рабочие места пользователей. Таким образом, пользователь, особенно, если у него разъездная работа, может при наличии 3G интернета или отельного/кафешного Wi-Fi - подключаться к своему рабочему месту удалённо и решать все вопросы.

В некоторых случаях домашние пользователи могут использовать удалённый доступ к своему домашнему компьютеру, чтобы получить какие-то данные с домашних ресурсов. В принципе, служба удалённого рабочего стола позволяет полноценно работать с текстовыми, инженерными и графическими приложениями. С обработкой видео и звука по вышеприведённым причинам - работать не получится, но всё равно - это очень существенный плюс. А ещё можно на работе просматривать закрытые политикой компании ресурсы, подключившись к домашнему компьютеру безо всяких анонимайзеров, vpn и прочей нечисти.

Подготавливаем интернет

В предыдущем разделе мы говорили о том, что для обеспечения возможности удалённого доступа по протоколу RDP нам необходим внешний IP-адрес. Этот сервис может обеспечить провайдер, поэтому звоним или пишем, или заходим в личный кабинет и организовываем предоставление этого адреса. В идеале он должен быть статический, но и с динамическим, в принципе, можно жить.

Если кому-то не понятна терминология, то статический адрес - это постоянный, а динамический - время от времени меняется. Для того, чтобы полноценно работать с динамическими IP-адресами придумали различные сервисы, которые обеспечивают привязку динамического домена. Что и как, скоро будет статья на эту тему.

Подготавливаем роутер

Если ваш компьютер подключен не напрямую к провайдерскому проводу к интернету, а через роутер - с этим устройством нам придётся тоже совершить некоторые манипуляции. А именно - пробросить порт сервиса - 3389 . В противном случае NAT вашего роутера попросту не будет пускать вас внутрь домашней сети. Тоже относится к настройке RDP-сервера в организации. Если вы не знаете, как пробросить порт - читайте статью про то, Как пробросить порты на маршрутизаторе (откроется в новой вкладке), потом возвращайтесь сюда.

Подготавливаем компьютер

Для того, чтобы создать возможность удалённого подключения к компьютеру, необходимо сделать ровно две вещи:

Разрешить подключение в Свойствах Системы;
- задать пароль для текущего пользователя (если он не имеет пароля), либо создать нового пользователя с паролем специально для подключения по RDP.

Как поступать с пользователем - решайте сами. Однако, имейте ввиду, что штатно не серверные операционные системы не поддерживают множественный вход. Т.е. если вы залогинились под собой локально (консольно), а потом зайдёте под тем же пользователем удалённо - локальный экран заблокируется и сеанс на том же самом месте откроется в окне Подключения к удалённому рабочему столу. Введёте пароль локально, не выйдя из RDP - вас выкинет из удалённого доступа, и вы увидите текущий экран на своём локальном мониторе. Тоже самое вас ждёт, если вы зайдёте консольно под одним пользователем, а удалённо попытаетесь зайти под другим. В этом случае система предложит завершить сеанс локального пользователя, что не всегда может быть удобно.

Итак, заходим в Пуск , щёлкаем правой кнопкой по меню Компьютер и нажимаем Свойства .

В свойствах Системы выбираем Дополнительные параметры системы

В открывшемся окне переходим на вкладку Удалённый доступ

…нажимаем Дополнительно

И ставим единственную галку на этой странице.

Это «домашняя» версия Windows 7 - у кого Pro и выше, будет больше флажков и возможно сделать разграничение доступа.

Нажимаем ОК везде.

Теперь, вы можете зайти в Подключение к удалённому рабочему столу (Пуск>Все программы>Стандартные), вбить туда IP-адрес компьютера, либо имя, если хотите подключиться к нему из своей домашней сети и пользоваться всеми ресурсами.

Вот так. В принципе, всё просто. Если вдруг будут какие-то вопросы или что-то останется непонятным - добро пожаловать в комментарии.

Служба удаленного рабочего стола (Remote Desktop Services - RDS) в Windows Server 2008 R2 имеет нечто большее, чем просто новое название; это вам не устаревшая служба терминалов. Благодаря новым компонентам (некоторые из них были представлены в Windows Server 2008), таким как RemoteApp, RD Gateway и RD Virtualization Host, эта роль сервера Windows теперь предоставляет вам гибкость в установке отдельных приложений или полных машин с помощью RDS или VDI решения – во многих случаях без необходимости в использовании Citrix или иных добавляемых модулей сторонних производителей.

Но как на счет безопасности? Все эти добавленные сложности сказываются на дополнительных моментах в области безопасности. В этой статье мы рассмотрим механизмы безопасности, встроенные в RDS, как использовать параметры конфигурации и групповую политику для повышения уровня безопасности, а также рекомендации к безопасности установки RDS.

Что нового в R2

Если вы приступаете к работе с RDS после работы со службами терминалов Windows Server 2008 Terminal Services, вы не встретите там много значительных изменений, как при переходе с Windows Server 2003. WS 2008 добавил некоторые значительные улучшения в службы терминалов, включая TS Web Access для подключения через браузер, TS Gateway для пользователей, подключающихся через интернет, RemoteApp для доставки отдельных приложений пользователям через Remote Desktop Protocol (RDP) протокол и Session Broker, который включает функцию балансировки нагрузки.

  • Виртуализация удаленного рабочего стола (Remote Desktop Virtualization) для VDI решения
  • RDS Provider для PowerShell, чтобы администраторы могли изменять конфигурацию и выполнять задачи в интерпретаторе команд и с помощью сценариев
  • Виртуализация сетевого адреса (Remote Desktop IP Virtualization), которая позволяет присваивать IP адреса соединениям для каждого отдельного сеанса или программы
  • Новая версия RDP и Remote Desktop Connection (RDC) клиента, версия 7.0
  • Fair Share CPU планирование для динамического распределения времени обработки между сеансами на основе количества активных сеансов.
  • Совместимость с Windows Installer для упрощения установки программ, требующих настройки под отдельных пользователей.
  • Действительная поддержка нескольких мониторов (до 16 штук), благодаря которым программы работают так же, как они работают на клиентских машинах.

Также есть улучшения в аудио/видео и поддержке Windows Aero в RD сеансе (однако обратите внимание, что Desktop Composition, которая обеспечивает работу Aero, не поддерживается в сеансах с несколькими мониторами).

Аспекты и механизмы безопасности

Конечно потенциальные проблемы безопасности зависят от того, как устанавливать RDS. Если у вас более сложная конфигурация, в которой пользователи подключаются через интернет и/или браузер, у вас будет больше аспектов безопасности, которые нужно учитывать и прорабатывать, нежели при использовании простой конфигурации, в которой пользователи подключаются исключительно через RDC клиентов по LAN.

RDS включает ряд механизмов безопасности, которые помогут сделать RD подключения более безопасными.

Проверка подлинности на сетевом уровне (Network Level Authentication)

Для максимального уровня безопасности следует требовать проверку подлинности на сетевом уровне (Network Level Authentication - NLA) для всех подключений. NLA требует, чтобы пользователи аутентифицировались на сервере RD Session Host, прежде чем сеанс будет создан. Это помогает защитить удаленные компьютеры от злоумышленных пользователей и вредоносного ПО. Чтобы использовать NLA, клиентский компьютер должен использовать операционную систему, которая поддерживает протоколы Credential Security Support Provider (CredSSP), то есть Windows XP SP3 и выше, а также иметь клиента RDC 6.0 или выше.

NLA настраивается на сервере RD Session Host в следующем разделе: Инструменты администрирования (Administrative Tools) | Службы удаленного рабочего стола (Remote Desktop Services) | Конфигурация узла сеансов удаленного рабочего стола (Desktop Session Host Configuration). Для настройки подключения на использование NLA, выполните следующие шаги:

  1. Нажмите правой клавишей Подключение (Connection)
  2. Выберите Свойства
  3. Перейдите в закладку Общие (General)
  4. Отметьте флажком опцию " Разрешать подключения только от компьютеров с удаленным рабочим столом с сетевой проверкой подлинности (Allow connections only from computers running Remote Desktop with Network Level Authentication)", как показано на рисунке 1
  5. Нажмите OK.

Рисунок 1

Протокол Transport Layer Security (TLS)

Сеанс RDS может использовать один из трех уровней безопасности для защиты подключений между клиентами и сервером RDS Session Host:

  • Уровень безопасности RDP " этот уровень использует собственное RDP шифрование и является наименее безопасным. Сервер RD Session Host не проходит проверку подлинности.
  • Согласовать (Negotiate) " TLS 1.0 (SSL) шифрование будет использоваться, если клиент его поддерживает. Если нет, сеанс перейдет обратно на RDP безопасность.
  • SSL " TLS 1.0 шифрование будет использоваться для проверки подлинности сервера и шифрования данных, передаваемых между клиентом и Session Host сервером. Это самая безопасная опция.

Вдобавок к выбору уровня безопасности можно также выбрать уровень шифрования подключения. Здесь есть следующие варианты:

  • Низкий (Low) " использует 56-разрядное шифрование для данных, пересылаемых с клиента на сервер. Не шифрует данные, пересылаемые с сервера клиенту.
  • Совместимый с клиентом (Client Compatible) " это опция по умолчанию. Она шифрует данные передаваемые между клиентом и сервером с самым надежным ключом, который поддерживает клиент.
  • Высокий (High) " эта опция шифрует данные в обоих направлениях между клиентом и сервером с помощью 128-битного шифрования.
  • FIPS-совместимый (FIPS Compliant) " эта опция шифрует данные передаваемые в обоих направлениях между клиентом и сервером с помощью FIPS 140-1 утвержденного алгоритма шифрования.

Обратите внимание, что если выбрать опцию «Высокий» или «FIPS-совместимый», любые клиенты, не поддерживающие такие уровни шифрования, не смогут подключиться.

Вот, как настраивать параметры проверки подлинности и шифрования сервера:

  1. На сервере RD Session Host откройте раздел конфигурации Remote Desktop Session Host Configuration, а затем свойства подключения, как говорилось выше.
  2. В закладке Общие выберите соответствующий уровень безопасности и шифрования из раскрывающегося списка, как показано на рисунке 2.
  3. Нажмите OK.

Рисунок 2

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

Групповая политика

Есть ряд параметров групповой политики для RDS в Windows Server 2008 R2. Они расположены в разделе Конфигурация компьютера (Computer Configuration)\ Политики (Policies)\ Административные шаблоны (Administrative Templates)\ Компоненты Windows (Windows Components)\ Службы удаленного рабочего стола (Remote Desktop Services) в консоли управления групповой политикой вашего домена, как показано на рисунке 3.

Как вы видите, здесь есть политики для лицензирования RDC клиентов и сервера RD Session Host. Политики для сервера RD Session Host, связанные с безопасностью, включают:

  • Шаблон сертификата проверки подлинности сервера (Server Authentication Certificate Template): используйте эту политику, чтобы указать имя шаблона сертификата, которые определяет, какой сертификат будет автоматически выбираться для проверки подлинности сервера RD Session Host. Если включить эту политику, только сертификаты, создаваемые с помощью указанного шаблона, будут учитываться при выборе сертификата для проверки подлинности сервера RD Session Host.
  • Задать уровень шифрования клиентских подключений (Set Client Connection Encryption Level): эта политика используется, чтобы контролировать то, будет ли требоваться определенный уровень шифрования. Когда вы включаете эту политику, все соединения должны использовать указанный уровень шифрования. Уровнем шифрования по умолчанию является Высокий уровень.
  • Всегда запрашивать пароль при подключении (Always Prompt for Password upon Connection): можно использовать эту политику, чтобы заставить RDS всегда запрашивать пароль пользователя при входе в RD сеанс, даже если пароль введен на RDC клиенте. По умолчанию, пользователи могут входить автоматически, если пароль введен на клиенте RDC.
  • Требовать защищенные RPC соединения (Require Secure RPC Communication): включение этой политики означает, что только зашифрованные и прошедшие проверку подлинности запросы с клиентов будут разрешены. Соединения с не доверенными клиентами не будут разрешены.
  • Требовать использование определенного уровня безопасности для RDP подключений (Require Use of Specific Security Layer for Remote (RDP) Connections): если включить эту политику, все соединения между клиентами и серверами Session Host должны использовать уровень безопасности, который вы здесь укажете (RDP, Negotiate или SSL/TLS)
  • Не разрешать локальным администраторам настраивать разрешения (Do Not Allow Local Administrators to Customize Permissions): эта политика отключает права администраторов на изменение разрешений безопасности в инструментах настройки RD Session Host Configuration, что не позволяет локальным администраторам изменять группы пользователей в закладке Разрешений (Permissions) в инструменте конфигурации.
  • Требовать проверку подлинности пользователя для удаленных подключений путем проверки подлинности на уровне сети (Require User Authentication for Remote Connections by using Network Level Authentication): с помощью этой политики вы можете требовать NLA для всех удаленных подключений к серверу RD Session Host. Только клиенты с поддержкой NLA смогут подключаться.

Примечание: вот, как узнать, поддерживает ли клиентский компьютер проверку подлинности на сетевом уровне: откройте RDC клиент и нажмите значок в верхнем левом углу, затем выберите "О программе (about) ". Если NLA поддерживается, вы увидите строку "Network Level Authentication Supported".

Другие параметры групповой политики, о которых следует упомянуть, расположены в разделе клиентских соединений RD Connection Client. Они включают:

  • Не разрешать сохранение паролей (Do not allow passwords to be saved): включение этого параметра отключит опцию сохранения паролей в диалоге клиента RDC. Если пользователь откроет RDP файл и сохранит свои параметры, ранее сохраненные пароли будут удалены. Это заставляет пользователя вводить свой пароль при каждом входе.
  • Указывать отпечатки SHA1 сертификатов, представляющих доверенных издателей RDP (Specify SHA1 thumbprints of certificates representing trusted .rdp publishers): с помощью этого параметра можно указать список отпечатков SHA1 сертификатов, и если сертификат соответствует отпечаткам в списке, он будет считаться доверенным.
  • Запрашивать учетные данные на клиентском компьютере (Prompt for credentials on the client computer) : эта политика включает запрос учетных данных на клиентских компьютерах, а не на сервере RD Session Host.
  • Настроить проверку подлинности сервера для клиента (Configure server authentication for client) : с помощью этого параметра можно указать, сможет ли клиент создать подключение к RD Session Host серверу, когда не может проверить подлинность сервера RD Session Host. Самым безопасным параметром будет опция "Не подключаться при неудачной аутентификации (Do not connect if authentication fails)."

Можно также использовать групповую политику для настройки FIPS соответствия, но эту политику здесь не найти с другими RDS политиками безопасности. Она расположена в следующем разделе: Конфигурация компьютера (Computer Configuration)\Настройки Windows (Windows Settings)\Настройки безопасности (Security Settings)\ Локальные политики (Local Policies)\Опции безопасности (Security Options). В правой панели пролистайте вниз к: Системная криптография: использовать FIPS-совместимые алгоритмы для шифрования, хеширования и подписывания ("System Cryptography: use FIPS compliant algorithms for encryption, hashing and signing"). При включении этой политики она поддерживает только Triple DES (3DES) алгоритм шифрования для RDS соединений.

RD Web Access

На компьютерах, где не установлен RDC клиент, пользователи могут получать доступ к опубликованным приложениям, к которым они имеют доступ из веб браузера. Пользователь переходит на URL адрес, по которому опубликованы RDS ресурсы. Сервер веб доступа RD Web Access Server является отдельным от RD Session Host сервером. Вы указываете, какие RD Web Access серверы могут подключаться к каким RD Session Host серверам.

Веб интерфейс настраивается с SSL и пользователь должен пройти проверку подлинности с помощью своих учетных данных. Прошедший проверку подлинности пользователь сможет увидеть лишь те RemoteApp программы, использование которых разрешено для его учетной записи, поскольку эти опубликованные программы «урезаются» с помощью списка управления доступом (ACL).

Сервер Web Access использует X.509 сертификат для обеспечения шифрования. По умолчанию используется саморегистрирующийся сертификат. Для большей безопасности следует получить сертификат в публичном центре сертификации или в PKI вашей компании.

RD Gateway

The RD Gateway (RDG) используется для предоставления пользователям доступа к RD ресурсам через интернет. Сервер шлюза Gateway расположен на границе, и он фильтрует входящие RDS запросы в соответствии с Network Policy Server (NPS). NPS использует две политики: Политика авторизации подключений (Connection Authorization Policy - CAP), в которой указывается, какие пользователи могут иметь доступ к RDG и Политика авторизации ресурсов (Resource Authorization Policy - RAP), указывающая, к каким устройствам CAP пользователь может подключаться через RDG.

Заключение

Службы удаленного рабочего стола в Windows Server 2008 R2 значительно расширяют функционал своего предшественника, службы терминалов " но они также представляют некоторые новые аспекты безопасности, которые следует учитывать. Следуя рекомендациям к обеспечению максимальной безопасности при настройке компонентов RDS конфигурации " RD Session Host, RD Web Access Server, RD Gateway и клиент " а также используя групповую политику для управления конфигурацией, вы сможете получить безопасную среду и воспользоваться преимуществами RDS доставки приложений и обеспечить своим пользователям ощущение работы на полноценных компьютерах.