Защита RDP соединения при помощи SSL. Порт RDP: изменение значения по умолчанию и основные этапы настройки Защита rdp подключения

Добрый день уважаемые читатели и гости блога, сегодня у нас с вами вот такая задача: изменить входящий порт службы RDP (терминального сервера) со стандартного 3389 на какой-то другой. Напоминаю, что RDP служба это функционал операционных систем Windows, благодаря которому вы можете по сети открыть сессию на нужный вам компьютер или сервер по протоколу RDP, и иметь возможность за ним работать, так как будто вы сидите за ним локально.

Что такое RDP протокол

Прежде чем, что то изменять, хорошо бы понимать, что это и как это работает, я вам об этом не перестаю повторять. RDP или Remote Desktop Protocol это протокол удалённого рабочего стола в операционных системах Microsoft Windows, хотя его происхождение идет от компании PictureTel (Polycom). Microsoft просто его купила. Используется для удаленной работы сотрудника или пользователя с удаленным сервером. Чаще всего такие сервера несут роль сервер терминалов , на котором выделены специальные лицензии, либо на пользователе, либо на устройства, CAL. Тут задумка была такой, есть очень мощный сервер, то почему бы не использовать его ресурсы совместно, например под приложение 1С. Особенно это становится актуальным с появлением тонких клиентов.

Сам сервер терминалов мир увидел, аж в 1998 году в операционной системе Windows NT 4.0 Terminal Server, я если честно тогда и не знал, что такое есть, да и в России мы в то время все играли в денди или сегу. Клиенты RDP соединения, на текущий момент есть во всех версиях Windows, Linux, MacOS, Android. Самая современная версия RDP протокола на текущий момент 8.1.

Порт rdp по умолчанию

Сразу напишу порт rdp по умолчанию 3389, я думаю все системные администраторы его знают.

Принцип работы протокола rdp

И так мы с вами поняли для чего придумали Remote Desktop Protocol, теперь логично, что нужно понять принципы его работы. Компания Майкрософт выделяет два режима протокола RDP:

  • Remote administration mode > для администрирования, вы попадаете на удаленный сервер и настраиваете и администрируете его
  • Terminal Server mode > для доступа к серверу приложений, Remote App или совместное использование его для работы.

Вообще если вы без сервера терминалов устанавливаете Windows Server 2008 R2 - 2016, то там по умолчанию у него будет две лицензии, и к нему одновременно смогут подключиться два пользователя, третьему придется для работы кого то выкидывать. В клиентских версиях Windows, лицензий всего одна, но и это можно обойти, я об этом рассказывал в статье сервер терминалов на windows 7 . Так же Remote administration mode, можно кластеризировать и сбалансировать нагрузку, благодаря технологии NLB и сервера сервера подключений Session Directory Service. Он используется для индексации пользовательских сессий, благодаря именно этому серверу у пользователя получиться войти на удаленный рабочий стол терминальных серверов в распределенной среде. Так же обязательными компонентами идут сервер лицензирования .

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

Remote Desktop Protocol поддерживает несколько виртуальных каналов в рамках одного соединения, благодаря этому можно использовать дополнительный функционал

  • Передать на сервер свой принтер или COM порт
  • Перенаправить на сервер свои локальные диски
  • Буфер обмена
  • Аудио и видео

Этапы RDP соединения

  • Установка соединения
  • Согласование параметров шифрования
  • Аутентификация серверов
  • Согласование параметров RDP сессии
  • Аутентификация клиента
  • Данные RDP сессии
  • Разрыв RDP сессии

Безопасность в RDP протоколе

Remote Desktop Protocol имеет два метода аутентификации Standard RDP Security и Enhanced RDP Security, ниже рассмотрим оба более подробно.

Standard RDP Security

RDP протокол при данном методе аутентификации, шифрует подключение средствами самого RDP протокола, которые есть в нем, вот таким методом:

  • Когда ваша операционная система запускается, то идет генерация пары RSA ключиков
  • Идет создание сертификата открытого ключа Proprietary Certificate
  • После чего Proprietary Certificate подписывается RSA ключом созданным ранее
  • Теперь RDP клиент подключившись к терминальному серверу получит Proprietary Certificate
  • Клиент его смотрит и сверяет, далее получает открытый ключ сервера, который используется на этапе согласования параметров шифрования.

Если рассмотреть алгоритм с помощью которого все шифруется, то это потоковый шифр RC4. Ключи разной длины от 40 до 168 бит, все зависит от редакции операционной системы Windows, например в Windows 2008 Server – 168 бит. Как только сервер и клиент определились с длиной ключа, генерируются два новых различных ключа, для шифрования данных.

Если вы спросите про целостность данных, то тут она достигается за счет алгоритма MAC (Message Authentication Code) базируемого на SHA1 и MD5

Enhanced RDP Security

RDP протокол при данном методе аутентификации использует два внешних модуля безопасности:

  • CredSSP
  • TLS 1.0

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

