Как стать автором
Обновить

Удаленная работа в офисе. RDP, Port Knocking, Mikrotik: просто и безопасно

Время на прочтение7 мин
Количество просмотров60K
Всего голосов 18: ↑14 и ↓4+10
Комментарии127

Комментарии 127

А не проще один UDP 1194 открыть и всё через него?
НЛО прилетело и опубликовало эту надпись здесь

Так через vpn пойдет весь трафик, а нужен только рдп.

НЛО прилетело и опубликовало эту надпись здесь

Сложно проследить сделают ли все пользователи это. В любом случае получается придется писать батник.
И что делать когда в сети не только win, а так же mac os, ios, android.

Выдавать маршруты локальным клиентам к ресурсами в удаленной сети по dhcp (option 121,249), напр.
НЛО прилетело и опубликовало эту надпись здесь

Но в итоге получается легче как в статье описанно.

Вы openvpn имеете ввиду? Микротик нормально не стягивает по опенвпн, особенно если много подключений. Раньше я так и делал — ставил отдельно на виртуальной машине openvpn сервер, но у одной организации такой возможности не было, а было много стационарных ПК и пользователей с разным опытом работы, и чтобы упростить себе задачу попробовал метод описанный в статье и был очень удивлен, что почти не было вопросов и все ~30чел без каких либо проблем подключились и успешно работали. Поэтому и написал пост.

Микротик умеет отлично pptp, l2tp, ipsec, настраивается всё в несколько тыков. Зачем openvpn?

1194 порт — человек вроде про openvpn спрашивал. Микротик — отличная вещь не спорю, но pptp, l2tp, ipsec — будет больше вопросов по подключению, как пользоваться и как шлюзы на клиенте настраивать и прочее. Вариант в посте мне очень по душе пришелся — скинул людям файлы подключения, короткую инструкцию и в ответ — тишина, только вижу, что подключаются и тихо работают.

скинул людям файлы подключения, короткую инструкцию

Как по мне, лучше уж PPTP/L2TP и перенос PBK-файла, можно через батник, чтобы по клику всё настраивалось.
Описанное в статье, конечно, интересно, но, ИМХО, выглядит как велосипед.

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

Считаю, что вы совершенно правы, не стоит домашние компы в сеть пускать.
А насколько безопасным вы считаете подключение по RDP через RD-Gateway с аутентификацией на Радиусе? Насколько я помню, там RDP поверх HTTP бегает.
там RDP поверх HTTP бегает

Насколько помню поверх https. Там шифрованный трафик — это относительно безопасно — приблизительно на одном уровне с VPN связью, но как и VPN иногда всплывают уязвимости к некоторым атакам. Для пущей надежности можно вместе с Port Knocking использовать, но как по мне — то теряется тогда простота из-за появления дополнительной промежуточной точки отказа — RD Gateway, хотя безопасность немного выше, хотя задержки тоже на 1-2мс растут .

Да, вы правы, разуммется, поверх https. Спасибо за ваше мнение.
НЛО прилетело и опубликовало эту надпись здесь

Текущая практика служб информационной безопасности в средних и крупных компания заключается в том, чтобы разрешать вход в корп сеть через VPN только с доверенных устройств. Например, корпоративных ноутбуков, которые могут быть не у всех сотрудников. Подключение домашнего ПК — это дыра, кто знает что на нем сидит и в какие ещё сети торчит.


Касательно SIP чем не устраивает проброс аудио и видео в RDP сессии с офисного ПК? Если там софтфон, а не аппарат, то проблем на первый взгляд не вижу. Но VoIP не мой конёк. Поделитесь

НЛО прилетело и опубликовало эту надпись здесь
Скажем так — на сети для офисных ПК в нормальной организации правила навешены. Как и на остальные сети. МСЭ тут без разницы, физически вы за компом сидите или через VPN. А вот дырки во вне в случае с VPN потенциально появляются, причем пропорционально числу сотрудников. И если они из дома сидят это еще пол беды. А если из общественных сетей?
НЛО прилетело и опубликовало эту надпись здесь
Только на домашнем ПК уже может сидеть зараза, а ноутбук не понятно в каких wifi сетях бывает.

Модели угроз на гипотетических «если» и строятся.

Для VPN нужен один порт. Для предложенного автором в статье варианта — два. Разница не драматическая.
Ваш вариант имеет право на жизнь для RDP. А что если нужен SIP? SIP сервер находится в локальной сети и внешего IP не имеет. Попробуйте в случае SIP настроить через проброс. Вот в этих случаях и выручает L2TP, PPTP. Подключился к шлюзу по VPN на котором уже включен SIP ALG и проблема решена. Не приходится лишний раз заморачиваться с настройкой сервера и доп. опциями типо NAT aware, не приходится думать и гадать: «а на всех ли железках по пути следования пакетов от дома работника до сервера будет включен SIP ALG?» Если возможность есть, то лучше использовать VPN, тем более на микротике для этого есть все, как минимум в случае L2TP и PPTP.

