ServerAdmin.ru
28.9K subscribers
305 photos
35 videos
13 files
2.63K links
Авторская информация о системном администрировании.

Информация о рекламе: @srv_admin_reklama_bot
Автор: @zeroxzed

Второй канал: @srv_admin_live
Сайт: serveradmin.ru
Download Telegram
Есть много способов защитить подключение из интернета к Windows серверу по RDP. Приведу наиболее известные:

1️⃣ Самое надёжное и очевидное - настроить клиентам VPN, а доступ к серверу разрешить только через этот тоннель. Самый главный минус тут один - клиентам надо у себя на компьютерах настраивать VPN соединение. Где-то оно может блокироваться или работать ненадёжно.

2️⃣ Настроить шлюз Remote Desktop Gateway на базе Windows Server и осуществлять подключение через него. Это простое и удобное для пользователей решение, так как им не нужно делать никаких дополнительных настроек у себя, кроме добавления лишнего параметра в настройки RDP соединения. Я не знаю точно, насколько это безопасное решение. Не припоминаю, чтобы у RDG находили какие-то серьезные уязвимости.

3️⃣ Настроить подключение по RDP через браузер с помощью Apache Guacamole. С одной стороны удобно работать через браузер, так как не надо вообще ничего настраивать на клиенте, но с другой стороны при работе через браузер есть много нюансов с пробросом горячих клавиш, буфера обмена, с подключением принтеров. Подходит не всегда и не всем, но лично я настраивал подобные подключения и людей устраивало. Подобные подключения можно проксировать через Nginx, анализировать логи подключений с помощью fail2ban, добавлять basic auth и т.д.

4️⃣ Первые три способа я пробовал лично. Расскажу про ещё один, о котором узнал от знакомого. Есть софт, похожий на Apache Guacamole, только под Windows - Myrtille (open source). Настраивать сильно проще, чем AG (с этим есть объективные сложности, надо немного разбираться в теме). Обычный виндовый инсталлятор «Далее - Далее - ОК». Затем открываем браузер, заходим по адресу приложения и настраиваем. Поддерживает RDP, SSH и доступ к виртуальным машинам под Hyper-V. Веб клиент реализован на базе HTML5. Подключения можно также проксировать через Nginx, подключить сертификат, добавить basic auth и т.д. Myrtille поддерживает и печать, и передачу файлов.

5️⃣ Для полноты картины упомяну еще пару способов, которые сам не использовал, но знаю, что так можно. Проксировать RDP соединения напрямую умеет Nginx с помощью stream. Также шлюзом для RDP соединений может выступать HAProxy. Причём он умеет идентифицировать RDP, парсить rdp_cookie. Например, для запоминания связки "имя пользователя - сервер" и подключать пользователя к одному и тому же серверу. Актуально, если у вас HAProxy балансирует подключения на несколько RDP серверов.

А вы какой способ используете для защиты RDP? Может есть ещё что-то простое и удобное?

#windows #rdp #security
​​Продолжу вчерашнюю тему про RDP. Судя по комментариям, есть немало людей, которые просто ставят аналог fail2ban, только под Windows. Я ранее рассказывал про подобные решения:

RDP Defender - https://t.me/srv_admin/1168
EvlWatcher - https://t.me/srv_admin/1680
IP Ban - https://t.me/srv_admin/1657

Мне лично RDP Defender больше всего нравится. Но есть ещё один бесплатный продукт, который раньше был популярен - Cyberarms IDDS. А сейчас у него даже сайт не открывается. Тем не менее, на github хранятся исходники и скомпилированная версия - https://github.com/EFTEC/Cyberarms Обновлений не было 5 лет. Я решил проверить, он вообще рабочий или уже нет.

Установил на Windows Server 2019, без проблем запустился. Всё работает. По функционалу и удобству он лучше всех перечисленных выше. У него настроек больше, они гибче, плюс уведомления по smtp отправлять умеет. Помимо подключений по RDP, может следить за виндовыми службами: ftp, smtp, sql server и некоторыми другими. Для каждой службы свой агент.

Принцип работы у Cyberarms IDDS примерно такой же, как у всех. Устанавливает свою службу, создаёт правило во встроенном брандмауэре, заполняет правило ip адресами. Перед установкой надо поставить в систему пакет Microsoft Visual C++ 2010 x64. Без него не установится. И агент, отвечающий за авторизацию по RDP называется Windows Base Security Agent. Во всех инструкциях в сети почему-то запускают другого агента - TLS/SSL Security Agent. С ним у меня ничего не работало.

Хочу напоминать, что подобного рода защита от перебора учёток решает только одну задачу. На моей памяти было как минимум две уязвимости в протоколе RDP, которые позволяли получить доступ к серверу в обход механизма аутентификации. То есть подобного рода программы никак вас от этого не защитят. Так что смотрящий напрямую в интернет RDP порт это очень небезопасно. До очередной найденной уязвимости. Сначала прокатится волна взломов, потом будет выяснено, через какую уязвимость они прошли. И только потом выпустят обновление, закрывающее эту уязвимость.