Когда вы задействуете CredSSP протокол, то это симбиоз технологий Kerberos, NTLM и TLS. При данном протоколе сама проверка, при которой проверяется разрешение на вход на терминальный сервер осуществляется заранее, а не после полноценного RDP подключения, и тем самым вы экономите ресурсы терминального сервера, плюс тут более надежное шифрование и можно делать однократный вход в систему (Single Sign On), благодаря NTLM и Kerberos. CredSSP идет только в ОС не ниже Vista и Windows Server 2008. Вот эта галка в свойствах системы

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

Изменить порт rdp

Для того, чтобы изменить порт rdp, вам потребуется:

  1. Открываем редактор реестра (Пуск -> Выполнить -> regedit.exe)
  2. Переходим к следующему разделу:

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

Находим ключ PortNumber и меняем его значение на номер порта, который Вам нужен.

Выберите обязательно десятичное значение, я для примера поставлю порт 12345.

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

И создаем новое входящее правило для нового rdp порта. Напоминаю, что порт rdp по умолчанию 3389.

Выбираем, что правило будет для порта

Протокол оставляем TCP и указываем новый номер RDP порта.

Правило у нас будет разрешающее RDP соединение по не стандартному порту

При необходимости задаем нужные сетевые профили.

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

Служба удаленного рабочего стола (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 доставки приложений и обеспечить своим пользователям ощущение работы на полноценных компьютерах.

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.
    Список у него пока, что пустой. Сохраняем как есть.

По умолчанию во всех операционных системах 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).

Всем привет, продолжаем рассматривать тему про . Сегодня мы с вами рассмотрим встроенное средство Windows, позволяющее подключиться к удаленному ПК. Данное средство называется RDP (Remote Desktop Protocol) клиент, если перевести на Русский — протокол удаленного рабочего стола. По данному протоколу можно управлять удаленным компьютером, на котором запущен сервис терминальных подключений. RDP клиент появился еще в Windows XP и до сих пор, поддерживается в новых версиях операционной системы. Скорее всего, многие из вас, даже не знают, что это такое, а ведь при помощи данного средства, можно без труда подключиться к удаленному компьютеру и управлять им. В статье я вам подробно расскажу, как выполнять подключение к удаленному рабочему столу в локальной сети. Поэтому, читайте текст полностью.

Подготовка перед использованием RDP клиента.

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

Первое, что необходимо сделать, чтобы выполнить подключение по Remote Desktop Protocol необходимо знать IP адрес удаленного компьютера. Как правило, если сетевое подключение на ваших компьютерах настраивается автоматически, то при каждой перезагрузке операционной системы, IP адреса будут меняться. Поэтому, первым делом, мы с вами задаем статические адреса для всех устройств в вашей локальной сети. Но для начала, необходимо посмотреть, какие адреса, получает компьютер автоматически. Для этого . Прописываем команду «ipconfig» и видим, какие: маска сети, маска подсети и шлюз получает сетевая карта при автоматических настройках.


Обратите внимание! Как правило, на всех роутерах по умолчанию маска сети имеет вид (192.168.0. или 192.168.1.) соответственно, прописываем все строки как показано на скриншоте и сохраняем изменения.

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

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

После того, как мы с вами разобрались с адресами компьютеров. Переходим к включению функции Remote Desktop Protocol. Данные действия необходимо выполнять на компьютере, к которому вы хотите подключаться. Чтобы все заработало, выполняем действия по шагам:


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

Выполняем подключение к удаленному компьютеру по RDP.

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

Обратите внимание! Мы будем использовать стандартное средство Windows. Соответственно, нам не придется скачивать какие-то сторонние утилиты, все необходимое будет у нас под рукой.

Для того, чтобы запустить средство «Подключение к удаленному рабочему столу» откройте меню «Пуск» — «Все программы» — «Стандартные – Windows». В открывшемся пункте меню мы запускаем RDP клиент и видим поле под названием «Компьютер». В него необходимо ввести адрес удаленного компьютера, т.е. того, на котором мы задавали статический IP адрес. После нажатия на кнопку подключить, программа попросит вас ввести «Логин и пароль» для подключения к удаленному ПК.

Так же можно открыть дополнительные настройки, для этого откройте пункт «Показать параметры». Здесь можно сразу указать пользователя удаленного компьютера, настроить локальные ресурсы, а также параметры экрана. Но думаю, что лучше все оставить по умолчанию и приступить к управлению удаленным ПК.

RDP клиент -плюсы и минусы.

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

  • Для того, чтобы выполнить соединение с удаленным ПК, вам не потребуется искать и устанавливать какие-либо программы. Все предусмотрено разработчиками компании Майкрософт и средство встроено в операционную систему;
  • При помощи удаленного рабочего стола можно получить полный доступ к компьютеру. Что позволяет выполнять на нем любые действия;
  • Неограниченное время доступа к удаленному ПК.

На этом, плюсы заканчиваются, переходим к минусам использования данной утилиты:

  • Программа корректно работает только в локальной сети, чтобы настроить соединение через интернет, необходимо лезть в настройки роутера для проброса порта, что является проблемой для многих пользователей;
  • Если вы используете VPN, то для того, чтобы подключиться к удаленному компьютеру, используя RDP клиент, необходима хорошая скорость интернета, иначе вы будете смотреть слайд шоу;
  • Программа имеет минимальный набор функций, а также не имеет встроенного файлового менеджера соответственно передать файлы нет возможности;

Подведем итоги.

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