В той компании где первоначально я настроил через Port Knocking там стоят мощные стационарные ПК для работы с CAD/CAM приложениями, с кучей специфичных настроек и настроенной инфраструктурой. Задача была массово настроить каждому пользователю доступ к его ПК, что было успешно сделано за короткое время. А для SIP и некоторых других специфичных задач либо для ноутов — однозначно L2TP, PPTP, IPSEC.

Затем, что во вне может быть открыт только 80\TCP и 443\TCP. И перевесив OVPN-сервер на эти порты можно решить эту проблему. А если прикрутить обфускацию овпн — получится оч вкусно v2ray.com/en/index.html, pluggabletransports.info/implement/openvpn/
Повторить что-то подобное с pptp, l2tp, ipsec у вас не получится.
Учитывая, что человек на входе в сеть настраивает стук по портам, мне кажется, ему прав хватит и остальное разрешить.
Опенвпн не надо поднимать на микротике. Поднимайте его прямо на сервере терминалов или рабочей станции(без маршрутизации и маскарада, просто туннель от хоста до хоста с пробросом порта на роутере).
Если сложно то поднимайте wireguard, там даже мартышка осилит.

Во второй компании, где вариант с port knocking реализовал, так и было до этого. Но попросили вариант попроще для RDP, я им настроил, скинул файлы и пока (3 дня) там все (~10 чел.) довольны.

Две картинки — интересно, только кто обещал, что они откроются строго в нужном вам порядке. 20 байт текста — не задержка, браузеру на это плевать.

я тоже за это переживал, но пока ~30 человек и вторую неделю — полет нормальный. Но для 100% уверенности можно через PowerShell.

НЛО прилетело и опубликовало эту надпись здесь
Добрый день, попытался настроить фильтрацию в RAW:
/ip firewall raw
add action=drop chain=prerouting comment=«drop black list connections» \
in-interface-list=WAN src-address-list=blacklist

и сразу же пропадает интернет из локалки наружу, при этом с этим же листом но с фильтрацией в filter
/ip firewall filter
add action=drop chain=input comment=«drop black list connections» \
connection-state="" in-interface-list=WAN src-address-list=blacklist

все работает нормально. Не подскажете куда копать?
НЛО прилетело и опубликовало эту надпись здесь
соответственно 1.htm содержит следующий код:

Не рекламы ради, но упрощения для — knock-клиенты.

НЛО прилетело и опубликовало эту надпись здесь
!/usr/bin/pwsh


mstsc

Здесь я завис. О какой ОС идет речь?

С некоторых пор PowerShell есть и на Linux.
КО в курсе.
mstsc тоже с некоторых пор завезли?
НЛО прилетело и опубликовало эту надпись здесь
Paranoic mode=off
Без сарказма, а может мне кто-нибудь объяснить почему держать отрытым для интернета порт RDP очень небезопасно? В актуальных версиях протокола. И да, я гуглил.

А вот откройте и посмотрите, что будет в журнале безопасности Windows. Даже если отбросить возможные уязвимости самого протокола, Вы уверены, что у пользователей надёжные пароли?

Да, я уверен в паролях. Журналы много раз видел. Да, пугают, но в них видно исключительно тупой перебор. С таким же успехом можно брутить пароль от ВПНа, если для авторизации используется пароль.
Меня интересует именно уязвимость протокола/сервиса извне…
На прошлой неделе клиент решил сам перейти на удаленную работу сотрудников. В пятницу пробросили 3389 наружу. В субботу получили шифровальщик на сервере.
Если не секрет, можете дать настройки РДП сервера и политику паролей? Версия системы? Список патчей?
Многие пренебрегают обновлениями в угоду спокойствия пользователей — это когда стоит ломаный сервер и ему отключают обновления, чтоб активация не слетала и не появлялась надпись неактивированной системы. 100500 раз такое видел. И на вопрос — Почему? Стабильно отвечают — Чтоб пользователей не бесило…
Тут еще конечно важный момент, что клиент решил сам… Таких тоже много повидал!
можете дать настройки РДП сервера

там особых настроек нет, была поставлена задача дать доступ каждому пользователю к стационарному ПК (Windows 10 с обновлениями) и отключал галочку "Разрешить… проверкой подлинности на уровне сети". Политика паролей — обыкновенная для доменов верхний, нижний регистр и цифры. На каждый ПК доступ только конкретному пользователю. Если терминальный сервер, то 2016 или 2019 с последними обновлениями и иногда там из-за соображений безопасности на роутере отключен интернет. Лучше чтобы версия протокола RDP была 10 — она шустрее и с аппаратным 3D. Обновления нужно ставить -там и антивирусная защита и прочее, но это должно контролироваться и быть запланированно, чтобы сюрпризов не было, и желательно ставить версии Windows для организаций, там совсем другой принцип обновления.


