Pull to refresh

Comments 33

Самый лучший вариант – это внедрить двухфакторную авторизацию, например, с паролем через SMS, в результате чего подбор паролей станет бесполезным занятием.
А подключение по RDP через VPN только с разрешённых IP проблему не решает?
А подключение по RDP через VPN только с разрешённых IP проблему не решает?


Скорее всего должно решать.
Не всегда применимо. У меня, например, шеф любит путешествовать, но при этом систематически работает в той же 1сАвтоматизации 1.1, у которой веб-морды нормальной нету.
К нему не прикрутишь ИП-блокировку. ВПН — это двойное шифрование, что не руль если канал худой. Ибо RDP 7 и выше на худых каналах относительно нормально живут, а вот ВПН — не очень.
Блокировку по ошибкам тоже опасаюсь, ибо кричит шибко громко :), а ошибаться бывает.
Скрипт объективно спасает.
в Вашем случае самым адекватным решением будет port knocking (можно сделать один батник, который будет стучаться и запускать рдп-клиент)
Прикрутите аутентификацию по сертификатам. Сам сертификат выдайте на смарт-карте.
вот самый правильный вариант. именно так все правили Шипова ныне пользователи у нас работают
вот самый правильный вариант. именно так все правили Шипова ныне пользователи у нас работают
внедрите RemoteApp и забудьте про VPN/RDP/etc.
ну и после 5 неправильных вводов доменного пароля — поставьте блокировку «пока админ не разбанит», очень помогает :)
К.О. предупреждает, что RemoteApp работает ровно по тому же самому RDP и с ним возникают ровно те же самые проблемы с безопасностью ;)

The_Kf выше правильное предлагает: вся аутентификация по смарт карте или usb-токену решает проблему. Самое главное чтобы пароля и логина вообще не было. Сертификат и ключи тоже могут спереть поэтому совсем хорошее решение это аппаратный аутентификатор.
… или простой скрипт на powershell, который сообщает о всех фактах авторизации и попытках авторизации. эт в отсутствии централизованной системы контроля доступа.
… или простой скрипт на powershell, который сообщает о всех фактах авторизации и попытках авторизации. эт в отсутствии централизованной системы контроля доступа.


Спасибо. И это, как вариант, тоже решит проблему.

Если у вас на сервере есть что то к чему можно подключиться используя пароль, значит вам НАДО иметь стойкий пароль и еще желательно другие способы защиты. А их много начиная от ограничения неверных попыток, ограничения IP и т. д.

UFO just landed and posted this here
Тот же RDP можно настроить на таймауты между попытками и блокировать на час после нескольких неудачных. И никакой брутфорс будет не страшен. Как всегда паника вместо изучения вопроса.
10 минут, думаю, достаточно. При 7-значном пароле с буквами и цифрами и сроком жизни.
Мне интересно, как самому подключиться по RDP, если брутфорсят непрерывно? При таком подходе, учетка постоянно в локауте.
Как минимум будет известно, что происходит брутфорс — можно принимать дальнейшие меры.
Так если брутфорсят, то на сервере RDP(в смысле, только на декстопных win-ах ограничение в одну rdp-сессию) учётки доступны, недоступны они станут, когда под ними залогинятся. Ну а после этого уже и брутфорс прекратится.
UFO just landed and posted this here
В деталях не помню. Как всегда — в gpedit.msc — Administrative Templates.
В политике компьютера (локального или через Group Policy Management Console, если в домене):
Computer Configuration -> Windows Settings -> Security Settings -> Account Policies -> Account Lockout Policies.

