Pull to refresh

Comments 156

Pinned Pinned comments

У меня есть HKEY_LOCAL_MACHINE\SAM\SAM\

Но в нём нету Domains

Я отключил Administrator'a вот так:

  • Запускаем lusrmgr.msc 

  • Users -> right-click on Administrator -> Properties

  • General -> check "Account is disabled"

1. То, что нельзя использовать пароли 123 или типа того, по-моему, давно уже ни для кого не секрет.
2. Возможно, если у вас надежный пароль, вас никогда не взломают. Но лично мне почему-то все-равно не нравится, когда мои серверы безнаказанно брутфорсят. Мазохизм какой-то.
Сколь угодно надёжный пароль имеет прекрасные шансы быть записанным на клейком листочке, висящем на мониторе (более того, чем он сложнее в запоминании — тем скорее его туда запишут). В этом плане VPN с авторизацией по ключу таки надёжнее.
Это конечно небезопасно в плане инсайда (с инсайдом в мелких конторах вообще беда), но для RDP вполне может быть защитой
В этом плане VPN с авторизацией по ключу таки надёжнее.

По-моему, наоборот. Чтобы увидеть листочек с паролем, злоумышленник должен быть инсайдером компании. А чтобы стянуть ключ с домашнего компьютера бухгалтера, злоумышленник должен получить доступ к хреново защищённому компьютеру скорее всего без обновлений.
Чтобы увидеть листочек с паролем, злоумышленник должен быть инсайдером компании.

А другой сценарий не рассматриваете? Злоумышленник попадает на комп бухгалтера, ставит трояна и кейлоггер и парсит все пароли, которые вводит пользователь?

Меня 10 лет назад тоже попросили для работников бух. учёта сделать RDP.
Пароли раз в 2 недели меняют сами
Пароли комплексные
Блокировка если 3 попытки неудачных
Попыток конечно немало было. Сначала смотрел откуда, потом бросил.
Работает нормально на TS Windows 2003 до сих пор.
Три налоговые проверки пережили.
А как (чем) блокируются неудачные попытки?
Так, автор, вроде, ясно дал понять, что ничем. Об этом и статья.
В настройках политик групповых. Там есть правило для паролей и блокировок.
Если я правильно понял, то там блокируется пользователь, а не IP. Верно?

В таком случае это не очень хорошая блокировка: злоумышленник таким образом блокирует доступ на сервер реальному пользователю.
Можно и IP блокировать. Через WMI делать запросы к Events периодически и смотреть сообщение о неправильном пароле (тип события известный). Потом в правила firewall добавлять блокировку. Скрипт совсем не сложный. Можно на скрипте/C/C#/VB сделать и запускать раз в пять минут (например). Вариантов много.

Используем для этого haproxy в tcp режиме. Блокировка осуществляется по кол-ву соединений в единицу времени.
Например при подборе пароля соединение отбрасывается после третьего инициированного соединения допустим за интервал в x-секунд haproxy запрещает соединяться на n-минут.
Также на логи haproxy настроен эластик, очень помогает. Минус fail2ban решения для этого нет (или мы не нашли) в комплекте есть конфиги но добиться их работоспособного состояния, честно скажу, не удалось. Из плюсов при желании можно ещё балансировку накрутить.
Ранее использовали ts-broker и ts-gateway с сертификатами и rdp завёрнутым в ssl (https) на 445м. Тогда проблем с перебором вообще не было. Но это решение комплексное и добавляет оверхед.

А что будет в этом сценарии, если реальные пользователи сидят с одного IP? Я отказался от подобного решения: по утрам IP заказчика блокировался.

Справедливо.
Но как правило, очень обнаглевшие брутфорсеры запускают перебор в очень незначительный интервал времени, у нас были попытки подбора ~ несколько тысяч запросов в две минуты. Причем rdp был выведен на порт 11111. Такой подход позволяет избавиться от такого рода трафика и нежелательной нагрузки на сервер.
В итоге остановились на блокировке подсетей на пограничной ASA из логов эластика из haproxy.
Очень забавно было наблюдать как эти ребята изменяют механики перебора после введения фильтров.
После блокировки около 12 штук сетей злоумышленники потеряли к нам интерес :)

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

Опасно ли держать открытым RDP в Интернете?

Да, потому что возможные RCE-уязвимости никто не отменял.

Уязвимости — они везде. И в почте, и в браузере, и в мессенжерах. Но мы продолжаем этим всем пользоваться.
Вопрос в том, какой риск позволителен в каждом случае и можно-ли что-то сделать, чтобы уменьшить этот риск.

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

Если пользователь — не админ, то и RDP ему админских привилегий не предоставит.

А вот примеры того, как из браузера код получал админские привилегии — есть.
Даже если пользователь — не админ, то RCE в RDP ему даст системные права. И дыр в реализации было достаточно много обнаружено, чтобы перестать высовывать windows сервера голой жопой в интернет.
VPN реализуется обычно гораздо проще, потому и меньше ошибок несёт. Плюс реализация второго периметра от другого вендора уменьшает шанс на наличие одинаковых ошибок|бэкдоров.
RDP ему админских привилегий не предоставит.

Как оказалось — предоставит, см. ссылку выше


А вот примеры того, как из браузера код получал админские привилегии — есть.

Ссылочку?

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