что клиент решил сам

таким объяснять нужно и рассказывать, что будет если сделать как он говорит. Часто начальники говорят "мне нужно доступ ко всему" — надо немножко их приземлять — что будет если случайно мышкой не туда клацнет или удалит случайно папку с целым проектом или за его ноут ребенок сядет.


Стабильно отвечают — Чтоб пользователей не бесило…

Ну так и правильно отвечают — просто настроить надо все правильно и ожидаемо.


когда стоит ломаный сервер

Лицензии нужно покупать (хотя бы на ebay :) ) — просто у нас так не принято — но потом могут больше потерять — это ведь обновления и в свою очередь безопасность всех данных!

Вы уж меня извините за критику, но объективно:
1.там особых настроек нет – минус безопасности
2.отключал галочку «Разрешить… проверкой подлинности на уровне сети» – огромный минус безопасности
3.Политика паролей — обыкновенная для доменов верхний, нижний регистр и цифры – тут я не знаю длину, но нет спец символов и поэтому ±
4.сервер 2016 или 2019 с последними обновлениями и т.д. – нивелируется первыми тремя пунктами
5.Лучше, чтобы версия протокола RDP была 10 – упор должен быть не в плюшки, а в безопасность. (в контексте текущей беседы)
Цитаты не ставил, вроде и так понятно. У меня только один вопрос – ну как так? Проигнорированы все принципы безопасности!
— нужно и рассказывать, что будет если сделать как он говорит. — «мне нужно доступ ко всему» – пожалуйста! Придумайте себе пароль согласно принятой практике, а лучше заведите токен для авторизации! И пользуйтесь на здоровье всем, чем нужно!
— случайно мышкой не туда клацнет или удалит случайно папку – это к безопасности РДП не относится
— Лицензии нужно покупать (хотя бы на ebay :) ) – это не избавит Вас от контролирующих органов. Органам нужна бумажка/наклейка;) Это к вопросу о принятости этой практики у нас.

1,2,3 — перед этим port knocking стоит и до каких либо минусов безопасности атака не дойдет.
2 пункт — отвечает за простоту подключения — клиент может и с андроида подключится или Win XP
3 политика паролей по умолчанию установлена MS, и отвечает средним критериям безопасности.
5 Дело не в плюшках, а в полноценной работе с CAD/CAM программами.


«мне нужно доступ ко всему» – пожалуйста!

Вы серьезно? Такой подход и создает больше всего проблем в безопасности! Ведь в 99% случаев такой доступ получит малоквалифицированный пользователь и в случае если он из-за неосторожности, неопытности подцепит трояна -то всё накроется, и никакие обновления, защиты не спасут. Потому что всем нужно выставлять только необходимый доступ к ресурсам, и тогда если конечный ПК или пользователь будет скомпрометирован, то вероятность развития атаки на всю инфраструктуру будет на пару порядков меньше.


это не избавит Вас от контролирующих органов

это не вопрос ИБ, "лицензия (хотя бы на ebay :) )" позволит полноценно получать обновления безопасности и в случае желания руководства стать "белым и пушистым" — вам не нужно будет переустанавливать и перенастраивать инфраструктуру.

Видимо до кучи антивируса нет. И не включен AppLocker который по сути не дает рядовому юзеру запустить что-то вредоносное.
А если перебор активизируется заметно? Что произойдет при 3-5 неудачных попытках залогиниться с реальной учетной записью?

Всем известно, что через X неудачных попыток входа винда блокирует учетку на Y минут. Переменные можно настроить в политике. Но ведь и имя пользователя еще подобрать надо… А если учетка доменная, то и имя домена…
Ну мало кто делает имя домена по шаблонам генерации паролей… кстати что будет если будут попытки неудачно авторизоваться с именами типа local service и т.п.? )
Ну мало кто делает имя домена по шаблонам генерации паролей…

