Часто у наших клиентов (обычно это небольшие организации без собственной IT службы) возникает необходимость предоставить доступ к своему серверу терминалов (о настройке и обеспечении отказоустойчивости будет отдельная статья) через глобальную сеть Интернет. Мы конечно же советуем так не делать, а использовать для подключения VPN (рекомендуем любимый нами SoftEther VPN Server), но если уж клиент настаивает, то стараемся максимально его обезопасить. И вот как раз про средства, которыми мы этого достигаем и пойдет речь в этой статье…
Первая программа, о которой мы расскажем называется Cyberarms Intrusion Detection and Defense Software (IDDS).
К сожалению, судя по всему, разработка была прекращена в 2017-м году, но тем не менее программа (с некоторыми нюансами — о них далее) работает даже на ОС Windows Server 2019.
Принцип действия довольно таки простой, но в тоже время эффективный: после нескольких неудачных попыток ввода пароля(количество для блокировки определено в параметрах) срабатывает Soft lock(подозрение в брутфорсе), в журнале создается инцидент и IP помечается как подозрительный. Если новых попыток не последовало, то спустя 20 минут адрес убирается из списка наблюдаемых. Если же перебор паролей продолжается, то IP адрес «злоумышленника» добавляется в запрещающее подключения правило брандмауэра Windows (должен быть в активированном состоянии) и тем самым подбор пароля с этого адреса временно прекращается, так как подключения полностью блокируются. Блокировка Hard lock продлится 24 часа — такой параметр выставлен по умолчанию. Вечную блокировку,»Hard lock forever», включать не рекомендуем, иначе количество IP в правиле брандмауэра быстро «распухнет» и программа будет тормозить.
Устанавливается программа просто — скачиваем архив с установщиком, распаковываем во временную папку. Cкачиваем и устанавливаем Microsoft Visual C++ 2010 x64 (vcredist_x64.exe) и только после этого запускаем пакет установщика Windows —Cyberarms.IntrusionDetection.Setup.x64.msi, потому как у setup.exe скачать и установить автоматически Visual C++ не получается.
Далее производим настройку — активируем агент для защиты RDP сессий «TLS/SSL Security Agent«, во вкладке «AGENTS«:
Вторая программа — Duo Authentication for Windows Logon and RDP
это инструмент для мультифакторной аутентификации от Duo Security (Cisco), коммерческий многофункциональный продукт, который безупречно работает и позволяет использовать смартфоны, токены и коды для 2FA.
Настраивается ПО немного сложнее предыдущей программы, но благодаря хорошей документации от разработчика довольно таки быстро.
-
Зарегистрируйте себе административный аккаунт, для доступа к панели управления (Личный кабинет). Рекомендуем сразу добавить еще одного администратора, потому как восстановить доступ с помощью разработчика довольно таки проблематично, а прецеденты с неожиданной утратой смартфона администратора возникают часто.
-
Войдите в панель администратора Duo и перейдите в Приложения (Applications).
-
Нажмите «Защитить приложение» и найдите в списке приложений запись для Microsoft RDP. Щелкните Защитить в крайнем правом углу, чтобы настроить приложение и получить ключ интеграции, секретный ключ и имя хоста API. Эта информация понадобится вам для завершения настройки (в процессе установки Duo Authentication for Windows Logon).
Мы рекомендуем установить политики по умолчанию для новых пользователей приложения Microsoft RDP значение «Запрет доступа«, поскольку ни один незарегистрированный в Duo пользователь не должен успешно проходить авторизацию. Но для этого вам будет необходимо добавить всех пользователей в Duo через панель управления вручную или, что намного удобнее, через импорт из Active Directory (об этом расскажем позже) и выслать им ссылку для активации приложения Duo Security, предварительно установленному на их смартфонах.
4. Загрузите и установите пакет установщика Duo Authentication for Windows Logon. Во время установки введите данные, полученные на предыдущем шаге.
Если вы хотите включить автономный доступ с помощью Duo MFA, вы можете сделать это сейчас в разделе «Настройки автономного доступа» на странице приложения Duo или вернуться в панель администратора позже, чтобы настроить автономный доступ после первой проверки успешного входа в систему с помощью двух-факторной аутентификации.
Также во время установки рекомендуем установить все 3 галки в чекбоксах — эти настройки позволят вам получать доступ в ОС без 2FA, например при использовании консоли гипервизора или при отсутствии подключения к серверам Duo (частый случай — большое расхождение по времени):
не лишним будет напоминание о безопасном хранении всех ключей:
Treat your secret key like a passwordThe security of your Duo application is tied to the security of your secret key (skey). Secure it as you would any sensitive credential. Don’t share it with unauthorized individuals or email it to anyone under any circumstances!
После установки Duo Authentication for Windows Logon можно добавить пользователя (своего, без привилегий администратора) и активировать приложение на смартфоне. Для этого переходим в раздел Users, жмем Add User — заполняем необходимые поля. Далее добавляем пользователю телефон (раздел Phones — Add Phone) и активируем Duo Moibile (ссылку для активации пользователю можно отправить SMS, если есть деньги на балансе или вручную через Email или другим удобным способом).
Теперь при подключении и успешной авторизации (по логину и паролю) пользователю будет отправлено Push уведомление на смартфон с активированным приложением Duo Mobile:
Если на смартфоне нет доступа в Интернет (и соответственно Push приходить не будут), то можно подтвердить авторизацию сгенерированным кодом (Passcode ) из приложения:
Настройка синхронизации пользователей с глобальным каталогом (Azure AD — Active Directory — LDAP) хорошо описана в документации разработчика, хочу лишь уточнить что это платный функционал. Основной компонент для синхронизации пользователей, это Duo Authentication Proxy — ПО, которое обеспечивает подключение к каталогу.
Если вы используете RDWEb (клиентский доступ или шлюз), то вам пригодится еще один компонент — Duo Authentication for Microsoft Remote Desktop Web. Настройка его аналогична Duo Authentication for Windows Logon и не должна вызвать затруднений.
Подводя итоги заметим, что рассмотренное ПО не является панацеей от всех бед для публичных сервисов (доступных из сети Интернет), потому как бывают уязвимости, эксплуатация которых позволяет злоумшленникам обходить даже такие меры по обеспечению безопасности ОСинфраструктуры в целом. Поэтому требуется всегда комплесно подходить к этому вопросу — мониторинг, аудит и регламентные процедуры по обновлению позволят вам почувствовать себя защищенными в этом неспокойном мире. Берегите свои данные!
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Используете ли вы в своей инфраструктуре сервер терминалов?
57.69%
Да, подключение к рдп исключительно через VPN
45
35.9%
Да, сервер терминалов доступен напрямую из Интернета
28
Проголосовали 78 пользователей.
Воздержались 15 пользователей.
В этой инструкции описаны рекомендуемые действия по защите Вашего сервера.
Переименуйте стандартную учетную запись администратора
Нажмите Win + X и выберите «Управление компьютером»:
Затем выберите «Локальные пользователи» —→ «Пользователи» —→ кликните правой кнопкой мыши по имени пользователя «Администратор» и выберите «Переименовать»:
Переименуйте пользователя и используйте это имя для последующих подключений к удаленному рабочему столу.
Блокировка RDP-подключений для учетных записей с пустым паролем
Усилить безопасность можно запретив подключаться к учетным записям с пустым паролем. Для этого нужно включить политику безопасности «Учетные записи»: разрешить использование пустых паролей только при консольном входе»:
-
Откройте локальную политику безопасности (нажмите Win + R и введите команду secpol.msc)
-
Перейдите в раздел «Локальные политики» –-> «Параметры безопасности».
3. Дважды щелкните на политике «Учетные записи: разрешить использование пустых паролей…» и убедитесь, что она включена:
Вещь полезная, поэтому не оставляйте этот параметр без внимания.
Смена стандартного порта Remote Desktop Protocol
Не лишним будет сменить стандартный порт на котором работает протокол RDP. Как это сделать уже описано в наших инструкциях: Windows Server 2012 и Windows Server 2016.
Защита от буртфорса
Чтобы блокировать множественные попытки подключения с неверными данными, можно отслеживать журнал событий и вручную блокировать атакующие IP адреса посредством брандмауэра Windows или воспользоваться готовым приложением. Последний случай мы рассмотрим подробнее.
Для блокировки атакующих IP адресов будем использовать свободно распратраняющееся ПО — IPBan. Это приложение проверено и работает в Windows Server 2008 и всех последующие версях. Windows XP и Server 2003 — не роддерживаются. Алгоритм его работы простой: программа мониторит журнал событий Windows, фиксирует неудачные попытки входа в систему и, после 5-ти попыток злоумышленника подобрать пароль, блокирует IP адрес на 24 часа.
Итак:
- Cкачайте архив с программой здесь;
- В нем находятся два архива IPBan-Linux-x64.zip и IPBan-Windows-x86.zip, нам нужен последний. Распакуйте архив IPBan-Windows-x86.zip в любое удобное место (в примере это корень диска C:);
- Так как файлы скачанные с интернета система автоматически блокирует в целях безопасности, для работы приложения необходимо разблокировать все файлы. Щелкните правой кнопкой мыши на все извлеченные файлы и выберите свойства. Обязательно выберите «разблокировать», если этот параметр доступен. Либо, откройте окно PowerShell (Win + R, введите powershell и «ОК») и воспользуйтесь командой следующего вида:
get-childitem “местоположение папки” | unblock-file -confirm
Например:
4. Вам нужно внести следующие изменения в локальную политику безопасности, чтобы убедиться, что в логах системы отображаются IP-адреса. Октройте «Локальную политику безопасности» (Win + R, введите secpol.msc и «OK«). Перейдите в «Локальные политики» —> «Политика аудита» и включить регистрацию сбоев для «Аудита входа в систему» и «Аудита событий входа в систему»:
5. Для Windows Server 2008 или эквивалентного вам следует отключить логины NTLM и разрешить только NTLM2-вход в систему. В Windows Server 2008 нет другого способа получить IP-адрес для входа в систему NTLM. Октройте «Локальную политику безопасности» (Win + R, введите secpol.msc и «OK«). Перейдите в «Локальные политики» —> «Параметры безопасности» —> «Сетевая безопасность: Ограничения NTLM: входящий трафик NTLM» и установите значение «Запретить все учетные записи»:
6. Теперь необходимо создать службу IPBan, чтобы приложение запускалось при старте системы и работало в фоновом режиме. Запустите оснастку PowerShell (Win + R, введите powershell и «ОК») и выпоните команду типа:
sc.exe create IPBAN type= own start= auto binPath= c:"Каталог с программой"IPBan.exe DisplayName= IPBAN
Например:
Перейдите в службы (Win + R, введите services.msc и «OK«) и запустите службу IPBAN, в дальнейшем она будет запускаться автоматически:
В «Диспетчере задач» можно убедиться, что служба запущена и работает:
Таким образом, программа следит за неудачными попытками авторизации и добавляет неугодные IP адреса в созданное правило для входящих подключений брандмауэра Windows:
Заблокированные IP адреса можно разблокировать вручную. Перейдите на вкладку «Область» в свойствах правила «IPBan_0» и удалите из списка нужный Вам IP адрес:
Часто возникает вопрос — насколько безопасно подключаться через удаленный рабочий стол Windows?
Сеансы удаленного рабочего стола работаю по зашифрованному каналу, не позволяя никому просматривать сеанс путем прослушивания в сети. Однако, есть уязвимость в методе, используемом для шифрования сеансов в более ранних версиях RDP. Эта уязвимость может позволить неавторизованный доступ к вашему сеансу с помощью “Man-in-the-middle attack”.
Удаленный рабочий стол можно защитить с помощью SSL/TLS в Windows Vista, Windows 7, Windows 8, Windows 10 и Windows Server 2003/2008/2012/2016.
Хотя, удаленный рабочий стол более безопасен, чем инструменты удаленного администрирования, такие как VNC, которые не шифруют весь сеанс, каждый раз, когда доступ администратора к системе предоставляется удаленно, возникает риск. Следующие советы помогут защитить удаленный доступ к рабочим столам и серверам, которые вы поддерживаете.
Основные советы по безопасности для удаленного рабочего стола
Используйте надежные пароли
Надежные пароли для любых учетных записей с доступом к удаленному рабочему столу следует рассматривать как обязательный шаг перед включением удаленного рабочего стола.
Парольные фразы должны:
- Содержать восемь символов или более
- Содержать символы из двух из следующих трех классов символов
- По алфавиту (пример: az, AZ)
- Числовой (пример: 0-9)
- Пунктуация и другие символы (пример: ,! @ # $% ^ & * () _ + | ~ — = `{} []:»; ‘<>?,. /)
Парольные фразу не должны:
- Производное от имени пользователя
- Слово, найденное в словаре (русском или иностранном)
- Слово из словаря, написанное задом наперед
- Словарное слово, перед котором или за которым следует любой другой одиночный символ (пример: password1, 1password)
Не используйте легко угадываемые пароли. Некоторые примеры паролей, которые легко угадать:
- Имена членов семьи, домашних животных, друзей и т.д.
- Компьютерные термины и названия, команды, сайты, компании, оборудование, программное обеспечение.
- Дни рождения и другая личная информация, такая как адреса и номера телефонов.
- Шаблоны слов и чисел, такие как aaabbb, qwerty, 123321 и т.д.
- Пароли никогда не следует записывать или хранить в сети.
- Следует регулярно менять пароли, не реже одного раза в шесть месяцев. Также следует менять свой пароль каждый раз, когда вы подозреваете, что учетная запись была взломана.
- Попробуйте использовать разные пароли для каждой системы, как минимум, не используйте тот же пароль для любой из ваших учетных записей.
Обновите программное обеспечение
Одним из преимуществ использования удаленного рабочего стола по сравнению с сторонними инструментами удаленного администрирования является то, что компоненты автоматически обновляются с использованием последних исправлений безопасности в стандартном цикле исправлений Microsoft.
- Убедитесь, что используете последние версии клиентского и серверного программного обеспечения, включив и проверив автоматические обновления Microsoft.
- Если используете клиенты удаленного рабочего стола на других платформах, убедитесь, что они все еще поддерживаются и установлены последние версии.
- Более старые версии могут не поддерживать высокий уровень шифрования и могут иметь другие недостатки безопасности.
Ограничьте доступ с помощью брандмауэров
- Используйте брандмауэры, чтобы ограничить доступ к портам удаленного рабочего стола (по умолчанию TCP 3389). Использование шлюза RDP настоятельно рекомендуется для ограничения доступа RDP к рабочим столам и серверам.
- В качестве альтернативы для поддержки подключения за пределами локальный сети можно использовать VPN подключение, чтобы получить IP-адрес виртуальной сети и добавить пул сетевого адреса в правило исключения брандмауэра RDP.
Включите аутентификацию на сетевом уровне
Windows 10, Windows Server 2012 R2/2016/2019 также по умолчанию предоставляют проверку подлинности на уровне сети (NLA). Лучше оставить это на месте, так как NLA обеспечивает дополнительный уровень аутентификации перед установкой соединения. Вы должны настраивать серверы удаленного рабочего стола только для разрешения подключений без NLA, если вы используете клиенты удаленного рабочего стола на других платформах, которые его не поддерживают.
- NLA должен быть включен по умолчанию в Windows 10, Windows Server 2012 R2 / 2016/2019.
- Чтобы проверить это, вы можете посмотреть параметр групповой политики Требовать проверку подлинности пользователя для удаленных подключений с помощью проверки подлинности на уровне сети, находящейся в папке Компьютер Политики Компоненты Windows Службы удаленного рабочего стола Узел сеанса удаленного рабочего стола Безопасность. Этот параметр групповой политики должен быть включен на сервере с ролью узла сеансов удаленного рабочего стола.
Ограничьте количество пользователей, которые могут войти в систему с помощью удаленного рабочего стола
По умолчанию все администраторы могут войти в удаленный рабочий стол.
Если есть несколько учетных записей администратора на компьютере, следует ограничить удаленный доступ только для тех учетных записей, которые в нем нуждаются.
Если удаленный рабочий стол не используется для системного администрирования, удалите весь административный доступ через RDP и разрешите только учетные записи пользователей, требующие службы RDP. Для отделов, которые управляют множеством машин удаленно, удалите локальную учетную запись администратора из доступа RDP по адресу и вместо этого добавьте техническую группу.
- Нажмите Пуск -> Программы -> Администрирование -> Локальная политика безопасности.
- В разделе «Локальные политики» -> «Назначение прав пользователя» перейдите к «Разрешить вход через службы терминалов». Или «Разрешить вход через службы удаленных рабочих столов»
- Удалите группу администраторов и выйдите из группы пользователей удаленного рабочего стола.
- Используйте панель управления системой, чтобы добавить пользователей в группу «Пользователи удаленного рабочего стола».
Типичная операционная система MS будет иметь следующие настройки по умолчанию, как показано в локальной политике безопасности:
Рисунок 1 — Настройка локальной политике безопасности
Проблема в том, что «Администраторы» здесь по умолчанию, а учетная запись «Локальный администратор» находится у администраторов.
Несмотря на то, что рекомендуется использовать соглашение о паролях, чтобы избежать идентичных паролей локального администратора на локальном компьютере и строго контролировать доступ к этим паролям или соглашениям, использование учетной записи локального администратора для удаленной работы на компьютере не позволяет должным образом регистрировать и идентифицировать пользователя, использующего систему. Лучше всего переопределить локальную политику безопасности с помощью параметра групповой политики.
Рисунок 2 — Настройка групповой политики безопасности
Установите политику блокировки учетной записи
Установив на своем компьютере блокировку учетной записи на определенное количество ошибочных попыток, вы предотвратите получение доступа к вашей системе с помощью средств автоматического подбора пароля. Чтобы установить политику блокировки учетной записи:
- Зайдите в Пуск -> Программы -> Администрирование -> Локальная политика безопасности.
- В разделе «Политики учетных записей» -> «Политики блокировки учетных записей» установите значения для всех трех параметров. Разумным выбором являются три недопустимые попытки с длительностью блокировки 3 минуты.
Лучшие методы для дополнительной безопасности RDP
Не разрешайте прямой доступ RDP клиентам серверам за пределами своей сетии
Открытие RDP (порт 3389) для сетей за пределами частной сети крайне не рекомендуется и является известным вектором для многих атак. Варианты ниже перечислены способы повышения безопасности, сохраняя при этом доступ к системе по протоколу RDP.
После настройки шлюза RDP узлы должны быть настроены так, чтобы разрешать RDP-соединения только от узла шлюза или подсетей компании там, где это необходимо.
Используйте шлюзы RDP
Настоятельно рекомендуется использовать шлюз RDP. Он позволяет жестко ограничить доступ к портам удаленного рабочего стола, одновременно поддерживая удаленные подключения через один сервер-шлюз.
При использовании сервера шлюза удаленных рабочих столов все службы удаленных рабочих столов на вашем рабочем столе и рабочих станциях должны быть ограничены, чтобы разрешить доступ только из шлюза удаленных рабочих столов. Сервер шлюза удаленных рабочих столов прослушивает запросы удаленного рабочего стола через HTTPS (порт 443) и подключает клиента к службе удаленного рабочего стола на целевой машине.
- Используйте службу шлюза RDP в компании. Это лучший вариант для разрешения доступа RDP к системе, относящейся к категории UC P2 и ниже. Включает интеграцию DUO. Служба шлюза RDP предоставляется командой Windows.
- Служба выделенного шлюза. Требуется для RDP-доступа к системам UC P4 или выше. Также должен быть настроен для DUO.
Некоторые компании используют VPS, управляемый IST, в качестве шлюза удаленных рабочих столов. По приблизительной оценке, 30–100 одновременно работающих пользователей могут использовать один шлюз удаленных рабочих столов. Hа на виртуальном уровне обеспечивает достаточно отказоустойчивый и надежный доступ; однако можно реализовать чуть более сложную реализацию шлюза удаленных рабочих столов с балансировкой сетевой нагрузки.
По сути, все, что необходимо — это простое изменение на расширенной вкладке RDP-клиента:
Рисунок 3 — Подключение через шлюз удаленных рабочих столов
Измените порт для удаленного рабочего стола
Изменение порта прослушивания поможет «спрятать» удаленный рабочий стол от злоумышленников, которые сканируют сеть в поисках компьютеров, прослушивающих порт удаленного рабочего стола по умолчанию (TCP 3389). Это обеспечивает эффективную защиту от новейших червей RDP, таких как Morto.
Для этого отредактируйте следующий раздел реестра (ВНИМАНИЕ: не пытайтесь это сделать, если вы не знакомы с реестром Windows и TCP / IP): HKEY_LOCAL_MACHINE SYSTEM CurrentControlSet Control Terminal Server WinStations RDP-Tcp.
Измените порт прослушивания с 3389 на другой и не забудьте обновить все правила брандмауэра с новым портом. Хотя этот подход полезен, это безопасность посредством неизвестности, что не является самым надежным подходом к обеспечению безопасности.
Убедитесь, что вы также используете другие методы для ограничения доступа, как описано в этой статье.
Туннелируйте подключение к удаленному рабочему столу через IPSec или SSH
Если использование шлюза удаленных рабочих столов невозможно, вы можете добавить дополнительный уровень проверки подлинности и шифрования, туннелируя сеансы удаленного рабочего стола через IPSec или SSH. IPSec встроен во все операционные системы Windows, начиная с Windows 2000, но использование и управление в Windows 10 значительно улучшены . Если доступен SSH-сервер, вы можете использовать SSH-туннелирование для подключений к удаленному рабочему столу.
Ранее писал про простую, но довольно эффективную «защиту от брутфорсеров», но что делать если у вас нет роутера, на котором можно такую защиту построить?
Можно сделать «наколеночное» примитивное, но все таки работающее решение внутри самого сервера. Единственное ограничение — ОС на сервере должна быть минимум Windows Server 2012 R2.
Итак идея в следующем.
- в ОС Windows Server с версии 2012 неудачные попытки подключения в RDP-сессию стали отображаться в соответствующем журнале(EventID=140, Microsoft-Windows-RemoteDesktopServices-RdpCoreTS/Operational), с указанием IP подключающегося (в Server 2016 — еще лучше стало, там все в SECURITY лог пишется, и имя пользователя и IP — можно из одного события все данные брать).
- Делаем в Windows Firewall правило с именем «Block BAD-IP», в котором указываем, что хотим блокировать все соединения с неких IP (при создании правила внесите туда пару тестовых IP, 1.1.1.1 и 2.2.2.2 например). Это правило, вернее его список блокируемых IP мы будем в дальнейшем править скриптом
- Делаем задание в планировщике, которое стартует при возникновении этого события и запускает скрипт на Powershell. Тут все просто — создать новое задание, триггером указать «When a specific event is logged» и далее указать нужные реквизиты события, назначить Action т.п.
- Скрипт делает следующее:
- вычитывает из журнала все события с ID=140 за последние ну скажем 30 минут, получаем из них IP адреса «брутфорсеров».
- первый элемент массива — это очевидно адрес, на котором сработал скрипт, считаем сколько раз он присутствует в полученном массиве. Если больше порогового значения (например 5) — заносим его в соответствующее правило Windows Firewall
- Отправляет письмо с сообщением о событии
- PROFIT!
Ниже сам скрипт. Написан он второпях «на коленке», и наверняка может быть причесан и оптимизирован, тут я даже спорить не стану, если есть желание — меняйте на свое усмотрение.
# скрипт автоматически добавляет в уже существующее (!) правило Windows Firewall IP_адрес, с которого за последние 30 минут было больше 4 попыток входа на терминальный сервер с неправильным логином-паролем
#
# Сколько времени отступаем назад в минутах
$measureTime=(get-date)-(new-timespan -minute 30)
# Получаем массив(строго массив! даже если там только один адрес!) IP-адресов с которых идет брутфорс. В Windows Server 2012R2 это журнал событий Microsoft-Windows-RemoteDesktopServices-RdpCoreTS/Operational и сообщение с ID=140
[array]$IPs = Get-WinEvent -FilterHashtable @{Logname='Microsoft-Windows-RemoteDesktopServices-RdpCoreTS/Operational'; ID=140; StartTime=$measuretime} -ErrorAction SilentlyContinue | %{[regex]::match($_.message, "b([0-9]{1,3}.){3}[0-9]{1,3}b").value }
# Выясняем сколько раз содержится первый (тот на котором сработал скрипт) элемент массива в собственно полученном массиве адресов.
#Если этот элемент встречается там больше 4 раз - запускаем действие добавления в правило Firewall, и пишем письмо
#Если нет - просто пишем письмо про это и указываем, что вхождений пока мало
if (($Ips -match $Ips[0]).count -gt 4)
{
# получаем список адресов из правила
$oldList = Get-NetFirewallRule -DisplayName 'Block BAD-IP' | Get-NetFirewallAddressFilter
# обновляем список адресов
$newList = ($oldList.RemoteIP + $IPs[0])
# назначем новый список адресов в правило
Get-NetFirewallRule -DisplayName 'Block BAD-IP' | Get-NetFirewallAddressFilter | Set-NetFirewallAddressFilter -RemoteAddress $newList
Write-Host "Добавлен адрес: " + $Ips[0]
#region Mail
$smtpsrv = "smtp.yandex.ru"
$from = "user-mail@yandex.ru"
$to = "user-mail@yandex.ru", "user-mail@send.smsc.ru"
$subj = "ServiceRDP.AddedNewBad-IP-toFirewall. IP=" + $Ips[0]
$body = "`r`n"
$enc = [System.Text.Encoding]::UTF8
$usr = "user-mail@yandex.ru"
$pwd = ConvertTo-SecureString –String "verystrongpassword" –AsPlainText -Force
$creds = New-Object –TypeName System.Management.Automation.PSCredential –ArgumentList $usr, $pwd
#endregion Mail
Send-MailMessage $to $subj $body $smtpsrv -from $from -encoding $enc -credential $creds -useSSL
}
else
{
Write-host ("IP Адрес: " + $Ips[0] + " содержится в массиве только " + ($Ips -match $Ips[0]).count + " раз")
#region Mail
$smtpsrv = "smtp.yandex.ru"
$from = "user-mail@yandex.ru"
$to = "user-mail@yandex.ru"
$subj = "ServiceRDP.New Incorrect Username-password from IP=" + $Ips[0] + " Count=" + ($Ips -match $Ips[0]).count
$body = "`r`n"
$enc = [System.Text.Encoding]::UTF8
$usr = "user-mail@yandex.ru"
$pwd = ConvertTo-SecureString –String "verystrongpassword" –AsPlainText -Force
$creds = New-Object –TypeName System.Management.Automation.PSCredential –ArgumentList $usr, $pwd
#endregion Mail
Send-MailMessage $to $subj $body $smtpsrv -from $from -encoding $enc -credential $creds -useSSL
}
Примечания:
- В правиле Windows Firewall нужно чтобы было изначально пара адресов, иначе тот код что приведен выше не считает их списоком и ругается. Можно сам код поправить (мне лень), а можно просто внести изначально в правило пару адресов вида 1.1.1.1 и 2.2.2.2
- В скрипте естественно нужно поправить реквизиты отправки почты, указав свои. Кроме того, в случае когда адрес таки добавляется в Firewall-правило, я отправляю письмо также в шлюз Email2SMS, чтобы получить СМС об этом. Чтобы знать. Если просто происходит «срабатывания» от 1 до 4 раз, то СМС об этом получать не обязательно, это и сами пользователи могут ошибаться с паролем.
- Про сообщения генерируемые в логах при некорректных попытках входа можно подробно почитать тут Очень хорошая статья!
- У автора вышеуказанной статьи можно взять еще бесплатную утилиту, наглядно показывающую кто когда и как успешно подключался к RDP-Серверу. Называется RDPSoft RDS Log Viewer
- Remove From My Forums
-
Question
-
Hello. I’ve noticed that RDP certificates on all of our production boxes have self-signed certificates located in their respective «Remote Desktop» certificate store.
I would like all of our servers to use signed, trusted certificates from our internal PKI instead of self-signed certs Windows servers automatically generate.
I found these two articles that pretty much outline the same process but I get an error when I try to connect:
http://www.petenetlive.com/KB/Article/0000944.htm
Create Trusted Remote Desktop Services (RDP) SSL Certificate
«This computer can’t connect to the remote computer. Try connecting again. If the problem continues, contact the owner of the remote computer or your network administrator»
I’m using my Windows 8.1 workstation to RDP into a Windows 2012 R2 box. I created the RDP cert template and GPO in accordance to articles and placed the R2 box in a test OU that has that GPO applied. I’m testing it on a particular R2 box before releasing
it production-wide. Also, I can confirm via PortQry and NMAP that the R2 box is listening on port 3389.Any thoughts????? Thanks!
-
Edited by
Wednesday, September 3, 2014 7:35 PM
Correction
-
Edited by
Answers
-
Hi,
Okay, that sounds like a good test. I was going to suggest you manually request a certificate using the Computer template, assign that to the RDP-Tcp listener via wmi command, and set the GP back to Not Configured. Purpose of the test is to see
if there is something about the certificate that the server does not like.-TP
-
Proposed as answer by
Dharmesh SMicrosoft employee
Friday, September 5, 2014 7:15 AM -
Marked as answer by
Dharmesh SMicrosoft employee
Monday, September 15, 2014 8:35 AM
-
Proposed as answer by
-
Turns out the issue I was having was on the client side not the server side. But really, the issue is with Windows 2012 R2 SHA512 & TLS 1.2.
The GPO «Require use of specific security layer for remote (RDP) connections» only supports TLS 1.0 or RDP but my Windows 8.1 box had TLS 1.2 enabled by default and was trying to connect to a Windows 2012 R2 with a RDP signed cert via TLS 1.2.
Also, my workstation for some reason wasn’t downgrading or negotiating to TLS 1.0.Also, there is an issue between Windows 2012 R2 and SHA512 sign hash and TLS 1.2 encryption. Microsoft was suppose to release a patch to fix the issue: http://support.microsoft.com/kb/2973337/en-us, but patch didn’t work.
For now to get this working, I’ve disabled TLS 1.2 in the registry on my client Windows 8.1 box (but also think setting a GPO «SSL Cipher Suite Order» and removing TLS 1.2 will also do the trick too. Will test.). After I disabled TLS 1.2 on my
client Windows 8.1 box, I was able to connect to Windows 2012 R2 box with the signed RDP cert and verified in the log that my RDP connection was established via TLS 1.0.-
Marked as answer by
Rock07
Monday, September 15, 2014 7:41 PM
-
Marked as answer by
Как понять что есть проблемы с безопасностью
Создадим виртуальную машину без защищенного IP адреса. На виртуальной машине может быть любая версия Windows Server, 2012 R2, 2016 или 2019. Примерно через сутки после создания зайдем на виртуальную машину по RDP. Нажмем комбинация клавиш Win + X и выберем в списке Event Viewer. Перейдем на вкладку Windows Logs -> Security. Типичный список событий сервера под брутфорсом показан на скриншоте ниже.
Кто эти люди которые проводят атаку и для чего они это делают? Почему они выбрали именно мой сервер? На самом деле часто этим занимаются школьники и просто те кому нечего делать. Сканируется интернет на наличие открытого RDP порта. (Это не так сложно сделать, т. к. IPv4 адресов всего лишь 4 млрд. с небольшим). После того как обнаружен RDP порт используется таблица простых паролей в надежде на то, что пользователь задал пароль в стиле 12345 или vasya123. Если подобрать пароль удалось, то на такой сервер можно поставить майнер, использовать в ботнете или продать на хакерском форуме за 10$.
Настройка файрвола для защиты RDP от брутфорса
В данной статье предлагается ограничить список IP адресов с которых возможно подключение по RDP. Например, вы подключаетесь по RDP только из офиса или из дома.
Определение глобального IP адреса
На компьютере, с которого планируем подключаться заходим на страницу https://www.whatismyip.com/ Это IP адрес по которому интернет провайдер подключен к интернету. Важно чтобы этот IP адрес не менялся со временем.
Окно настроек фаервола
Первый способ
Нажимаем комбинацию Win + R и набираем wf.msc Жмем OK
Второй способ
Первый способ намного короче. Во втором способе не нужно запоминать команду и можно открыть окно только при помощи мыши. В правом нижнем углу щелкам по значку сетевого подключения и выбираем Open Network and Sharing Center.
В открывшемся окне выбираем Windows Firewall
Далее выбираем Advanced settings
Выбираем Inbound Rules и находим правила, относящиеся Remote Desktop.
Нужно оставить активными правила Remote Desktop — User Mode (TCP-In) и Remote Desktop — User Mode (UDP-In) для Public профиля. По каждому из этих правил кликаем правой кнопкой и переходим в Properties. Переходим на вкладку Scope и в разделе Remote IP address выбираем Add… В появившемся окне вводим наш IP адрес, который мы получили ранее.
После нажатия OK наш IP адрес появится в списке разрешенных. Таким образом можно добавить несколько адресов и даже подсетей.
Нажимаем кнопку Apply. После этого правила начнут работать. IP адрес нужно добавить для обоих правил emote Desktop — User Mode (TCP-In) и Remote Desktop — User Mode (UDP-In). Чтобы убедиться, что брутфорс действительно прекратился, можно снова зайти в Event Viewer и убедиться что новые попытки подключений перестали появляться.
Разрешение проблем
Если у вас изменился IP адрес, или вы ошиблись с предудущей настройкой, то вы потеряете подключение к серверу. Для клиентов хочтнга https://bigd.host доступна аварийная консоль из личного кабинете сайта. На вкладке Мои сервера выберите проблемный сервер и нажмите Аварийная консоль. Откроется окно, с помощью которого можно зайти на сервер и исправить проблемные настройки.
Firewall VPS
- Remove From My Forums
-
Question
-
Dear Support,
Could you know how to secure RDP session on Windows Server 2012 R2?
For example, Digital signature RSA encryption (2048 bits) of a SHA-256 digest, AES 128 bits and TLS 1.2?
How can we implement the secure RDP session?Thanks!
Best Regards,
Daniel
All replies
-
-
Proposed as answer by
Wednesday, March 20, 2019 7:48 AM
-
Proposed as answer by
-
Hi,
Thanks for your post in our forum.
Firstly, we can set up firewall rules to block ports or IPs, as Lamerk’s link.
And, we can enable NLA on the targeted machines to make it more secure. And, we can change the port of RDP, so that who do not know the correct port, they will be unable to RDP to the targeted machine.
We can also refer to the following link.
How to change the listening port for Remote Desktop
Hope the above information can help you.
Thanks again for your understanding and support.
Best Regards,
Otto
Please remember to mark the replies as answers if they help.
If you have feedback for TechNet Subscriber Support, contact
tnmff@microsoft.com. -
You can use IISCrypto to select the encryption protocols and ciphers you want to use (Please be careful to not break other applications running on your server) then restart your server. For the certificate, you can request for a new one
from your CA with the needed encryption protocols.
-
Dear Mr X,
Could we use the below algorithms for RDP session?
Algorithms:
«Asymmetric cipher algorithm»
«Symmetric cipher algorithm»
«Data authentication (hash) algorithm»
«Digital signature»
«PKI certificate»
«Key agreement algorithm»
«Transport Layer Security (TLS)», SSL must not be usedThanks!
Best Regards,
Daniel
-
Dear Otto,
Could we use the below algorithms for RDP session?
Algorithms:
«Asymmetric cipher algorithm»
«Symmetric cipher algorithm»
«Data authentication (hash) algorithm»
«Digital signature»
«PKI certificate»
«Key agreement algorithm»
«Transport Layer Security (TLS)», SSL must not be usedThanks!
Best Regards,
Daniel-
Edited by
Daniel Chiu
Wednesday, March 6, 2019 4:55 AM
-
Edited by
-
Hi,
Thanks for your reply.
We can deploy the Remote Desktop Service in your environment, that we can use certificates to authenticate.
We can refer to the following link.
Configuring RDS 2012 Certificates and SSO
Note: this is a 3rd party link, we don’t have any warranties on this website. It’s just for your convenience. And Microsoft does not make any guarantee on the contents.
Hope the above information can help you.
Thanks again for your understanding and support.
Best Regards,
Otto
Please remember to mark the replies as answers if they help.
If you have feedback for TechNet Subscriber Support, contact
tnmff@microsoft.com. -
-
Edited by
Daniel Chiu
Wednesday, March 6, 2019 9:31 AM
-
Edited by
-
Hi,
This is a quick note to let you know that I am currently performing research on this issue and will get back to you as soon as possible. I appreciate your patience.
If you have any updates during this process, please feel free to let me know.
Best Regards,
Otto
Please remember to mark the replies as answers if they help.
If you have feedback for TechNet Subscriber Support, contact
tnmff@microsoft.com. -
Dear Otto,
Apart from enabling the TLS1.2 for RDP session on Windows 2012 R2 server, I would like to how to use the encryption algorithm for AES 128 bits and RSA 2048 bits.
Could you know how to encrypt RDP session for AES 128 bits and RSA 2048 bits?
Thanks!Best Regards,
Daniel
-
Hello Daniel,
Agree with LaMerk.
Please chek the link below for more information on how to secure RDP protocol.
https://security.berkeley.edu/resources/best-practices-how-articles/system-application-security/securing-remote-desktop-rdp-system
Mark it as answer if your question has solved. MCT Regional Lead. x2 MCSE-MCSA Exchange Server & Windows Server
-
Proposed as answer by
otto wang
Monday, March 25, 2019 2:41 AM
-
Proposed as answer by
- Remove From My Forums
-
Question
-
Dear Support,
Could you know how to secure RDP session on Windows Server 2012 R2?
For example, Digital signature RSA encryption (2048 bits) of a SHA-256 digest, AES 128 bits and TLS 1.2?
How can we implement the secure RDP session?Thanks!
Best Regards,
Daniel
All replies
-
-
Proposed as answer by
Wednesday, March 20, 2019 7:48 AM
-
Proposed as answer by
-
Hi,
Thanks for your post in our forum.
Firstly, we can set up firewall rules to block ports or IPs, as Lamerk’s link.
And, we can enable NLA on the targeted machines to make it more secure. And, we can change the port of RDP, so that who do not know the correct port, they will be unable to RDP to the targeted machine.
We can also refer to the following link.
How to change the listening port for Remote Desktop
Hope the above information can help you.
Thanks again for your understanding and support.
Best Regards,
Otto
Please remember to mark the replies as answers if they help.
If you have feedback for TechNet Subscriber Support, contact
tnmff@microsoft.com. -
You can use IISCrypto to select the encryption protocols and ciphers you want to use (Please be careful to not break other applications running on your server) then restart your server. For the certificate, you can request for a new one
from your CA with the needed encryption protocols.
-
Dear Mr X,
Could we use the below algorithms for RDP session?
Algorithms:
«Asymmetric cipher algorithm»
«Symmetric cipher algorithm»
«Data authentication (hash) algorithm»
«Digital signature»
«PKI certificate»
«Key agreement algorithm»
«Transport Layer Security (TLS)», SSL must not be usedThanks!
Best Regards,
Daniel
-
Dear Otto,
Could we use the below algorithms for RDP session?
Algorithms:
«Asymmetric cipher algorithm»
«Symmetric cipher algorithm»
«Data authentication (hash) algorithm»
«Digital signature»
«PKI certificate»
«Key agreement algorithm»
«Transport Layer Security (TLS)», SSL must not be usedThanks!
Best Regards,
Daniel-
Edited by
Daniel Chiu
Wednesday, March 6, 2019 4:55 AM
-
Edited by
-
Hi,
Thanks for your reply.
We can deploy the Remote Desktop Service in your environment, that we can use certificates to authenticate.
We can refer to the following link.
Configuring RDS 2012 Certificates and SSO
Note: this is a 3rd party link, we don’t have any warranties on this website. It’s just for your convenience. And Microsoft does not make any guarantee on the contents.
Hope the above information can help you.
Thanks again for your understanding and support.
Best Regards,
Otto
Please remember to mark the replies as answers if they help.
If you have feedback for TechNet Subscriber Support, contact
tnmff@microsoft.com. -
-
Edited by
Daniel Chiu
Wednesday, March 6, 2019 9:31 AM
-
Edited by
-
Hi,
This is a quick note to let you know that I am currently performing research on this issue and will get back to you as soon as possible. I appreciate your patience.
If you have any updates during this process, please feel free to let me know.
Best Regards,
Otto
Please remember to mark the replies as answers if they help.
If you have feedback for TechNet Subscriber Support, contact
tnmff@microsoft.com. -
Dear Otto,
Apart from enabling the TLS1.2 for RDP session on Windows 2012 R2 server, I would like to how to use the encryption algorithm for AES 128 bits and RSA 2048 bits.
Could you know how to encrypt RDP session for AES 128 bits and RSA 2048 bits?
Thanks!Best Regards,
Daniel
-
Hello Daniel,
Agree with LaMerk.
Please chek the link below for more information on how to secure RDP protocol.
https://security.berkeley.edu/resources/best-practices-how-articles/system-application-security/securing-remote-desktop-rdp-system
Mark it as answer if your question has solved. MCT Regional Lead. x2 MCSE-MCSA Exchange Server & Windows Server
-
Proposed as answer by
otto wang
Monday, March 25, 2019 2:41 AM
-
Proposed as answer by