Домашние пользователи так любят отключать UAC…
(особо «умные», считающие себя «продвинутыми», ещё и режим одобрения отключают или вообще под встроенным администратором сидят), а ведь UAC это единственное, что отделяет их от запуска вредоносного кода с правами администратора при компрометации браузера.
Они даже с включенным UAC радостно жмут подтверждения в любых всплывающих окнах не читая, против человеческого фактора ничего не сделаешь ¯\_(ツ)_/¯
UFO just landed and posted this here
Совершенно верно, после очережного взлома бросил эту дурацкую практику и настроил VPN на ключах.
Конечно когда приходит начальник и говорит «вот этому надо сделать доступ из дома прямо сейчас», то куда проще перебросить порт на терминал и забыть, чем настраивать и писать инструкцию по настройке клиента openVPN, но цена потом может оказаться слишком высока.
У нас с завидной периодичностью ломали RDP на W2012, никакие пароли не подбирали, использовали уязвимости. После выхода очередного обновления взломы прекращались, но не на долго, находилась очередная уязвимость. Спасала VMWare со снапшотами. А потом взломали свежеустановленный сервер для новой линии который настраивали из за бугра к которому не успели сделать бекап и за повторную установку попросили круглую сумму.
Дольше всех, несколько лет, держался терминал на 2003м, видимо на нём не было этих новых уязвимостей и потому взломы не проходили. Но потом «и на старуху бывает проруха», тоже взломали используя уязвимость и зашифровали всё что смогли.
Надо отметить что такие взломы идут на известном IP который много где светится, на котором сидит почта, на IP который нигде особенно не светился такой же 2003й работал без проблем и попыток взлома было на порядок меньше.
В целом не вижу здесь даже вопроса, если ты совсем ленивый и не боишься всё потерять — перебрасывай порт на RDP. Хотя это странно учитывая что тот же OpenVPN бесплатный и работает на чём угодно.
После выхода очередного обновления взломы прекращались, но не на долго, находилась очередная уязвимость.
Ну вы делайте это обновление не раз в год. 12 раз в год будет вполне достаточно.
Это не поможет. Естественно обновлялись сервера периодически по расписанию. Между обнаружением уязвимости и выходом патча существует некоторое время вполне достаточное для взлома.
Это так же как с вирусами, обычно обновление приходит на следующий день после того как вы этот вирус поймали.
Во времена когда сетей почти не было, такой способ помогал, сейчас уже нет. Как только обнаруживается уязвимость тут же идёт попытка взлома на все «прицельные» адреса на которые успеют. И только потом MS получит данные о взломах, программеры раберут в чем дело, напишут, протестят и выпустят патч и только потом его распространят.
Держать открытыми относительно спокойно можно 25, 80, 443, да и нужно их держать открытыми, никуда не денешься. Ну может еще 993, 995, 465 иногда, при необходимости и при наличии fail2ban'а. Все остальные, всякие RDP, SSH и т. д. — безусловно опасно.
Долго держал ssh на 22 (больше года), пока не повесил еще сайт на 80\443 попыток долбить по 22 не было. А после запуска сайта, уже через день-другой пришлось делать fail2ban, да и переходить на авторизацию по public key.
Очень странно… Обычно 22 — самый любимый порт для любителей «подолбить». Разве что у вас была отключена аутентификация по паролю, только по ключу.
нет, именно было по паролю. и не парило, ибо не долбили.
Моему IP больше 5 лет (сколько он у меня). 22 порт почти сразу стал торчать в инет. Первое время мониторил, проблем не было, а скоре и вовсе он не нужным стал, но сам сервис висел. Через 3 года потребовался сайт, поднял его тоже у себя. Пока крутил к нему правила (пару сервисов, редиректы и прочее) заприметил что долбятся на 22 порт. Не много, но есть. Т.к. уже давно тот ssh был без потребности и ни к чему доступа от туда не получить, да и процессорного времени там с гулькин нос + доступ ему в инет закрыт, да и в ЛВС ему не пробраться, то оставил как есть и забыл. И вот по прошествии 2-х лет на днях полез и… чуть ли не пол китая долбятся на 22 порт. Перманентно в выборке 50 соединений из вне на WAN порт 10-15 было на 22 порт ) Короче выключил.
Опасно конечно держать любую службу, но напрягают такие моменты: CVE-2019-0708: Критическая уязвимость в службе удаленного рабочего стола Windows. Эту проблему обнародовали, а что-то может знают не все. Тоже имею RDP, стучатся много.
Спасибо за ссылку.
Почитал — действительно уязвимость была критическая:

A remote code execution vulnerability exists in Remote Desktop Services – formerly known as Terminal Services – when an unauthenticated attacker connects to the target system using RDP and sends specially crafted requests. This vulnerability is pre-authentication and requires no user interaction.


То есть злоумышленнику нужно было знать только адрес сервера, не нужен был ни пользователь, ни пароль.
Тут есть более свежая новость про RCE с POC.

По сабжу — серьёзно? Сделать автоинсталляшку для создания L2TP подключения к терминалке компании — это сложно?

Сейчас есть очень простые и удобные VPN клиенты, буквально запустил — ввел пароль — готово.
Тоже работаю из дома и сталкивался со многими клиентами но вот Pulse Secure был самым простым и удобным пока что.