Простите, что?)))
Маловато доменов класса Qmp~tTq?~$1~rqm~4sh%E|}|fgh{f?fDPN2B.rgneJVL71saQCv{~?VWfFZi0@asz6u*f@5%3.local я бы сказал что меньше чем contoso.com
я думаю, что mp~tTq?~$1~rqm~4sh%E|}|fgh{f?fDPN2B.rgneJVL71saQCv{~?VWfFZi0@asz6u*f@5%3.local — это перебор… contoso.com тоже не использую, фантазия имеется.
Вы видимо неправильно меня поняли, я имел в виду настройку безопасности которая требует ввода имени домена вместе с логином пользователя.
Да не, я понял все правильно, только вот нет ли на соседних адресах прописаного ptr с синонимичным именем, или паче на этом же адресе чанговского smtp который на всякий случай пишет в welcome много лишнего)
В общем все это скорее из серии самоуспокоения «кто жеж угадает», а по факту — вон выше чел шифровальщика словил… не исключаю что это вылезло и из паршивенького домашнего компьютера одного из пользователей через проброс дисков… Знаю и обратные случаи (когда голый rdp с admin:1 жил несколько лет, а помер от письма с шифровальщиком буху)
вылезло из паршивенького домашнего компьютера одного из пользователей через проброс дисков

Заметьте, не я это предложил!)

Можно изменить порт rdp сервера и любители переборов паролей сразу отвалятся(проверено практикой).

"сразу отвалятся" — не отвалятся просто немного позже придут.

Не приходят уже больше года. Но у меня и хост малоинтересный. Я лишь хотел заметить, что взломщики скорее всего используют проверки стандартных портов, а потом уже проводят атаки. Причем, подозреваю, что все это делают боты по заданному алгоритму. Смена порта отсеит большую их часть, соответственно снизит нагрузку на хост.

Любой толковый безопасник скажет Вам, что Security through obscurity — далеко не лучший метод защиты.

А вы уверенны, что у вас есть подключение к интернету?)
НУуу, DoS — это не потеря данных или контроля над хостом, это потеря возможности использовать сервис.
Я больше про серверную часть рассуждаю…
Нууу, сферический сервер в вакууме как бы никому не нужен.
Кроме самого сервера.
Попробуем рассудить про пользователей.
заДДоСят ваш микротик, кому он тогда нужен будет с его port knockingом? Мы вроде сейчас не об этом…
Серебряной пули нет.
В данном случае это собранные из костылей грабли на пути кулхацкеров, которые (грабли) не лишние.
Наибольший эффект при наименьших затратах.

Ну а в идеале защита должна быть многослойной.
Защиты лишней не бывает)
Давайте делить мух от котлет. Если вас заказали, то найдут дырку в софте или в человеке. Человеческий фактор, как показывает история, гораздо слабее софта.
Если вы защищаете сеть от армии ботов, то тут нет необходимости возводить 100500 слоев защиты. Боты вас не сломают ели вы будите придерживаться определенных правил, а все эти 100500 слоев только затруднит работу пользователей. И чем больше этих слоев будет, тем больше сами пользователи будут им сопротивляться. Не мне вам объяснять эту простую истину) Все мы действуем только из лучших побуждений, но зачастую страдает качество сервиса из-за того, что админ покрыл всю систему тремя слоями фаерволов + токен + смс и регистрация.
Надеюсь вы понимаете о чём я.
Снова — всё зависит от задачи.
— У кого-то куча эдвансед-юзеров катаются по всему миру. Этим можно VPN.
— У кого-то куча не-эдвансед и тоже по миру — этим голый RDP наружу, но без критичных данных.
— У кого-то народ сидит по домам — этим fixed IP с небольшими вкраплениями knock-server. Просто, надежно и _допустимо_ в _данном_ случае.
Оптимум в каждом случае свой, и одну и ту же сову на разные глобусы не стоит натягивать.
Это все понятно, но я не про это!
Мой изначальный вопрос — может мне кто-нибудь объяснить почему держать отрытым для интернета порт RDP очень небезопасно?
Вот о чем я! Я надеялся понять — Есть ли реальные дыры в сервисе? Или надёжность зависит только от админа и пользователей?
Ну время от времени публикуются уязвимости. В том числе RDP и RDS/RDG
vpn решения позволяют существенно усложнить процесс их эксплуатации (то бишь разве что добыть еще не закрытые уязвимости и vpn и rdp)
Важно понимать, имеет ли уязвимость внешнее направление?
Если вас ломают через внутреннюю учетку — это одно. Если враг может завладеть внутренней учеткой извне — это совсем другое!
Ну исходно тема про внешние воздействия. Думаю взятие в заложники членов семьи сисадмина или его подкуп тут смысла развивать нет.
Паяльник прогрет, но вы правы
Никто не может гарантировать, что оно не дырявое. Никто. Даже мелкософт.
Дыры в RDP всплывают _постоянно_.

PS. просто погуглите да хотя бы на букву «уязвимости RDP».
Только не сейчас, не на ночь глядя.
гуглю регулярно,
Никто не может гарантировать, что оно не дырявое.
— (с) любого издателя. под *никс тоже.

Вы сами прекрасно знаете, что залатать дыру в OSS — дело нескольких минут.
А в закрытом софте — только молиться остается. Долго. Очень долго.

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