Всего три простые политики: кол-во неудачных входов, после которых аккаунт блокируется, продолжительность блокировки плюс время сброса счетчика неудачных входов в систему.
UFO just landed and posted this here
Имел опыт борьбы с подобными ботами (одна атака была успешной, но вместо крипто запустили скрипт майнинга биткойнов на половину ядер сервера ^^), для начала лечилось банальной сменой порта RDP из вне (3389 на любой другой) и переименованием учеток типа Администратор, admin, user, user1 и тд. на более несловарные.
Ну пароли ладно брутят, а как с логинами? или там все под Administrator или Guest работают? И права смотрю у RDP пользователей широкие. Да и можно ограничить по количеству неверных попыток, а потом блочить учетку. Если юзер звонит админу что учетка заблочена а он все выходные бухал, то тут уже есть над чем задуматься админу.
Думаю RDP не стоит ругать, вина не в протоколе. Это как поставить бронированную дверь в квартиру, а ключ класть под коврик.
Блочить учетку не особо вариант. Когда шла непрерывная атака, реальные юзеры не могли войти, не успевали. Или админ был не всегда доступен для помощи (разлочить учетку), например при работе вечером.
порты смените просто) Я фронт энд но пришлось заниматься сервером, в итоге обнаружил что ломились на ssh, ftp на wordpress сайты, перебирали пароли, один раз проворонил сделал плагин для wordpress который пишет 3 лога подряд при ошибочной авторизации в wordpress первый в стандартный sitename.access.log второй в лог fail_ip.sitename.log в папочку logs на ftp можно если что смотреть ситуацию) а потом в syslog но он похоже дублируется ы messages лог и там по мне нужному алгоритму пишется лог (дата, адресс сайта, ip кто авторизовывался, логин с которым авторизовывались и useragent) этого достаточно в принципе, это помогло мне выявить что с 3х ночи до 7 утра сделали 10000 подборов с одного ip на одном из сайтов который на нашем сервере. когда я показал fail2ban общий лог и настроил параметры защиты и подкорректировал поисковик по messages log сразу ситуация изменилась, нагрузка на сервер упала, но второй лог мне помог выявить сверх низкие переборы) примерно с интервалом в 30-45 минут по 2-3 раза с одного ip в итоге настроил fail2ban на 9 одинаковых ip в логе за 5 часов и нормально) Плюс ещё начал собирать уникальные ip так проверить сколько у нас гостей чтоб их потом разом всех в банлист) в итоге ну уже 178 ip адресов есть в базе, сделал после добавления в базу запрос на geoip сервис какой то, чтоб знать из какой страны была авторизация, для того чтоб сразу легитимных отсеять. Мало ли) причём скрипт принимает ip не только с нашего сервера но и второго сервера где так же стоит мой плагин и при брутфосе шлёт мне этот ip на наш сервер. а теперь надо wordpress защищать, пытаюсь это сделать через ngnix потому что htaccess перезаписывается всякими плагинами защиты и кэша и они иногда перетирают друг друга) там есть модуль для ngnix который блокирует такие запросы но я вроде уже конвертирую htaccess параметры в ngnix для всех сайтов разом. Ну что поделать учусь)
Это понятно, но ты говоришь по линуха, а он про remote desktop, у мелкомягких там толком нет никакой защиты, кроме как блочить по количеству попыток, ну или привязка к IP.
А так да, я с наружи никогда RDP не делаю на 3389, переставляю на другие порты всегда.
Я тоже поставил на сервер rdp но там какой то интерфейс вроде gnome и я похоже его сломал) что то ткнул на панели сверху в итоге у меня там при логине пишется «Oops… » ну упс а что дальше делать))) не инструкций ни советов, я вобще поставил его для того чтоб зайти и файл в zip заархивировать там 6 гигабайт примерно было isp manager 5 мне отказался этим заниматься, супер технологии такие) Хочешь не хочешь а из фронт энд я уже похоже в системного администратора превращаюсь а потом что бэк энд? Оптимизация баз данных облачное распределение, разгон хэширования паролей с помощью видео карт на серверах, вот веселуха)

Кстати а почему от брут форса не использовать связку ( ( login || email ) && (pass_1 && pass_2) ) это же будет бессмысленно перебирать пароли когда 2 поля для разных паролей, причём это более секьюрно: ( pass_1 + salt_1 && pass_2 + salt_2 ) = pass hash; я думаю замучаются перебирать если конечно не такая связка (login: admin, pass_1: qwerty, pass_2:123456) а так перебрать варианты будет наверно по труднее.
имя пользователя текущее можно вытащить.
а так эффективный метод защиты рдп — помимо двухфакторной аутентификации, RDS Gateway на сертификатах, VPN и блокирования учётки — fail2ban. есть платные решения, есть бесплатный ts_block и evlwatcher. так же скрипт, блокирующий по айпи на основании аудита отказа пишется на коленке за полчаса-счас.
Разве грамотно настроенные Application Control Policies не предотвратят запуск стороннего программного обеспечения? (в случае, если взломанная учетная запись не обладает правами Администратора)
На PS решается подобная проблема в несколько строк.
Создаем правило в брандмауере для блокировки по порту RDP
И прикручиваем скрипт на выполнение при возникновении события 4625

$min = 30 #Проверка за последние 30 минут
$c= 10 #Количество неудачных попыток
$nameRules=«BlockIp» #Имя блокирующего правила брандмауера Windows

$time = (get-date) — (new-timespan -min $min)
$l = Get-EventLog -LogName 'Security' -InstanceId 4625 -After $time | Select-Object @{n='IpAddress';e={$_.ReplacementStrings[-2]} }
$Ip = $l | group-object -property IpAddress | where {$_.Count -gt $c} | Select -property Name, count
$ip % {[string]$z=$z+$_.name+","}
$firewall = New-Object -ComObject hnetcfg.fwpolicy2
$y = $firewall.Rules.Item($nameRules).RemoteAddresses
$z=$z+$y
$firewall.Rules.Item($nameRules).RemoteAddresses = $z

Доступный из интернета RDP считается дурным тоном последние 20 лет. Именно поэтому.
Для защиты от всякой гадости нужно/можно использовать AppLocker.
Sign up to leave a comment.