А что сложного один раз заполнить три или четыре поля (хорошо пять)?
PS По мне так с домашних устройств доступ очень небезопасная штука, так как ты их не контролируешь. И я бы разрешал только с рабочих настроенных пк удаленный доступ.
И вообще любой софт потенциальна дырка и может использоваться для кражи данных, со всеми вытекающими.
Ну, мир не стоит на месте, работа из дома (или удаленно на своем оборудовании) — тренд. Выгодно как работнику (меньше времени на транспортировку тела, свободный график и так далее) как и работодателю (можно переманить кадра который например в офисе не хочет работать + экономия на рабочем месте).
Вопрос в том готовы к этому технологии IT или сам отдел IT.
Впны старого поколения (работал с Cisco AnyConnect) уж очень хрупкие — буквально создал новую виртуальную машину (а она создает свои адаптеры) и впн слетает, ключи какие-то надо туда сюда ставить обновлять и так далее, вышел новый апдейт виндовс — перестал работать, в общем кучу времени надо тратить на борьбу с ним и саппортом (который тоже стоит денег). Pulse Secure насколько же я понял изначально сделан под ситуации работы на желе «c улицы» и вот прям работает из коробки и создавал 0 проблем (на моем опыте). Вводить 5 полей это конечно круто но когда оно еще и слетает каждый месяц и надо общатся с саппортом — пустая трата времени.
По поводу утечек данных — так же есть куча продуктов/решений, в частности многие клиенты инсталируют тебе софт который включает шифрование + свой антивирус + тулзы по мониторингу за подозрительными действиями. Так что индустрия потихонечку подтягивается под реалии работодателей. Я уже пришел к тому что просто создаю виртуальную машину под клиента и они уже туда ставят все что хотят — обмонитортесь хоть, а диск виртуальной машины шифруется так что даже если ее сопрут толку около 0ля.
Если вы знаете открытую утилиту для этой цели — поделитесь в комментариях.


Не то чтобы утилита, но вариант решения(хотя наверное это теперь больше концепт идеи, чем рабочий вариант): fail2ban в виде скрипта.
Правда тема старая, решение костыльное(использования IPSec не по назначению). А ещё оно на VBScript :D. Но решение вполне рабочее(было по крайней мере) :). Помню что проверял его на 2008-ом сервере, и оно работало.
fail2ban в виде скрипта

а оригинальный fail2ban — это решение не "в виде скрипта"? :)

Не знаю, под капот не заглядывал, но не удивлюсь если так и есть :).
Просто под Win(особенно во времена XP-2003) некоторые вещи удобнее было реализовывать в виде бинарников. Поэму предположил что под «утилитой» ожидается именно «программа». Конечно сейчас, когда везде(win) есть powershell, возможностей у скриптов стало больше.

P.S. Интересно, сколько правил осилит IPSec или виндовый файрвол, пока тестировал — доползло до ~10000 правил в политике(скрипт по ссылке не разбанивает IP), дальше уже не смотрел.
Если пограничный файрвол локальной сети настроен на nix, то почему бы не воспользоваться port knocking? Тот же Микротик это умеет. На стороне пользователя подключение можно запускать скриптом, в котором реализован алгоритм «простукивания».
Статья habr.com/ru/post/179219
Если у нас есть сторона пользователя и скрипт — то почему бы просто не поднимать таким же скриптом vpn и запускать подключение к rdp после этого?
Про VPN у автора в статье есть мнение ( и это его личное мнение ), я просто вспомнил еще одну интересную технологию. Как по мне, VPN намного безопаснее. Тот же Циско AnyConnect можно автоматизировать установку (до нажатия пары кнопок ОК) через веб сервер компании.

Была история: некий товарищ зарегистрировался в одной партнерской программе, работавшей по принципу revenue share (выплата процента с покупок). Быстро закрались сомнения по поводу его "клиентов": вроде бы и целевые действия выполняются, и антифрод проходит, но как-то целевых действий везде по минимуму. После ряда экспериментов я решил просто посканить все IP-адреса его "клиентов" — и, внезапно, везде торчал наружу RDP. Причем все это были уникальные машины, в самых разных локациях, близких к реальному владельцу карты. В общем, товарищ оказался кардером с нехилым таким пулом взломанных RDP-аккаунтов.

Опасно ли держать открытым RDP в Интернете?
Риски есть всегда. Правильный подход к управлению ими позволяет их минимизировать не тратя много ресурсов.
Порт сменить со стандартного, наверное стоит, но толку от этого немного.
Есть толк, если использовать порты 32000 до 65000. Поменять сотни уникальных ежедневных брутфорсеров на 1-2 в месяц.
Есть пара заброшенных проектов на Гитхабе, которые вроде бы это делают, но я даже не пробовал их ставить
Все верно. Ибо проблема решается элементарно скриптом на повершелке, который вешается на событие 4625 из лога Security. Событие прокнуло, повершелка посмотрела кто подлец и откуда, и по установленным правилам обновила правила фаерволла. Единственно что логика сбора события в 2008R2/2012R2/2016/2019 отличается, что не очень удобно и раздувает скрипт.
о вот что я заметил: значительное количество попыток — это использование имени сервера
В нормальной ситуации получить имя сервера невозможно, если включен NLA. У вас где то плохо с настройками и сервер рассказывает о себе сильно больше чем нужно.
Рекомендации из этого пункта:
используйте надёжные пароли
Я тоже пользователям это всегда говорю, но проверка их сознательности хэшкэтом говорит, что на тыщи три пользователей найдется сотня умников, которая клала болт на рекомендации. Сотня, это те, чьи пароли подбираются по хэшу менее чем за 12 часов на одной GTX1070.