Что мешает так же подобрать от ВПНа? У меня пароли пользователей ± 20 символов, точно за пару недель справитесь?
Ну даже L2TP+IPSec без использования сертификатов — это в общем случае аж два пароля.
L2TP+IPSec без использования сертификатов — это в общем случае можно приравнять к расстрелу)))
Особенно без выдачи оных отделом безопасности фирмы лично в руки каждому пользователю после прохождения полиграфа и под видеозапись… или мы все-таки о фирмочке в десяток юзеров, накопившей на микротик? )))
Вообще, я про дыры в РДП изначально спрашивал)
portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2019-1181

ну и думаю не составит труда погуглить дальше «Remote Desktop Services Vulnerability» и время от времени повторять поиск и находить свежести
Лично то, что мне не нравится: нестандартный порт вполне может быть найден ботами, после чего будет огромное число неудачных попыток авторизации, что не очень приятно (загрязняет журнал системы и может вызвать замедление работы). К тому же 0-day уязвимости никто не отменял. Поэтому вариант через port knocking выглядит значительно безопаснее.
Я разделяю Ваши чувства. Из практики могу сказать, что боты ловят нестандартный порт от пары часов, до пары дней — это совершенно не повышает уровень безопасности. Вопрос больше из интереса, а правда ли РДП реально небезопасный? С учетом грамотной настройки + правильной политике паролей. Может быть небезопасный РДП — это в протоколы прошлых версий?
Из практики могу сказать, что боты ловят нестандартный порт от пары часов, до пары дней — это совершенно не повышает уровень безопасности.

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

я часто вижу атаки сайта, там атака на перебор часто идет с группы адресов и часто даже с разных подсетей — то в основном чтобы обойти — один IP один порт просканирует и ваша защита не сработает.

я часто вижу атаки сайта, там атака на перебор часто идет с группы адресов и часто даже с разных подсетей — то в основном чтобы обойти — один IP один порт просканирует и ваша защита не сработает.

Любителей сканировать порты, не входящие в список широко известных, можно банить, например, после третьей попытки подключения. У меня сделано вот так.

  • Все сервисы пересажены на случайные порты.
  • На неделю блокируется весь трафик с адресов, с которых была хотя бы одна попытка подключения к 22,25,80,81,110,143,135-139,443,445,3128,3389,8080,8081/tcp и к ещё некоторым другим широко известным портам потенциально уязвимых сервисов.
  • На неделю блокируется весь трафик после третьей попытки подключения к любому порту, по любому IP-протоколу. То есть, если адрес три раза засветился в правиле по умолчанию, которое блокирует весь неразрешённый входящий трафик из интернета, в течение установленного периода времени, то весь трафик с этого адреса тоже блокируется на неделю.
  • Адреса для блокирования автоматически вносятся в чёрный список, блокирование трафика осуществляется по этому чёрному списку.

Вначале я опасался, что чёрный список быстро исчерпает всю доступную память микротика, но он вырос примерно до 10000 адресов и на этом его рост остановился. Пока всего занято 50Мб памяти микротика и её дальнейший рост тоже остановился.

Меры были внедрены на двух площадках примерно год тому назад, попытки подбора пароля пропали полностью.

Но потенциально — методом осторожной атаки ваша защита обходится, если много одиночных сканов по портам с разных ip. Так что пока ваш метод: 1- сложнее, 2- затратнее по ресурсам(есть небольшой шанс полной остановки роутера), 3 — риск обхода защиты довольно высокий причем довольно простым методом ведь пару тысяч прокси не проблема.

Но потенциально — методом осторожной атаки ваша защита обходится, если много одиночных сканов по портам с разных ip.

Потенциально после повторного появления попыток подбора паролей сервис перевешивается на другой случайный порт, и осторожный атакующий снова идёт лесом. И так раз в год. Портов 64К штук, широко известных примерно 11К, остаётся 53К случайных. С таким количеством портов дурить голову осторожному атакующему можно до тех пор, пока он не помрёт от старости.

Так что пока ваш метод: 1- сложнее, …

Проще. Ровно на один скрипт порткнокинга. На стороне микротика всё примерно так же.

2- затратнее по ресурсам(есть небольшой шанс полной остановки роутера), …

Для этого на hEX с его 256Мб памяти надо натравить какой-то совершенно неимоверный ботнет с сотнями тысяч проксей.

3 — риск обхода защиты довольно высокий причем довольно простым методом ведь пару тысяч прокси не проблема.

Какая пара тысяч? hEX, не напрягаясь, заблокировал не пару, а десять тысяч проксей.
после повторного появления попыток подбора паролей сервис перевешивается

