Часто у наших клиентов (обычно это небольшие организации без собственной 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 пользователей.
0
15.10.201910:5415.10.2019 10:54:47
Для защиты RDP сервера от брутфорса мы воспользуемся утилитой IPBan от Jeff Johnson.
Утилита IPBan блокирует ip адресс с которго идет перебор паролей после нескольких неудачных попыток авторизации.
Для начала проведем подготовительный этап.
Для того чтобы в логах системы отоброжались IP адреса с которых идет перебор паролей, нам нужно включить аудит событий.
Переходим в «Локальные политики» (Win + R, введите secpol.msc и «OK»). —> «Политика аудита» и включить регистрацию событий для «Аудита входа в систему» и «Аудита событий входа в систему»:
Подготовительный этап закончен, переходим к настройке IPBan
Скачиваем утилиту https://github.com/DigitalRuby/IPBan/releases для своей разрядности Windows.
Распаковываем архив, к примеру на диск C: в папку ipban.
Запускаем cmd консоль обязательно с правами Администратора.
И прописываем IPBan как службу Windows, командой:
sc.exe create IPBAN type=own start=delayed-auto binPath=c:ipbanDigitalRuby.IPBan.exe DisplayName=IPBAN
Заходим в оснастку служб Windows (Win + R, введите services.msc и «OK») находим и запускаем службу IPBAN
IPBan отслеживает неудачные попытки входа и добавляет правило для Windows фаервола.
Удалить случайно добавленный ip адрес либо посмотреть какие адреса сейчас добавленны можно в оснастке фаервола — правило IPBan_Block_0.
Также создаются два правила IPBan_EmergingThreats_0 и IPBan_EmergingThreats_1000 — общеизвестные IP адреса с которых происходят попытки входа.
Вот и все, теперь наш Windows сервер зашишен от перебора паролей.
P.S. Также этот способ работает на Windows 8 — Windows 10.
Возникла идея написать простой PowerShell скрипт для автоматической блокировки в брандмауэре Windows IP адресов, с которых фиксируются попытки подбора паролей через RDP (или длительные RDP атаки). Идея заключается в следующем: скрипт PowerShell анализирует журнал событий системы, и, если с конкретного IP адреса за последние 2 часа зафиксировано более 5 неудачных попыток авторизации через RDP, такой IP адрес автоматически добавляется в блокирующее правило встроенного брандмауэра Windows.
Итак, имеется небольшая сеть с доменом, для доступа внутрь на один из компьютеров на интернет-шлюзе с Linux через NAT проброшен RDP порт (снаружи отвечает порт TCP 13211, а внутрь перенаправляется стандартный 3389). Периодически на компьютере происходит блокировка известных учетных записей доменной политикой паролей из-за неудачных попыток авторизоваться на компьютере через RDP. Наша задача автоматически блокировать IP адреса, через которых идет подбор паролей в RDP .
Сначала создадим на компьютере правило брандмауэра, которое блокирует входящее RDP подключение с указанных IP адресов:
New-NetFirewallRule -DisplayName "BlockRDPBruteForce" –RemoteAddress 1.1.1.1 -Direction Inbound -Protocol TCP –LocalPort 3389 -Action Block
В дальнейшем в это правило мы будем добавлять IP адреса, с которых фиксируется попытки подбора паролей по RDP.
Можно сделать дополнительное разрешающее правило, чтобы скрипт не блокировал нужные IP адреса или подсети.
Теперь нужно собрать из журналов компьютера список IP адресов, с которых за последние 2 часа фиксировалось более 5 неудачных попыток авторизации. Для этого в журнале Security нужно выбрать события с EventID 4625 (неудачный вход — An account failed to log on и LogonType = 3, см. статью Анализ RDP логов в Windows). В найденных событиях нужно найти IP адрес подключающегося пользователя и проверить, что этот IP адрес встречался в логах более 5 раз.
Я использую такой код для выбора IP адресов атакующих из событий за последние 2 часа (можете изменить время):
$Last_n_Hours = [DateTime]::Now.AddHours(-2)
$badRDPlogons = Get-EventLog -LogName 'Security' -after $Last_n_Hours -InstanceId 4625 | ?{$_.Message -match 'logon type:s+(3)s'} | Select-Object @{n='IpAddress';e={$_.ReplacementStrings[-2]} }
$getip = $badRDPlogons | group-object -property IpAddress | where {$_.Count -gt 5} | Select -property Name
Можете вывести список найденных адресов IP: $getip
Теперь все обнаруженные IP адреса атакующего нужно добавить в правило брандмауэра BlockRDPBruteForce, которое мы создали ранее. Для управления брандмауэром Windows мы будем использовать встроенный модуль встроенный PowerShell модуль NetSecurity. Сначала получим список текущих заблокированных IP адресов и добавим к нему новые.
$log = "C:psblocked_ip.txt"
$current_ips = (Get-NetFirewallRule -DisplayName "BlockRDPBruteForce" | Get-NetFirewallAddressFilter ).RemoteAddress
foreach ($ip in $getip)
{
$current_ips += $ip.name
(Get-Date).ToString() + ' ' + $ip.name + ' IP заблокирован за ' + ($badRDPlogons | where {$_.IpAddress -eq $ip.name}).count + ' попыток за 2 часа'>> $log # запись события блокировки IP адреса в лог файл
}
Set-NetFirewallRule -DisplayName "BlockRDPBruteForce" -RemoteAddress $current_ips
Проверяем, что в блокирующее правило Windows Defender Firewall добавились новые IP адреса.
Вам осталось скопировать данный PowerShell код в файл c:psblock_rdp_attack.ps1 и добавить его в задание планировщика, для запуска по расписанию. Например, каждые 2 часа.
Вы можете создать задание планировщика с помощью PowerShell скрипта или вручную:
$repeat = (New-TimeSpan -Hours 2)
$duration = ([timeSpan]::maxvalue)
$Trigger= New-ScheduledTaskTrigger -Once -At (Get-Date).Date -RepetitionInterval $repeat -RepetitionDuration $duration
$User= "NT AUTHORITYSYSTEM"
$Action= New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "C:PSblock_rdp_attack.ps1"
Register-ScheduledTask -TaskName "BlockRDPBruteForce_PS" -Trigger $Trigger -User $User -Action $Action -RunLevel Highest –Force
Либо вы можете запускать скрипт PowerShell при появлении события 4625 в журнале, таким образом вы будете более быстро реагировать на атаку подбора пароля по RDP.
Вы можете модифицировать данный скрипт под свои реалии и использовть для блокировки RDP атак.
Как понять что есть проблемы с безопасностью
Создадим виртуальную машину без защищенного 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
Инструкция
по скрипту и сам скрипт, проверялся на работоспособность в Windows
Server 2012. Остальная информация на данной странице, актуальна для
любой версии ОС.
На RDP сервера выставленные в Интернет
достаточно быстро начинаются атаки переборщиков паролей. Зачастую, это не
просто «школьники» или «хацкеры», которые пробуют свои силы в «хакерстве».
Последние несколько лет, проблема с вирусами-шифровальщиками, стала достаточно
серьезной. Дело в том, что половина всех заражений серверов вирусами-шифровальщиками, происходит через взлом пароля к RDP. Остальная часть, через уязвимости в самом RDP. Поэтому, любой системный админ скажет,
что «выставлять» RDP в
Интернет – нельзя. Для борьбы с перебором паролей к RDP, следует использовать VPN. И все бы хорошо, если бы не одно «но».
Нужна профессиональная помощь в настройке сервера? Есть вопросы? Качественная и надежная IT-помощь по доступным ценам:
- Настройка Windows Server для пользователей СНГ
- Настройка Linux сервера для пользователей СНГ
- Помощь в администрировании серверов для пользователей Украины и СНГ
Кроме банков,
операторов мобильной связи, госучреждений, гигантских фирм, короче говоря людей
больших и состоятельных, в мире есть множество маленьких фирм и фирмочек. Для небольшой
фирмы, организовать и поддержать собственную VPN инфраструктуру – нередко удовольствие не по карману.
Сейчас есть множество безопасных, доступных по цене, простые и удобные решений, которые позволяют организовать VPN для удаленной работы. Например, VPN клиент Pulse Secure, позволяет буквально в два клика, организовать безопасный RDP доступ. Просто запустил — ввел пароль — готово. Либо, создать свой VPN на базе облачных решений. Для бизнес-пользователей в Украине, есть готовая сеть VPN для защиты RDP, по доступной цене.
Сами
растраты на организацию RDP
сервера для клиентов в таких фирмах – уже достижение. А тут еще нужен
производительный роутер, нужно организовать поддержку пользователей.
Итак, небольшая
фирма с RDP сервером наружу.
Первый признак
работы сканеров – большое количество неудачных событий 4625 (An account failed to log on) в которых указаны различные
распространенные имена пользователей.
Необходимо
позаботится чтобы пароль действительно не подобрали. Для этого нужен комплекс
мер:
- имена
пользователей не должны быть стандартными - пароль
должен быть сложным -
количество
неудачных попыток входа для пользователя должно быть ограничено
Как минимум нужно
настроить в групповой локальной или доменной политике следующие параметры:
Computer ConfigurationSecurity SettingsLocal PoliciesAccount PoliciesPassword Policy
Minimum password length = 9
Password must meet complexity requirements = Enabled
Computer ConfigurationSecurity SettingsLocal PoliciesAccount PoliciesAccount Lockout Policy
Account lockout threshold = 5
Reset account lockout counter after = 30
Account lockout duration = 30
Так же необходимо
выставить параметры безопасности на уровне RDP:
Computer ConfigurationPoliciesAdministrative
TemplatesWindows ComponentsRemote Desktop ServicesRemote Desktop Session
HostSecurityRequire secure RPC communication = Enabled
Require use of specific security layer for remote (RDP)
connections = SSLRequire user authentication for remote connections by using
Network Level Authentication = EnabledSet client connection encryption level = High
При таких
настройках и нестандартных именах пользователей успешный подбор пароля (или его
получение из сетевых пакетов) практически невозможны.
Это хорошо, но не
снимает нагрузку на сервер из-за обработки неуспешных аутентификаций. При
интенсивном переборе вероятна ситуация, в которой вместе с паразитными
запросами будут отбрасываться и попытки входа реальных пользователей, которые
будут получать отказы на вход через RDP, несмотря на правильно введенные логин и пароль.
Признаком данной ситуации станут события 5817 «Netlogon
has failed an additional 129 authentication requests in the last 30 minutes.
The requests timed out before they could be sent to domain controller
\server.ourdomain.local in domain OURDOMAIN.»
Первый
«метод защиты» – изменение стандартного RDP-порта 3389 на нестандартный. Настройки
находятся в реестре:
KEY_LOCAL_MACHINESystemCurrentControlSetControlTerminal
ServerWinStationsRDP-TcpPortNumber
для применения
нужен рестарт сервера.
Однако, по опыту
замечено, что сканеры успешно обрабатывают данную ситуацию и через день-два новый
порт уже вовсю сканируют.
Второй шаг, сделать
на уровне маршрутизатора блокировку IP если с него создано некое количество сессий за единицу времени (если это
возможно на вашем роутере).
Однако, стоит
учесть, что переборщики паролей, работают в рамках одной сессии кидая в неё
пакет за пакетом, а RDP
сервер, несмотря на большое количество неуспешных попыток и не будет ее
разрывать. Поэтому, нужен сетевой экран, умеющий делать инспекцию пакетов на
уровне приложения. Но такие устройства и их поддержка явно выходят за рамки
бюджета маленькой фирмы.
На линуксе
существует утилита fail2ban парсящая логи и блокирующая на уровне firewall адреса с которых происходит много
неуспешных попыток входа.
Не то чтобы утилита, но вариант решения (это больше концепт идеи, чем рабочий вариант): fail2ban в виде скрипта.
Правда тема старая, решение костыльное (использования IPSec не по назначению). А ещё оно на VBScript :). Но решение вполне рабочее (было по крайней мере) :). Помню что проверял его на сервере и оно работало.
Можно использовать что-то подобное под Windows Server используя Powershell.
Определим
переменные:
# количество
неуспешных попыток за единицу времени при которых IP блокируется# с единицей
времени определимся ниже$ban_treshold = 5
#
продолжительность блокировки в часах$ban_duration = 24
# инициализируем
массивы в которых будут добавляться IP для блокировки$ip2ban = @()
$ip2ban_str = @()
В нашем случае с
параметром групповой политики Require use of specific security layer for remote (RDP) connections = SSL и включенным NLA события
4625 не будут содержать IP
источника. И для Server 2008,
чтобы видеть в событиях 4625 источник перебора прийдется ставить менее
защишенный security layer = RDP.
Server 2012 более продвинутый, можно использовать настройки
SSL+NLA и при этом ориентироваться на события 140 ( A connection from the
client computer with an IP address of xxx.xxx.xxx.xxx failed because the user
name or password is not correct. ) в Applications and Services Logs. Не путайте
с NTFS событиями 140 ( The system failed to flush data to the transaction log.
) появляющимися в логе System.
# получаем события
$evt140 = Get-WinEvent -ProviderName
Microsoft-Windows-RemoteDesktopServices-RdpCoreTS|?{$_.id -eq 140}# пишем в лог
«— Get-WinEvent $ban_date_str» >>
$log_file# группируем
события по IP, фильтруем по
количеству, определенному в ban_treshold и записываем в
массив$ip2ban = $evt140.properties.value|Group-Object|?{$_.count
-ge $ban_treshold}|select name,count# пишем в лог IP определенные для блокировки и для
информации количество попыток$ip2ban|%{ «#block_ip «+$_.name+»
«+$_.count >> $log_file }
Самое важное –
список IP для блокировки (он
у вас должен быть). Теперь нужно очистить лог от событий, чтобы не
анализировать их при последующих запусках скрипта и создать правила для firewall.
# проверяем что
список IP не пустойif($ip2ban.count -gt 0){
# очищаем лог
get-winevent
-ListLog Microsoft-Windows-RemoteDesktopServices-RdpCoreTS/Operational| % {
[System.Diagnostics.Eventing.Reader.EventLogSession]::GlobalSession.ClearLog($_.LogName)
}
$ip2ban|%{$ip2ban_str+=$_.name.tostring()}# создаем правило firewall
New-NetFirewallRule
-DisplayName «RDP_DYN_BAN_$ban_date_str» -Enabled «True»
-Profile Any -Direction Inbound -Action Block -RemoteAddress $ip2ban_str
-Protocol TCP# пишем в лог имя
созданного правила«— New-NetFirewallRule
RDP_DYN_BAN_$ban_date_str» >> $log_file}
Как только
правила начинают накапливаться, чтобы их не стало сильно много, нужно удалять правила,
которые старше ban_duration.
# читаем текущие правила
$current_frs = Get-NetFirewallRule -DisplayName RDP_DYN_BAN*
$current_frs|%{
# переводим
строковое имя правила в datetime$date_frs=[datetime]::parseexact($_.displayname,
‘RDP_DYN_BAN_ddMMyyyy_HHmmss’,$null)# если разница в
часах больше ban_duration удаляем правилоif( ((get-date) —
$date_frs).totalhours -ge $ban_duration ){«—
Remove-NetFirewallRule -Displayname «+$_.displayname >> $log_file$_|Remove—NetFirewallRule —Confirm:$false
}
}
Осталось
настроить запуск скрипта в планировщике, например, каждый час или 30 минут. Это
и будет единицей времени для ban_treshold определенной
нами в скрипте.
В идеале скрипт
нужно доработать, должны создаваться не правила для firewall операционной системы, а командные файлы
на сетевое оборудование, чтобы вредные пакеты даже не попадали внутрь сети.
VPN — единственно правильный вариант защиты от подбора паролей через RDP. Сейчас есть очень простые и удобные VPN клиенты, буквально запустил — ввел пароль — готово. Pulse Secure, является готовым решением для организации VPN без лишних хлопот. Если совсем никак не получается реализовать VPN — ставить блокировку учетной записи при неправильном вводе пароля, например 5 раз на 30 минут — помогает, хотя это и не полноценное решение.
Есть интересное и бесплатное программное решение: Cyberarms Intrusion Detection and Defense Software (IDDS) Есть инструкция: «Устанавливаем и настраиваем Cyberarms Intrusion Detection and Defense Software (IDDS)».
Работает не только с RDP, но и может отслеживать:
- FTP
- RRAS — Routing and Remote Access
- Kerberos pre-authentication
- AD Credential Validation
- Windows Base
- FileMaker
- SMTP
- SQL Server
И как вариант, можно рассмотреть RdpGuard, что достаточно актуально будет для облачных виртуальных серверов.
Для любителей держать открытым RPD в Интернет, рекомендую ознакомиться: https://www.ptsecurity.com/ru-ru/about/news/zloumyshlenniki-mogut-poluchit-dostup-k-kazhdomu-desyatomu-otkrytomu-udalennomu-rabochemu-stolu/
Дополнительная информация и вариант решения для защиты от перебора паролей RDP с блокировкой IP правилами Windows Firewall: https://winitpro.ru/index.php/2019/10/02/blokirovka-rdp-atak-firewall-powershell/
Для блокировок IP, ознакомьтесь с решением IPBan:
- Оф. сайт: https://www.digitalruby.com/ipban/
- Github: https://github.com/DigitalRuby/IPBan
- Инструкция: «Защита RDP подключения от брутфорса при помощи IPBan.»
Добавлено 27.01.2021
Имел возможность реализовать защиту RDP соединения, при помощи готового решение для реализации двухфакторной аутентификации с защитой RDP от ESET (ESET Secure Authentication для защиты локального или удаленного входа в систему через протокол RDP).
Ссылки на получение пробной лицензии и загрузки для пользователей РФ.
Заявка на получение ключа активации (бесплатная триал версия на 30-ть дней): https://www.esetnod32.ru/download/business/trial/?from=esa#download-business-trial
Загрузка последнего дистрибутива ESET Secure Authentication: https://www.esetnod32.ru/download/business/commercial/access/
Ссылка на решение ESET Secure Authentication, для пользователей Украины.
https://www.eset.com/ua/business/secure-authentication/
Ссылка на загрузку: https://www.eset.com/ua/business/secure-authentication/download/
Есть простое и понятное видео, которое сам использовал при настройке ESET Secure Authentication.
Добавлено 19.02.2021
Есть ряд базовых советов, по защите от атак шифровальщиков и неизвестных угроз:
- Пять шагов для защиты от вирусов-шифровальщиков.
- Как защититься от всевозможных вирусов-шифровальщиков?
- Простой, эффективный и бесплатный способ защиты от вирусов-шифровальщиков.
- Защита главной загрузочной записи (MBR).
- Отключаем SMB в ОС Windows 7/10 и в Windows 2008 R2.
- Нужен ли вам «IT-аудит безопасности»?
- «Защита RDP подключения от брутфорса при помощи IPBan.»
- «Устанавливаем и настраиваем Cyberarms Intrusion Detection and Defense Software (IDDS).»
Добавлено 04.07.2021
Есть доступное по цене и надежное решение с готовым виртуальным сервером VPN для бизнеса, которое можно развернуть буквально за считанные минуты. Услуга предоставляется только для юридических лиц Украины. Узнать больше…
Бизнес-предложение для фирм, предприятий, частных лиц и организаций (облачные решения).
Резервное
копирование данных, защита данных от потерь, организация удаленного
офиса для сотрудников, настройка бухгалтерии в облаке, VDS/VPS, опытная и
отзывчивая поддержка, обслуживание и сопровождение на базе TUCHA.UA. Данное предложение
актуально для коммерческих и государственных структур.
Узнать больше… Услуги предоставляются данной компанией по СНГ и за пределами (Европа, США).
Добавлено 21.10.2021
На сайте winitpro в обсуждении статьи, один из пользователей, поделился своим рабочим скриптом, который:
- не зависит от языка системы и кодировок
- сохраняет логи
- проверяет на повторяющиеся IP адреса и отсекает их
Скрин на комментарий:
Сам скрипт:
$Attempts = 5 # За сколько попыток блокировать
$Hours = 1 # За какое время считать попытки
$RDPPort = «3389» # Блокируемый порт, стандартный — 3389
$NameRule = «BlockRDPBruteForce» # Название правила брандмауэра
$log = «blocked_ip_rdp.txt» # Лог-файл (можно указать вместе с путём к файлу)# Проверяем наличие правила в брандмауэре и создаём его, если отсутствует
if($null -eq (Get-NetFirewallRule -DisplayName $NameRule -ErrorAction SilentlyContinue)){New-NetFirewallRule -DisplayName «$NameRule» –RemoteAddress 1.1.1.1 -Direction Inbound -Protocol TCP –LocalPort $RDPPort -Action Block}
# Получаем список системных сообщений с неудачными попытками за указанное время
$badRDPlogons = Get-WinEvent -FilterHashTable @{LogName=’Microsoft-Windows-RemoteDesktopServices-RdpCoreTS/Operational’;ID=’140′;StartTime=([DateTime]::Now.AddHours(-$Hours))}
# Получаем новые IP адреса с неудачными попытками авторизации за указанное время
$getip = $badRDPlogons.Properties | group-object -property value | where {$_.Count -gt $Attempts} | Select -property Name
# Получаем список IP из текущего правила брандмауэра
$current_ips = (Get-NetFirewallRule -DisplayName «$NameRule» | Get-NetFirewallAddressFilter ).RemoteAddress -split(‘,’)
# Проверяем найденные IP среди уже заблокированных и формируем итоговый список IP
$ip = $getip | where { $getip.Name.Length -gt 1 -and !($current_ips -contains $getip.Name) }
$ip | % {
$current_ips += $ip.name
# Записываем информацию в лог-файл
‘[‘+(Get-Date).ToString() + ‘] IP ‘ + $ip.name + ‘ blocked for ‘ + ($badRDPlogons | where { $_.IpAddress -eq $ip.name }).count + ‘ unsuccessful attempts in ‘ + $Hours + ‘ hour(s).’ >> $Log}
# Обновляем правило брандмауэра
Set-NetFirewallRule -DisplayName «$NameRule» -RemoteAddress $current_ips
Ссылка на источник скрипта, приведена выше. Смотрите внимательно комментарии к статье по ссылке.
Добавить 15.05.2022
Полезная заметка добавлена: Настройка двухфакторной аутентификации (2FA) в Windows с помощью MultiOTP.
В данном топике будет рассмотрена защита RDP доступа к VPS серверу с помощью автоматически запускаемого скрипта PowerShell. Скрипт будет запускать Планировщик задач анализируя Журнал Windows, журнал Безопасность, код события 4625 (Данное событие возникает при неудачной попытке входа).
Скрипт проверяет журнал Безопасность за последние 5 часов (время можно менять), если в журнале есть 5 событий (количество событий так же можно изменить) с кодом 4625 от одного ip адреса то этот ip будет автоматически добавлен в предварительно созданное правило Брандмауэра Windows которое заблокирует входящие подключения к порту 3389 VPS сервера.
1. Создание правила блокирующего доступ к порту 3389 добавляемым ip адресам.
Скачайте на сервер и выполните PewerShell сценарий (единоразово).
В результате будет создано правило блокирующее порт RDP (3389) для указанных ip (будет добавлен случайный ip 123.123.123.123 без которого правило не сохранится).
2. Сценарий PowerShell анализирующий журнал Безопасность и добавляющий ip в ранее созданное правило.
Скачайте на сервер и выполните PewerShell сценарий.
Переменные которые можно менять:
$Last_n_Hours = [DateTime]::Now.AddHours(-5)
переменной Last_n_Hours присваивается время с которого будет анализироваться журнал Безопасность. В данном случае это текущее время минус 5 часов.
{$_.Count -gt 5}
количество повторений события 4625 для ip адреса. В данном случае оно равно 5.
$log = "C:blocked_ip_rdp.txt"
в данный файл будут добавляться заблокированные ip с указанием времени блокировки и количества неудачных попыток подключения к RDP за последние 5 часов.
После первого выполнения сценария на сервере результат выполнения можно проверить в свойствах созданного правила Брандмауэра.
На этом этапе всем ip которые сделали 5 попыток в течение последних 5 часов уже будет заблокирован доступ к RDP.
3. Настройка Планировщика Windows для автоматического запуска PowerShell сценария.
Внимание: Групповые политики Windows не разрешают выполнение сценариев PowerShell которые скачаны из сети. Поэтому перед настройкой планировщика заданий нужно разблокировать сценарий с помощью Unblock-File командлета.
Запустите консоль Windows PowerShell и выполните: Unblock-File C:UsersАдминистратор.WIN-BHK3CCM292MDesktopblockip.ps1
Запускаем Планировщик заданий и создаем простую задачу с любым именем, например blockip.
Указываем когда будет срабатывать триггер:
Указываем событие при котором будет срабатывать триггер:
На следующем этапе выбираем действие для задачи — Запустить программу.
Далее указываем программу которая будет запускаться — PowerShell.exe
и в качестве аргумента к ней ссылку на сценарий PowerShell — C:UsersАдминистраторDesktopblockip.ps1 (нужно указать полный путь к сценарию).
Далее сохраняем созданную задачу и проверяем работу планировщика.
Созданное правило BlockRDPBruteForce (см. пункт 1 инструкции), проверяем его свойства, вкладка Область, там будут добавляться ip которым будет запрещены входящие подключения для порта 3389.
Лог работы сценария можно проверить в файле C:blocked_ip_rdp.txt
Если требуется очистить правило BlockRDPBruteForce можно выполнить сценарий или добавить этот сценарий в Планировщик заданий для ежедневного выполнения.
P.S. Данная инструкция является наиболее простым вариантом защиты RDP вашего сервера от BruteForce атак. Лучшим способом защиты RDP является настройка VPN шлюз для RDP
-
0
- 16 апреля 2021, 13:24
- GreatAlex
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.
Далее будут рассмотрены пять мер, позволяющих существенно повысить безопасность RDP в Windows 2016. В статье предполагается, что сервер терминалов уже прошел предварительную настройку и работает. Все скриншоты соответствуют Windows Server 2016.
Смена стандартного порта Remote Desktop Protocol
Начнем со стандартной меры — смены стандартного порта Windows 2016 RDP, что позволит предотвратить атаку всем известных портов (well-known ports).
Настройку порта можно осуществить с помощью реестра — HKEY_LOCAL_MACHINESystemCurrentControlSetControlTerminalServerWinStationsRDP-TcpPortNumber.
Рис. 1. Смена порта RDP в Windows Server 2016 с помощью редактора реестра
После этого запустите Брандмауэр Windows и на боковой панели слева выберите Дополнительные параметры. Далее — Правила для входящих соединений и нажмите кнопку Создать правило (на панели справа)
Рис. 2. Правила для входящих подключений
В появившемся окне выберите Для порта и нажмите кнопку Далее. Затем выберите Определенные локальные порты и введите порт, указанный при редактировании реестра (рис. 3). В следующем окне мастера нужно выбрать Разрешить подключение(рис. 4).
Рис. 3. Задаем новый порт
Рис. 4. Разрешаем подключение
Собственно, на этом настройка завершена. Отключитесь от сервера и установите новое соединение. Не забудьте в настройках RDP-клиента Windows Server 2016 указать новый порт: IP-адрес_сервера: порт.
Блокируем учетные записи с пустым паролем
Усилить RDP безопасность можно, запретив windows server подключаться учетным записям с пустым паролем. Для этого нужно включить политику безопасности «Учетные записи: разрешить использование пустых паролей только при консольном входе»:
- Откройте локальную политику безопасности (нажмите Win + R и введите команду secpol.msc)
- Перейдите в раздел Локальные политики, Параметры безопасности
- Дважды щелкните на нужной нам политике и убедитесь, что для нее задано значение Включен (рис. 5).
Рис. 5. Включение политики безопасности в Windows 2016 RDP «Учетные записи: разрешить использование пустых паролей только при консольном входе»
Настраиваем политику блокировки
Основная проблема в том, что по умолчанию Windows-server (даже 2016!) не защищен от брутфорса, поэтому безопасность RDP в Windows 2016 пребывает не на очень высоком уровне. При наличии какого-либо сервиса, в частности, FTP, вас могут брутфорсить, пока не получат доступ к системе, перебирая огромное множество логинов и паролей. Именно поэтому необходима настройка временной блокировки пользователя после нескольких неудачных попыток.
Необходимый набор правил и настроек называется Политика блокировки учетной записи (Account Lockout Policy). Пока вы еще не закрыли окно Локальная политика безопасности, перейдите в раздел Политики учетных записей, Политика блокировки учетной записи. Установите Пороговое значение блокировки — 5 (максимум 5 неудачных попыток входа), Продолжительность блокировки учетной записи — 30 (на 30 минут учетная запись будет заблокирована после 5 неудачных попыток входа).
Рис. 6. Настройка политики блокировки учетной записи
Настройка службы шлюза служб терминалов
Служба «Шлюз TS (служб удаленных рабочих столов)» Windows Server 2016 разрешает сторонним пользователям реализовывать удаленное подключение к терминальным серверам и другим машинам частной сети с активированным протоколом удаленного рабочего стола. Служба обеспечивает RDP безопасность подключений за счет использования протокола HTTPS/SSL, что позволяет не заниматься настройкой VPN для шифрования трафика.
Служба позволяет контролировать доступ к машинам, устанавливая правила авторизации и требования к удаленным пользователям. Администратор сможет контролировать пользователей, которые могут подключаться к внутренним сетевым ресурсам, сетевые ресурсы, к которым могут подключаться пользователи, определять, должны ли клиентские компьютеры быть членами групп Active Directory и др.
Порядок действий для установки службы «Шлюз ТS»:
- Откройте Диспетчер серверов и на главной его странице нажмите ссылку Добавить роли и компоненты
- Нажмите Далее, а затем выберите Установка ролей или компонентов.
- Выберите ваш сервер из пула серверов
- Выберите Службы удаленных рабочих столов и нажмите Далее несколько раз, пока не достигнете страницы Выбор служб ролей
- Выберите службы ролей Шлюз удаленных рабочих столов (рис. 7)
- Нажмите кнопку Добавить компоненты
- Нажимайте Далее для завершения процедуры установки. Когда все будет готово для установки выбранных компонентов, нажмите кнопку Установить (рис. 8).
Рис. 7. Установка службы ролей
Рис. 8. Все готово для установки
Далее нужно создать сертификат для шлюза служб удаленных рабочих столов. Запустите Диспетчер служб IIS, выберите пункт Сертификаты сервера. На панели справа выберите Создать сертификат домена. Введите необходимые сведения (рис. 11).
Рис. 9. Диспетчер служб IIS
Рис. 10. Выберите Создать сертификат домена
Рис. 11. Информация о сертификате
Далее нужно выбрать центр сертификации, который подпишет сертификат, и нажать кнопку Готово. Сертификат появится в списке сертификатов.
Следующий шаг — настройка шлюза TS на использование сертификата. Вернитесь к Диспетчеру серверов и, используя меню Средства, запустите Диспетчер шлюза удаленных рабочих столов. Обратите внимание, что есть одна ошибка — Сертификат сервера еще не установлен или не выбран. Собственно, все, что остается сделать — нажать ссылку рядом Просмотр и изменение свойств сертификата и выбрать ранее созданный сертификат, нажав кнопку Импорт сертификата (рис. 13). В этом окне также можно создать самозаверяющийся сертификат.
Рис. 12. Диспетчер шлюза удаленных рабочих столов
Рис. 13. Выбор сертификата SSL
Используем протокол SSL/TLS для защиты RDP
Если соединение с RDP-сервером реализовывается не через VPN, для обеспечения защиты подключений рекомендуется активировать SSL/TLS-туннелирование соединения.
Опцию RDP через TLS можно активировать через набор правил и настроек защиты сервера удаленных рабочих столов. Введите команду gpedit.msc и перейдите в раздел Конфигурация компьютера, Административные шаблоны, Компоненты Windows, Службы удаленных рабочих столов, Узел сеансов удаленных рабочих столов, Безопасность. Откройте политику Требовать использования специального уровня безопасности для удаленных подключений по протоколу RDP. Выберите значение Включено и выберите уровень безопасности SSL (рис. 14).
Рис. 14. Включение RDP через TLS
На этом настройка безопасности RDP Windows server 2016 закончена.
Часто возникает вопрос — насколько безопасно подключаться через удаленный рабочий стол 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-туннелирование для подключений к удаленному рабочему столу.
Введение
В последнее время сканирование сетей и брутфорс-атаки на RDP стали очень распространены, к сожалению. Боты проходятся по целым сетям популярных дата-центров, после чего зачастую невозможно подключиться к серверу по RDP:
или
В этом случае в журнале событий Windows (раздел безопасность) вы увидите нечто похожее:
Вариант защиты №1. Изменение стандартного порта RDP
Боты занимаются массовым брутфорсом, поэтому они используют стандартный rdp-порт. Его изменение поможет нам от нетаргетированных атак.
1. Открываем редактор реестра Windows — regedit, с помощью «Выполнить» (Win+R).
2. Перейдите в следующую ветку/подраздел реестра: HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp
3. Найдите запись реестра PortNumber и откройте её редактирование.
4. Переключитесь в десятичный формат и введите новый порт, вместо стандартного 3389. Например: 13380
5. Потребуется перезагрузка сервера, чтобы изменение порта вступило в силу.
Теперь при подключении к серверу вы должны указывать порт, через двоеточие:
Обратите внимание: если у вас включен firewall (брандмауэр Windows), то также понадобится создать разрешающее правило для входящих TCP-соединений для нового rdp-порта.
Вариант защиты №2. Установка лимитов
Заходим в Локальную политику безопасности.
(Политики учетных записей/Политика блокировки учетных записей)
Настраиваем количество попыток и время блокировки.
Вариант защиты №3. Белый список ⭐
Самым эффективным способом будет использование белого списка ip-адресов, которые смогут подключаться к вашему серверу по RDP, а все остальные соединения будут блокироваться. Для этого настраиваем соответствующим образом Windows Firewall.
Если у вас возникли какие-либо сложности при настройке RDP Windows на вашем сервере — обратитесь в службу поддержки Abcd.Hosting.