Итого:
— Нельзя оставлять стандартный 3389 порт для всех. Исключение: если строго ограничено откуда можно подключиться, в приделах пары тройки ip адресов.
— Нельзя пробрасывать кучу портов на компы пользователей, если нет ограничения откуда каждый пользователь может подключиться. По каждому пользователю должен быть прописан конкретный ип с которого он может подключиться.
— Обязательно использовать NLA, он сходу отсекает половину обнаруженных уязвимостей.
— Обязательно мониторить порт и попытки авторизации. Банить автоматически по превышению какого либо порога.
— Ставить вышедшие апдейты на ОС сразу на все хосты к которым есть пробросы к RDP из инета.
— Если у вас больше 8-10 пользователей — уже пора заводить впн, без вариантов. На том же микротике все прекрасно реализуется.

Невыполнение вышеуказаных правил карается рано или поздно шифровальщиком. или могут с вашего сервака просто брутфорсить или пугать взрывами госорганы. Тогда вариант с шифровальщиком покажется не так уж и плох по головнякам.
Мораль: только бухгалтер способен заставить админа выставить сервер голой… голым интерфейсом наружу.

Но я бы предпочел перевоспитывать бухгалтеров, чем надеяться на апдейты. Дело ведь не только в силе пароля. Когда-нибудь MS забудут закрыть 0-day какой нибудь, и привет.
Есть прекрасно работающий RDP Guard
На одном из серверов я RDP повесил не на стандартный порт 3389, на 443 — ну типа замаскируюсь под HTTPS.

Пробовали повесить на совсем нестандартный? Я не уверен, но по-идее можно определить, что на это порте висит RDP. Т.е. повесив RDP на 443 порт не замаскируешься под https. А стандартные порты сканируют чаще, чем совсем нестандартные.
Поддерживаю, выбор порта крайней неудачный для сокрытия, сканеры по нему проходят в первую очередь. Да и толку скрываться на популярном порту никакого нет, nmap легко определит висящий там рдп.
Так если пользователя Administrator нельзя удалить, то что же делать? Его можно переименовать!
Его можно отключить. Вообще, по умолчанию он отключен.

Почему вы не используете сертификаты для авторизации? Это решит проблему перебора паролей. И очень странное решение вешать rdp на популярный порт, который точно попадет под все сканеры. Что мешает выбрать порт, который редко попадает под сканеры? Выше вон предложили брать порты от 32000 и далее.
UFO just landed and posted this here
А что решения MS для терминального доступа — Remote Desktop Gateway это не ваш случай?
Почему вы не использовали RD Gateway? Сразу же, из коробки, за те же деньги — SSL между клиентом и сервером, возможность подключиться практически отовсюду (потому как порт 443, а с нестандартыми бывают вопросы), использование radius для аутентификации — и как следствие возможность использовать MFA. Хотя последнее возможно и без radius, использовали одно время ПО, подменяющее стандартный логон на терминале.
про аналог fail2ban, давно использовал софт rdp attack blocker. Работала хорошо.
Я сразу же включаю политику блокировки пользователя, потом на роутере настроен бан по ip, если его nmapом сканировать начинают, каждый день по 1 ip попадает, Администратора стоит переименовать сразу, RDP, даже локально, на нестандартном порту, копии снимать только по FTP, ели по SMB то их так же шифранут, ну и естественно туннель с доступом не до сети а только до терминала
Я прям заинтересовался что это за RDWEB.

Почитал — вроде бы то, что нужно: Remote Desktop через браузер.

По факту оказалось жутко мутная технология:
— во первых, RDWEB работает только, если компьютеры в домене
— во вторых, по умолчанию RDWEB даёт доступ к приложению, но не к Desktop. Вроде бы можно как-то сделать, чтобы можно и весь Desktop, но я не осилил
— в третьих, там какое-то хитрое лицензирование. Вот обычный RDP у меня работает, а как поставил RDWEB, то постоянно выскакивает pop-up, что какой-то лицензии не хватает.
— в четвёртых, в RDWEB надо генерировать сертификаты, настраивать чтобы они были общими у брокера и системы, а потом чтобы им доверял браузер…

В общем, зачем делать просто, если можно сложно?
потому что это технология для крупной компании, у которой есть домен. Если у вас домен и много сервисов — то у вас скорее всего есть и центр сертификации уже, все коннекты к разным серверам RDP и приложениям через одну точку входа по HTTPS — это уже благо, а не проклятие.

Крупной компании тоже непонятны бенефиты. У кого есть деньги — заказывают vmware horizon. Или полноценные vdi

Да ну, бенефит вполне себе осязаемый — строить виртуальные рабочие места, позволяющие сотрудникам работать с любого тонкого клиента, на имеющейся инфраструктуре, не тратя ресурсы на интеграцию и поддержку сторонних решений вроде того же vmware horizon
А почему бы не использовать для этого Remote Desktop Gateway? Наружу публикуется 443 порт, весь трафик шифруется. На клиентской стороне требуются минимальные настройки.
Не знаю как на счет шифруется, но мегафон 100% встраивает рекламу в сайты на https. На пикабу не раз встречал возмущения и не понимания. + 1 раз сталкивался сам, когда случайно включил инет на мегафоновской симке и зашел на сайт знакомого, где баннеров быть не может априори и редирект с http на https я лично ему делал.
Если я правильно понимаю как работает https, то либо мегафон подменил сертификаты и прикидывается сайтом (что крайне маловероятно, ибо это уже ни в какие ворота, да и раскрывается на раз-два), либо сайт не полностью на https, то есть используются и plain-http соединиения, допустим, для подтягивания статики или ещё чего с cdn.
что крайне маловероятно

К сожалению я не сообразил сразу открыть информацию о сайте, когда одумался уже было «поздно». Мне кажется что именно так и было.