это если брутфорс будет, а если через уязвимость(RDP и прочее)? — То к этому моменту уже перевешивать ничего не надо будет. Но сам факт потенциальной возможности такой атаки — вы осознаете и это хорошо, так как если не хотите через Port Knocking, то возможно со временем модернизируете свой метод и потом напишете свою статью на хабре.

это если брутфорс будет, а если через уязвимость(RDP и прочее)? — То к этому моменту уже перевешивать ничего не надо будет.
Во-первых, какова вероятность этого исхода? Порт случайный, на подбор даётся три попытки с одного адреса, после чего он блокируется на неделю и подбирать с него ничего больше не получится.
Но сам факт потенциальной возможности такой атаки — вы осознаете и это хорошо, так как если не хотите через Port Knocking, то возможно со временем модернизируете свой метод и потом напишете свою статью на хабре.
В связи с практической сложностью подбора случайного номера порта, его проще определить путём анализа трафика удалённого клиента к защищаемому сервису. А при таком подходе что мой способ защиты, что port knocking совершенно равнозначны. Для преодоления моего надо узнать номер порта, для преодоления port knocking'а надо установить последовательность обращений к портам. А она всегда одна и та же, что позволяет атакующему успешно выполнить replay attack. Собственно говоря, последовательность port knocking'а тоже можно подобрать, особенно если блокирование подбиральщиков этой последовательности не предусмотрено. А оно таки принципиально не предусмотрено.

Во-вторых, защита от перебора и защита от удалённого использования уязвимостей в защищаемом сервисе — это две разные задачи. Ни port knocking, ни мой способ случайного порта и блокировки попыток его подбора от удалённого использования уязвимости на 100% не защищают. Для защиты от удалённого использования уязвимости помогает только своевременная установка исправлений безопасности и использование перед сервисом верификатора протокола и передаваемых клиентом параметров (от неизвестных 0day уязвимостей).
Во-первых, какова вероятность этого исхода?

~3/50000 — Но как всегда русское — авось пронесет, сильнее аргументов.


Во-вторых, защита от перебора и защита от удалённого использования уязвимостей в защищаемом сервисе — это две разные задачи.

Задача одна — безопасность, в случае успешной атаки — вы даже можете не узнать способ, каким это сделали.

Но как всегда русское — авось пронесет, сильнее аргументов.
Так порткнокинг — это тот же самый авось, только вид сбоку. Он точно также не спасёт от атаки, ориентированной на конкретную организацию.

порткнокинг делает ваш канал в интернет извне черной дырой — куда пропадают пакеты и понять — что там, атакующему не под силу, что снижает риски продолжения атаки практически до нуля. А ваш вариант оставляет вполне весомый (3/50000) зазор для атаки и её развития.

Настраивал коллеге RDP на домашний комп, пока она в больнице лежала. Примерно через пару месяцев, она уже сидела дома, пишет, что у нее экран заблокировался и вышло сообщение, в систему вошел другой пользователь. Посмотрел логи, а там постоянный перебор паролей шел, в основном из известных. Пароль у нее кстати был 123 вроде.
С таким паролем она так долго продержалась??)

хмм ... интересно, если бы пароль был "1", догадался бы кто-то его попробовать для перебора или нет ? :)