#windows #rdp #security
​​Вспомнил недавно про небольшую, но полезную программу для тех, кто подключает пользователей по RDP. Я сам её использовал некоторое время в прошлом. Речь пойдёт про Remote Desktop Plus. Это бесплатный (исходный код закрыт, это не open source) wrapper поверх стандартного клиента удалённого рабочего стола mstsc.exe. С его помощью можно настроить любое подключение, в том числе указав сразу логин с паролем, передать его пользователю, чтобы он смог подключиться по rdp, не вводя никаких данных и настроек.

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

1️⃣ Скачиваем программу rdp.exe, которая запускается без установки.
2️⃣ Рядом кладём rdp.bat файл примерно такого содержания:
rdp.exe /v:10.20.1.27 /u:user /p:password
3️⃣ Отправляем пользователю архив с rdp.exe и rdp.bat.
4️⃣ Пользователь распаковывает архив, запускает rdp.bat и подключается по rdp к серверу 10.20.1.27 с автоматическим вводом пользователя и пароля. То есть ему ничего делать не надо. И не будет никаких запросов на тему доверия к сертификату сервера.

Очевидно, что всё это небезопасно. Пароль у пользователя хранится в открытом виде. Есть возможность его зашифровать и использовать шифрованным. Для этого используется дополнительная утилита. Программа не развивается с 2018 года, но по-прежнему нормально работает с самыми новыми версиями Windows.

Эта программа удобна для того, чтобы какой-то компьютер автоматически подключать по RDP при загрузке. Достаточно добавить rdp.exe с параметрами командной строки в автозапуск с помощью стандартного планировщика.

У Remote Desktop Plus есть msi пакет и шаблон групповой политики в формате ADMX для централизованного управления RDP соединениями. Я показал самый простой пример соединения. На сайте перечислены все поддерживаемые параметры командной строки и примеры использования.

⇨ Сайт

#windows #rdp
Сегодня у меня заметка, которая может порадовать пользователей Windows. Она будет на тему одновременного подключения к обычной, не серверной редакции Windows по RDP нескольких пользователей. Я всегда знал, что это возможно сделать с помощью RDP Wrapper Library. На эту тему в прошлом написана популярная статья на моём сайте. Вопросом давно не интересовался, статью больше не актуализирую.

И вот недавно узнал, что есть намного проще способ сделать то же самое. Есть редакция Windows 10 Enterprise for Virtual Desktop, где разрешены одновременные подключения по RDP. Windows 10 или 11 легко перевести на эту редакцию. Все ключи без проблем гуглятся. Причём одни и те же. Их почему-то не блокируют.

Для активации режима одновременной работы по RDP открываем консоль от администратора и делаем следующее:

1️⃣ Проверяем версию системы. Я тестировал на Windows 11 Professional. Про другие редакции ничего сказать не могу.

> DISM /online /Get-CurrentEdition

2️⃣ Обновляем Professional до Enterprise:

> changepk.exe /ProductKey NPPR9-FWDCX-D2C8J-H872K-2YT43

3️⃣ Устанавливаем ключ для редакции Enterprise for Remote Sessions:

> slmgr -ipk CPWHC-NT2C7-VYW78-DHDB2-PG3GK

Теперь надо активировать систему. Способов для этого много. Мне знаком способ со сборкой vlmcsd из открытого проекта на github. Он хоть и закрыт уже, но способ рабочий. Наверняка где-то можно взять готовый пакет, но я собрал свой на Debian 12:

# apt install build-essential debhelper git
# cd ~ && git clone https://github.com/Wind4/vlmcsd
# cd vlmcsd
# git submodule update --init debian
# dpkg-buildpackage -rfakeroot -D -us -uc
# cd ~ && dpkg -i ./vlmcsd_1113_amd64.deb

Проверяем, что служба vlmcsd запущена:

# ss -tulnp | grep vlmcsd

Идём в Windows и прописываем там этот сервер для активации:

> slmgr -skms 10.20.1.36

И проводим активацию:

> slmgr -ato

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

> gpedit.msc

Идём в раздел:

◽️Конфигурация компьютера ⇨
◽️Административные шаблоны ⇨
◽️Компоненты Windows ⇨
◽️Службы удалённых рабочих столов ⇨
◽️Узел сеансов удалённых рабочих столов ⇨
◽️Лицензирование ⇨
◽️Задать режим лицензирования удалённых рабочих столов ⇨
◽️Выбираем Включено, режим ставим "На пользователя"

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

❗️Не забываем, что это нарушает все возможные лицензии Microsoft. Так что в свои компании не надо это необдуманно ставить.

Если заметка вам полезна, не забудьте 👍 и забрать в закладки.

#windows #rdp
Please open Telegram to view this post
VIEW IN TELEGRAM