От простого. У вас по любому стоит роутер. 1.1. Заменить его на такой, который имеет "взрослый" файрвол. 1.2. Поставить pfsense, opensense и прочие. 2. В инете найти решение по запросу "fail2ban %имя роутера% rdp".
Естественно сложные пароли и не стандартные имена (для сервера в рдп в чистом виде в инет делаю логин user-ext-buh-ivanova.mi) и естественно автоблокировка пользователя.
По поводу "администратор", учетка легко отключается и пусть долбятся в удовольствие.
Для тех у кого денежки по больше делаю пакеты удалённого доступа. Запускаешь, вводишь логин пароль, приложение распаковывает портитивный опенвпн с конфигом и сертификатом самоподписанным и в путь. Без приложения уже ни чего не сделать. Делал подобное решение с l2tp/ipsec, но проблемнее чем openvpn.
А так статья ни о чем. Завтра будет 0day уязвимость в рдп и приплыли, сразу.

даже 5значку выискивают. Но мне кажется, в моем случае порт спалился от бывшего пользователя. IP которые долбили меня (кстати по очень похожим логинам) были не Российские. Даже если и спалят в России, долбить оттуда точно не будут-палевно. И кстати по встроенному администратору- грамотные долбильщики долбят по SID логина… тут то он у всех одинаковый. Так вот, проблема решилась… ну год то точно, создание белого списка IP на зухеле. Да, это был труд и по каждому случаю по RIPEstat пробивается подсеть и вносится в белый список.
создание белого списка IP на зухеле

А что все ваши пользователи дома или в дороге имеют 100% белый IP да еще и статику?
нет, но за 2 года оказалось, что кол-во подсетей достаточно конечно, чтобы фильтровать таким образом. Повторю, ломать будут из-за бугра.
Тут есть проблема. Удаленка таким образом — некая вольность и не привязанность как к физическому нахождению на месте, так и временному (когда зачтется или приспичит). У меня уже была жизненная ситуация когда ответственный сотрудник вдруг уехал в отпуск за три девять земель и часовые пояса были сильно разные… и вот потребовалось (потребовалось руководителю, а поработать надо было сотруднице) ей поработать, у нее хорошо, утро во всю (ночью она выключала телефон, а с утра включила), а у меня глубокая ночь… и как бы я его не выключал, а руководство знало где я живет и просто приехали ночью с требованием организовать мадаме удаленное рабочее место. С того момента только готовые комплекты с vpn и иже с ними за отдельную плату или сразу предупреждаю что взломают к гадалке не ходи и пиши пропало.

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

В каком процентном соотношении? Причем тут украина, она что вдруг незабугорное государство?
это насколько нужно доверять мелкософту чтобы выставлять их службы голыми наружу…
безопасность надо строить слоями как сельд под шубой, обязательно нужен и ВПН с авторизацией по файлу-ключу и белым листом ИПшек, и RDP, и логгинг+мониторинг.
> и ВПН с авторизацией по файлу-ключу

И пользователи с квалификацией не ниже CCNA, как минимум
какой-нить бухгалтер или эникейщик при нем легко настроит openVPN, надо лишь постараться один раз и написать инструкцию и приложить дистр openVPN — это из реального опыта
У меня 13летний вчера «настраивал» openVPN, я ему просто ссылку на дистриб скинул и файлы (конфиг и сертификаты) которые надо в папку config скинуть. Ничего — справился.
Спасибо за список, обновлю ssh server immediate block.

Нужно первым делом ставить ловушки…
+нестандартный порт


Как то: кто-то ломится на 3389 — моментальный пожизненный бан айпишника.

Эдак у вас от дырявых роутеров на динамических IP через месяц набор правил так разрастется что фаервол крякнет

Тут оно как, тут оно НЕТ. Я не теоретик, ничего не крякает. Кроме того я практикую правилами вносить сразу подсеть…
Да, за год список будет в пару тройку тыщ.
Но и микротики нельзя покупать по дну рынка "домашние".

Так же обслуживают малый и средний бизнес. Пользуюсь Микротик и на нем настроен fail 2 Ban или ставлю rdpguard

если людей не много на удаленке то можно просто создать acl внеся их айпи, на винде куча приложений типа дакднс, ноу айпи которые позволяют достаточно просто получить динамический днс, адрес которого к примеру можно прописать в микротик. Микротик определять днс в ацл уже давно научился, ну а дальше разграничить все по этим айпи. Но как писали уже тут — вариант с самораспаковкой опенвпн тоже весьма жив и успешен, да что уж там, любой иной вариант кроме вашего, кажется, будет более безопасен ))))

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

Если у вас везде Microsoft, то кто мешает использовать всё, что уже купили из коробки? Коробочный SSTP, DirectAccess?
Нет конечно в своем велосипеде есть прелесть, но.
Ещё делают иногда двухфакторку, наружу стоит rdgw с одними эккаунтами для входа, а дальше RDP сессия с другими. Сложнее для людей, но и для взлома тоже.
Документация говорит что и со смарт-картами работает, так зачем тогда рисковать?

Чуть выше оставлял линк на софтину, она прям написана по мотивам этой статьи :) Прога простая как топор, ничего лишнего, по дефолту настроена: неверный лог/пас — софтбан по ip на 10 минут, 3 софтбана = хардбан на пожизненно. Реализована через те же черные списки в правилах брандмаура.
Смущает, что та софтина — закрытая. Как-то неохота связываться с котом в мешке. Был бы это PowerShell или Open Source…
А винда тебя не смущает? :)
Были случаи, когда Windows не видела ip, т.е. просто пустота во входящем подключении, соответственно ничего не банилось, на роутере бан отрабатывает нормально
Существует простой способ отсеять любителей подбора паролей без использования fail2ban.