Объясню логику сисадмина — нафига себе лишний геморрой?
Сисадмину всегда есть чем заняться, кроме как еще сидеть сторожить открытый нараспашку сервер.
Потом сиди и думай — то ли юзер в очередной раз нахомутал что-то (а он, как обычно, «я ничего не делал»), то ли сервер пробили (потому что микрософт в очередной раз что-то про@#$%&ло), то ли у самого руки подвернулись.
А так закрыл всё наглухо — и спишь спокойно.
(хотя бы по этому вопросу)
Как сисадмин, объясню свою логику — а если Вам выдали ОДИН порт под сервис? А если сделать надо, а железа подходящего нет (стоит роутер бытового уровня на офис из 3-х человек)?
Универсального рецепта нет.
Если у вас ОДИН порт, то там и VPN не поможет.
С рутерами беда, конечно.
Мне приходится людей уламывать, чтобы они выбрасывали свои мега-зухели с пачкой антенн врастопырку и покупали какой-никакой микротик.
Ну а если нет… Наблюдал фееричную конструкцию, когда рутер в виде виртуального кентоса прячут внутри Vmware ESXi. И потом снаружи на этот ESXi заходят через этот же внутренний рутер.
Цирк, но тем не менее.
По этому я и поднял вопрос безопасности самого РДП. Возможно уже можно приучить пользователей к сложным паролям и оставить пользователям их любимый зухель. И да, я понимаю, что сам зухель может быть еще той дырой, но и микротики не без греха.
1. RDP может и безопасен, а вот Windows — нет и никогда не будет.
2. Пользователи не будут запоминать пароли. Они или поставят птицу «запомнить» или будут звонить тыжпрограммисту. И в любом случае жаловаться начальству.
Карма.
1. Но если у вас только ухо RDP торчит наружу? Причем тут win? Хорошо настроенный win очень неплох в безопасности.
2. Тренируйте пользователей, мои сами себе придумали по 20 символов… Сами запомнили и не ставят птицу. Все это за 1 день. И без звонков тыжпрограммисту на следующий день.

вообще не понимаю — даже если бедная контора, то 20$ на mikrotik сможет найти. У меня вообще по жизни такой подход — сделать и забыть. Уже много раз так было — была контора, был сисадмин, все глючило, но админ всегда всё решал — то роутер сбегал перегрузил, то wifi. Потом админ уволился, контора переехала, и обратились к моим колегам(монтажникам), чтобы сеть и wifi установить, те обратились ко мне — я сразу небольшой проект на пальцах накинул, как недорого и правильно сделать, после монтажа пришел за 1 день настроил и забыл, а контора счастлива — админа нет, ничего не глючит — даже интернет, потому как там продублирован провайдер, и зарплату горе админу платить не надо. Правда мне от такого подхода профита мало, но я уже лет 5 как профессию админа перерос, и на других темах сижу, то мне как раз важно, чтобы меня никто потом не донимал.

Жму вам руку! Честно! Побольше бы таких админов!
Но мы сейчас все же про безопасность РДП.
з.ы.
Уж извините, завел обсуждение статьи в другое русло…

я это давно придумал!!! аааа! сначала щимишься через батник допустим телнетом на 3 разных порта микрот заносит этот ip адрес в аццесс листы, паралельно работает скрипт который смотрит есть ли один и тот же ip в этих аццес листах и если есть то открывает проброс rdp для этого ip на 12 часов.
потом я усовершенствовал механизм сдклав так что если эти ip щимились на другие порты то доступ скрипт не давал. строго надо было определенных 3 порта и после этого давался rdp

тут мы идем ещё дальше, доступ для клиента открывается на 1 минуту — достаточно для подключения, но мало для атаки(а ведь нужно еще знать по какому порту). Blacklist на 60 минут, чтобы не забивать память микротика, если много сканеров в сутки будет.

Ещё есть такая штука как Microsoft Remote Desktop Gateway — наружу открывается только 443 порт. Брутфорс, конечно, возможен, но нужно подобрать имя удаленного компьютера, домен, учетку пользователя и пароль — по-моему весьма непростая задачка.

Это если есть лишний ресурс под него, там где ставил все ресурсы либо заняты, либо туда не разрешают дополнительно ставить RDG.

Вся настройка выглядит как один большой «костыль», который непременно сломается при каком-нибудь обновлении RouterOS. Это лишь вопрос времени.

за 5 лет ни одной проблемы при обновлении. К тому же обновления там в основном ставишь вручную и можно проконтролировать процес, но пока при правильной настройке микротик ни разу не подвел. Важно там придерживаться правила — обновляешь софт, обновляй и прошивку System->Routerboard->Upgrade и потом Reboot.

Что только не придумают, лишь бы дороги не строить…
Я бы добавил packet-size
add action=add-src-to-address-list address-list=allow_remote_users address-list-timeout=30m chain=input comment="icmp port knocking" in-interface-list=WAN packet-size=128 protocol=icmp
ДАлее
ping *ip_сервера* -l 100 -n 1
(помним про 28 байт заголовка)
И Вы в белом списке.
Можно усложнить и замногоуровнить
add action=add-src-to-address-list address-list=allow_remote_users address-list-timeout=30m chain=input comment="icmp port knocking" in-interface-list=WAN log=yes packet-size=128 protocol=icmp src-address-list=stage2
add action=add-src-to-address-list address-list=stage2 address-list-timeout=1m chain=input in-interface-list=WAN log=yes packet-size=128 protocol=icmp src-address-list=stage1
add action=add-src-to-address-list address-list=stage1 address-list-timeout=1m chain=inputin-interface-list=WAN log=yes packet-size=128 protocol=icmp

При желании длину пакетов можно для каждой стадии поменять.
Далее все просто — делаем *.bat (касаемо виндовых клиентов) который сначала пингует, а потом запускает RDP-клиент.
Считаю ввод проверки размера присланных пакетов безопаснее, чем просто стук на определенные порты.
Считаю ввод проверки размера присланных пакетов безопаснее, чем просто стук на определенные порты.

Отнюдь — в основном ваш метод используют(неоднакратно читал в разных источниках), так как проще из Win 10 послать ping нужного размера. И у вас открыт icmp. В документации микротика используется метод описанный в статье, но оба метода используют один и тот же принцип, поэтому насчет того, что безопаснее — не соглашусь, так как они почти равнозначны, а в вашем методе icmp открыт.

Его можно закрыть следующим правилом.
/ip firewall filter
add chain=input comment=Allow_limited_pings in-interface=ether1 limit=50/5s,2:packet protocol=icmp
add action=drop chain=input comment=Ping_Drop in-interface=ether1 protocol=icmp

Т.е. разрешить определенное количество, а далее совсем закрыть. А безопаснее, он потому что Вы сами подбираете размер байт. Этот как кодовый замок. И проще, потому что пингануть можно с любой системы, при желании даже с телефона.

"потому что Вы сами подбираете размер байт. Этот как кодовый замок. " Номер порта тоже, как и последовательность и количество, это один и тот метод с разной реализацией.

Вот интересно, много сейчас народу, не умеющему/не хотящему настроить впн. Настроят по этому мануалу? Конечно же без смены портов :)


Пройдемся через пару дней шоданом :)

А у меня такой вопрос, при создании правила dstnat порт который пробрасывается, не нужно открывать в фаерволе, значит трафик минует фаервол, так как работает защита?

фаерволом должно блокирватся всё, но dstnat обрабатывается до фаервола — поэтому в правиле dstnat разрешаем ip только из белого списка " src-address-list="allow_remote_users" — а в этот белый список можно и вручную добавлять статические ip и таким клиентам не нужен PortKnocking. А при PortKnocking эти Ip (в основном динамические) — присутствуют в белом списке 1 минуту, а потом удаляются, так мы увеличиваем безопасность и немного экономим ресурс роутера.

НЛО прилетело и опубликовало эту надпись здесь
Кто-нибудь может пояснить, почему VPN IPSec/L2TP с домашнего ПК — не вариант? Поднимаем на роутере отдельный бридж и задаём ему отдельную подсеть. Ставим блокирующее правило в цепочке forward на все пакеты с этой подсети в локальную. В L2tp secrets создаём юзеров и назначаем им адреса. Поле Routes не заполняем, чтобы клиенты не могли слать пакеты друг-другу. Выше блокирующего правила прописываем разрешающие правила для каждого клиента. Например, разрешение на подключение только по порту RDP с какого-то узла в vpn подсети к такому-то узлу в локальной сети. Чтобы исключить возможные коллизии с домашними сетями пользователей, выбираем такой адрес vpn сети, который не используется в домашних роутерах. Например, 192.168.222.0\24. Для узлов в локальной сети предприятия можно настроить netmap в NAT. PSK ключи IPSEC можно заменить на сертификаты, которые в случае чего, можно отозвать. Тогда, даже если на ПК клиента и будет сидеть зараза, то максимум она может атаковать через VPN только RDP, что в принципе она может сделать и при описанном в статье варианте.
VPN в данном случае даёт дополнительную безопасность, однако VPN нужно точно так же защищать, как и внешние интерфейсы, смотрящие в интернет. Но с одним учётом — по VPN не подключится любой желающий, а только те, кто имеет учётные данные, ключи, сертификаты и т.д.

В названии статьи стоит слово "просто" — а ваш вариант сложнее, к тому же в вашем варианте к вам от пользователей часто посыпятся "не работает интернет", так как часто vpn становится шлюзом по умолчанию(можно конечно написать долгую инструкцию), но при решении поставленной мне задачи было ограничено время 1-2 часа для её решения и внедрения. К тому же ipsec ограничен — одно подключение на один ip и еще прилетит к вам от колег из командировки или места где оказались одновременно два сотрудника, что всё глючит и не работает.

НЛО прилетело и опубликовало эту надпись здесь
PSK ключи IPSEC можно заменить на сертификаты, которые в случае чего, можно отозвать.

Ну вот отозвал ты сотруднику сертификат, а вокруг карантин. Как будешь доставлять ему новый? По всем хорошим практикам владелец сертификата должен предстать пред ясны очи офицера безопасности, дабы тот лично смог получить от будущего владельца распечатанный и собственноручно подписанный им запрос, убедиться в соответствии владельца ключам и передать сертификат из рук в руки. А вокруг режим ХЗ самоизоляции, сотрудник и офицер встретиться лично, без риска схватить либо вирус, либо штраф в 15000₽, не могут.

Спасибо за статью. Действительно полезно. Жаль что не попадалась ранее ))) Про параметры RDP файла знал но особо ни когда не использовал. Обычно (в простых случаях) просто делаю ссылку вида mstsc /public /v:адрес /f, поскольку в моем случае важно не сохранять на компьютере клиенте следов посещения сторонних ресурсов. Если с этим же параметром можно указывать логин и он при этом не будет сохраняться в кэше, обязательно буду пользоваться поскольку вы правы мало кто знает или запоминает свои логины, особенно если требуется указать еще и домен )))

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Изменить настройки темы

Истории