Суть способа заключается в переносе защищаемых сервисов на какие-либо случайные порты, не входящие в перечень широко известных портов быстрого сканирования Nmap'а (флаг -F). После этого задача сводится к блокированию любителей сканировать порты.

В свою очередь, блокирование любителей сканировать порты может быть реализовано, например, с помощью МСЭ, который умеет вести динамические списки IP-адресов, фильтровать по этим спискам и вносить в них IP-адреса из правил фильтрации на определённое время. Последнее критически важно, потому что без ограничения по времени способ будет работать только до исчерпания памяти МСЭ.

Способ блокирования сканирующих заключается в занесении IP-адресов, с которых выполнялись обращения к широко известным портам к адресам защищаемых МСЭ сетей, в специальный динамический список адресов с последующим блокированием любого трафика со всех адресов из этого списка на определённое длительное время. Выполняется это с помощью двух правил. Первое правило располагается предпоследним в списке правил фильтрации перед правилами по умолчанию и вносит IP-адреса всех, попытавшихся обратиться к портам из списка широко известных портов, в динамический список адресов, например, на неделю. Второе правило располагается непосредственно перед блоком правил, разрешающих соединения извне с защищаемыми сервисами, заранее перенесёнными на случайные порты, и блокирует любой трафик с IP-адресов из вышеупомянутого динамического списка.

С целью снижения объёма памяти, расходуемой МСЭ на динамический список, его можно разделить на два. Первый список использовать для запоминания IP-адреса после первой попытки сканирования, второй — для всех последующих попыток. Первую попытку запоминать, скажем, на 30 минут, а вторую — уже на неделю. Отличить вторую и последующие попытки сканирования от первой можно по наличию IP-адреса в первом списке. Блокировать, естественно, следует только тех, чьи IP-адреса попали уже во второй список.

Описанный способ был успешно реализован мной с помощью маршрутизатора фирмы Микротик.
Что такое «МСЭ»? Межсетевой экран? По простому Firewall?

Есть статистика: насколько успешно блокировались попытки доступа? Много было блокированных IP?

Могу по своему опыту сказать, что на ханипоте по портам 80, 443, 3389 таких за сутки набирается около сотни для нераспиаренного IP-адреса.

Что такое «МСЭ»? Межсетевой экран?

Совершенно верно.

По простому Firewall?

Да. Просто лень лишний раз раскладку переключать.

Есть статистика: насколько успешно блокировались попытки доступа?

Успешно настолько, что секция от fail2ban'а просто пропала из отчёта logwatch.

Много было блокированных IP?

Прямо сейчас забаненых на неделю на одной площадке 3673, на другой — 6219. Бан происходит сразу же при попытке обращения к портам 21-23, 80, 443, 1900, 3389, 4899, 8728, 8729, 8291, 81, 135-138, 445, 5900-5999, 8080, 8081/tcp и 123, 135-137, 514/udp
Банить тех, кто nmapom пользуется можно, но гораздо больше в бан попадает, если ловить тех, кто по 3389, например, стучится, а ещё лучше и тех и других банить)
Есть ли смысл изменять имя пользователя тоже на какое-либо сложное, как пароль? Например, если имя пользователя стандартное (ВАСЯ) — есть шанс, также, что перебором можно узнать, что есть такой пользователь, осталось только брутфорсить пароли
Имею свой опыт эксплуатации открытого RDP более 10 лет, в т.ч. на статическом выделенном IP, разумеется не на стандартном порту. Схема конечно имеет право на жизнь при некоторых «но»:
1) соблюдение всех максимальных рекомендаций по настройке безопасности от MS (NLA, политика паролей и т.п.);
2) обязательное регулярное обновление ОС;
3) вдумчивое задание имён пользователей;
4) эпизодическая смена порта.
Но если ещё года 2 назад проблема брутфорса не сильно напрягала: попыток было не много, но в последний год стало совсем невыносимо: по логам чётко видно участившиеся попытки подбора. В принципе чёрт бы с этими попытками, простые фильтры по событию и обновлению правил файрвола отсекают это быстро и относительно эффективно. Но в последнее время атаки идут как правило или на пределе пропускной способности Вашей сети (очень много источников, крайне грамотно разнесены от типовых фильтров) или «интеллектуально» (опять же фильтры не срабатывают, хотя по логам видно атаку). При этом возникают следующие проблемы:
1) блокировка некоторых «популярных» учёток от числа попыток подбора — очень непредсказуемая вещь, и как правило возникает в момент когда нет возможности оперативно её снять (закон «подлости» в действии);
2) как правило так выставляют сервер в сетях уровня «домашняя» с роутерами бытового класса, которые тупо падают от некоторых атак;
3) следствие 2го — падаёт скорость доступа в\из интернета для «своих», не у всех каналы 10 мбит+;
4) мобильные сотрудники — это отдельная головная боль, особенно если перемещаются по миру, в т.ч. касается администраторов в отпуске;
Это что лежит на поверхности. Лично в начале этого года загнал все свои сервера за VPN, ибо постоянно мониторить весь этот бардак нет у же ни желания ни времени. И смысла оставлять сервер с голым RDP не вижу больше смысла: дополнительная задержка от VPN канала в пределах статистической погрешности для типового доступа по RDP. А где нет нормального интернета на выезде (например Китай и т.п.) — там и прямой доступ к RDP собственно «никакой». Так что лично за закрытие RDP от внешнего мира за какой либо VPN, так спокойнее и «тише» ))
Port knocking решает все эти проблемы достаточно надёжно. На линуксе и микротике это простой скрипт, который добавляет адрес в разрешённый адрес-лист.

Но вообще держать RDP в интернет всё-таки не очень надёжно, в протоколе время от времени находятся уязвимости.
Mikrotik и Bruteforce login prevention — цена вопроса 1000 рублей.
Работает стабильно, всех брутфорсеров банит начисто.
Один из Windows Server у меня — в Azure. Микротиков там не водится… Даже за 1000.

А как вариант — возможно.
А как Линукс шлюз может помочь фильтровать RDP траффик?
Точно так же, как и Микротик, только с помощью fail2ban и iptables

Для блокировки неудачных авторизаций по IP-адресу есть утилита https://github.com/digitalruby/ipban
Есть поддержка RDP, MS Sql. Возможно ещё что-то добавили.

Спасибо Вам, топикстартеру, и человеку посоветовавшему Cyberarms. Всё в духе Хабра, когда комменты не менее интересны чем сама статья.
Поддерживаю. Сам использую ipban более 5 лет на вин серверах c RDP.
Софт надежен, ни 1 сбоя. Парсит евентог и создает правила на штатном файрволе.
Статистику отправляет posh скрипт. Минимум используемых системных ресурсов.
После ввода в эксплуатацию ip bana, попытки подбора с нескольких (десятков) тысяч в неделю упали до сотни.

А поясните, плиз, чем торчащий наружу VPN безопаснее RDP, при условии, что для авторизации также будет использоваться только логин/пароль? Какая разница, что брутфорсить?


PS. Про уязвимость RDP выше в комментах прочитал, но ведь в VPN тоже могут быть какие-либо уязвимости?

VPN можно по сертификату настроить. В любом случае, 2-факторная авторизация получится (VPN + RDP).
Дополню, что подключившийся по VPN может и должен попадать в отдельную подсеть из которой может подключаться только к определенным внутренним ресурсам по конкретным портам. Для каждого такого впнщика индивидуальные настройки. Это усложняет атаку, и дает время СБ и админам отреагировать.
Ага, спасибо, это отвечает на мой предыдущий коммент. То есть правильо я понимаю, что подключение к VPN можно настроить таким образом, что подключившись по нему, я вхожу в локальную сеть, где могу подключиться к рабочей станции по RDP, однако никакие другие ресурсы этой локальной сети мне будут недоступны? А как это решается, на уровне разрешенных портов и протоколов?
Именно так. Решается как тебе удобно. От того что у тебя сервер vpn вообще будет на сервере этом установлен, до того что на нем так же будет стоять клиент. Либо вообще будет маршрутизация и жесткие правила файрвола внутреннего. Единственный вопрос что будет в RDP и как рулить трафиком который потенциально может возникнуть исполняя приложение клиента на сервере. Конечно вполне себе сделать так чтобы не было возможности попасть туда чему-то лишнему что может сгенерировать этот трафик, но все же…
Так залогинившись по VPN я уже попадаю в локальную сеть, разве нет? И могу снифить трафик (наверное), искать незапароленные сетевые папки и использовать весь прочий инструментарий. Так что второй пароль от RDP мне уже без надобности.
Если из подсетей, выдаваемых VPN, фаервол пускает в локалку (или только к серверу терминалов) только на 3389 порт то нет.
Вообще все зависит от задачи. Если RDP пользует три калеки, которые могут и без RDP письмо с шифровальщиком открыть то лишние костыли ни к чему. Лучше потратить эти силы на бэкапы.

Примерно та же история и у меня есть. Хоть и удалось большинство увести на vpn, но есть и rdp dnat.Так вот fail2ban отлично мониторит неудачные попытки и блокирует доступ на уровне iptables+ipset.
Но при условии что есть промежуточное звено в виде Linux роутера с fail2ban.

Ты забыл про эксплойты RDP. Открытый RDP очень сильно увеличивает периметр атаки.
Не знаю, что сложно в использовании VPN. Ни разу ни с одним пользователем не было проблем, в обучении и использовании VPN соединения.
Это оооочень плохая, даже отвратительная практика выставлять RDP в паблик. Ошибка примерно того же уровня что и использование пароля 12345678.
Совершенно с Вами согласен. Я очень извиняюсь за резкость, но выставлять RDP финансового (!) сервера наружу и хвастаться этим на хабре я бы не стал. А часть комментаторов так вообще fail2ban/ipban советуют, которые только против брута хороши, а про эксплойты/уязвимости RDP (которых было не один и не два как на уровне протокола, так и в мс-овской имплементации) и думать забыли. Куда катится хабр…

Opnsense в помощь. И офис спит спокойно. И vpn без проблем поднимается всех видов. Все под контролем и все под контролем. А правилами рули потом как хочешь.

OpnSense штука хорошая.Но требует фундаментальных знаний и базиса. Тут с «наскока» разобраться не получиться.
А чем он лучше pfsense? Или всё дело в Netgate?
PS Я не издёвки ради спрашиваю.
Это форк pfsense c блекджеком и распутницами.
А если серьезно, то более динамически развивающийся продукт, спроси у гугла pfsense vs opnsense.
Ну и тут тоже, такая история еще некрасивая, из вики:
«В ноябре 2017 года, Всемирная организация интеллектуальной собственности обнаружила, что компания Netgate, владелец авторских прав pfSense, недобросовестно использовала домен opnsense.com для дискредитации OPNsense, и обязала Netgate передать домен Deciso. Netgate попыталась вызвать предложение о справедливом использовании, и заявила, что доменное имя было использовано «для пародийного веб-сайта». Заявление был отклонено на том основании, что свобода слова не распространяется на регистрацию доменных имён.»

https://suse.me/apps/fail2ban
Я в своё время мучился тоже этим вопросом, особенно после того как позвонила с утра бухгалтер и сказала, что её учетка заблокирована, да стоит блокировка после 5 неправильных волов пароля, так воспользовался этими простыми и бесплатными программами

fail2ban на Windows не работает и RDP протокол не понимает

По ссылки которую оставил есть приложения которые встают на windows и спокойно работают
Хотя бы ipban тот же

Это такой хитрый план: дать ссылку на программу, которая не работает на Windows, чтобы на том мутном сайте найти описание другой программы, которая работает?
Cyberarms отлично справляется с баном назойливых сканеров — уже пару лет защищает две машины смотрящие RDP наружу.
Для блокировки создаёт правила на виндовом файерволе.
Отправляет IP в Soft Lock или Hard Lock.
Количество неудачных попыток авторизации и время блокировки настраивается для каждого типа блокировки. Бесплатна.
Подтверждаю, Cyberarms работает. Тут одним ребятам с утра установил, и уже вот:
image
Столкнулся с этим на домашнем компе, причем случайно, когда решил настроить отправку уведомлений о попытках логина в телегам, и вдруг получил тонну спама в чате. Глянул логи в эвент-менеджере, схватился за голову. Это при том что порт нестандартный и менял регулярно.
Настроил на роутере простейший port knocking: стучишься со своего айпишника по порту 1234 (например), роутер для тебя открывает порт 3389 на минуту, за минуту как раз успеваешь подключиться, роутер потом порт закрывает, но активное соединение уже не рвет.
На клиенте просто создал два ярлыка для rdp — первый с портом 1234, сначала запускаю его, потом через 5 секунд основной.
Все подозрительные коннекты сразу пропали.
проще тогда уже сделать батник с пингом перед подключением
ping-и ходят через протокол ICMP, а не TCP, на tcp-порт не постучишься, тогда уж нужен nmap или netcat. Собственно, так у меня и сделано на другом клиенте :)
Хотя, можно настроить роутер чтобы и по пингу порт открывался, но так мне кажется больше вероятность что кто-нибудь доберется.
Тогда уже проще вот так:

http://rdp-server:1234/knock-knock


Хотя сам я port knocking ещё не пробовал

можно менять длину icmp пакета (и проверять на роутере), как альтернативу последовательности tcp портов для кнокинга

Так если пользователя Administrator нельзя удалить, то что же делать? Его можно переименовать!

Нельзя удалить! Но значит — можно заблокировать!


Касательно ограничения доступа по VPN — все просто. В самом RDP сервере может быть 0day уязвимость. На уровне протокола. Или переполнение буфера. Т.е. возможно, что чтобы получить админский доступ — даже пароля знать не надо. И приплыли

Есть такая вещь — Citrix netscaler. Её недавно переименовали в Citrix Gateway / ADC. Она сложная, дорогая и многофункциональная. А самое то, что интересует — делает безклиекнтский VPN доступ к RDP (одна из тонны функций). И главное — на 5 подключений — бесплатно…
В итоге снаружи HTTPS порт и сканируйте сколько угодно…

Теме 100 тысяч лет, зачем изобретать велосипед и ещё и так… коряво и попутно плевать даже на рекомендации самих Microsoft?


Administrator блокируется по дефолту (ну или заблокируйте сами).
Для администрирования создаются другие административные пользователи с нетривиальными именами.
Openvpn на udp и по сертификатам + пароль (если у пользователя угнали сам сертификат) и официальный пакет, который его поставит. Можно даже собрать автоустановщик с конфигурационным файлом с сертификатом для каждого пользователя.

Administrator блокируется по дефолту


Вроде бы не блокируется
Искал в свое время тулзу под это дело и после долгих поисков нашел-таки: terminalserviceplus.com до того как вырасти в какое-то монструозное платное приложение выпускал бесплатный RDP Defender, в сети есть 2.4 вроде как последняя. Юзаем, полет нормальный. image
З.Ы. Имейте в виду, при неудачных попытках блочит не только RDP, но вообще весь траф от узла.
Я поставил IPBan на один из своих серверов.
Количество неуспешных логинов радикально упало.
Я добавил в статью скриншот и логи этих результатов.
Спасибо. А вот Windows 7 уже нет в списке…
Получается, что в Windows 7 уязвимость осталось открытой? Или в Win 7 её и не было?
Поддержка Windows 7 уже прекращена. В связи с этим, полагаю, у Микрософта нет совершенно никаких обязательств в плане оповещения клиентов об уязвимостях в этой операционной системе.

Удалить встроенного администратора в Windows можно

делается это парой действий в реестре на любой версии Windows выше 2000

Удалите в реестре Компьютер\HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\000001F4

и

Компьютер\HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names\Administrator

и пользователь исчезнет

У меня есть HKEY_LOCAL_MACHINE\SAM\SAM\

Но в нём нету Domains

Я отключил Administrator'a вот так:

  • Запускаем lusrmgr.msc 

  • Users -> right-click on Administrator -> Properties

  • General -> check "Account is disabled"

Only those users with full accounts are able to leave comments. Log in, please.

Articles