Легкий способ защитить свой Mikrotik от атак

Хочу поделиться с сообществом простым и рабочим способом, как при помощи Mikrotik защитить свою сеть и «выглядывающие» из-за него сервисы от внешних атак. А именно всего тремя правилами организовать на Микротике honeypot.

Итак, представим, что у нас небольшой офис, внешний IP за которым стоит RDP сервер, для работы сотрудников по удаленке. Первое правило это конечно сменить порт 3389 на внешнем интерфейсе на другой. Но это ненадолго, спустя пару дней журнал аудита терминального сервера начнет показывать по несколько неудачных авторизаций в секунду от неизвестных клиентов.

Другая ситуация, у Вас за Mikrotik спрятан asterisk, естественно не на 5060 udp порту, и через пару дней также начинается перебор паролей… да да, знаю, fail2ban наше вcё, но над ним еще попыхтеть придется… вот я например недавно поднял его на ubuntu 18.04 и с удивлением обнаружил, что из коробки fail2ban не содержит актуальных настроек для asterisk из той же коробки того же ubuntu дистрибутива… а гуглить быстрые настройки готовых «рецептов» уже не получается, цифры у релизов с годами растут, а статьи с «рецептами» для старых версий уже не работают, а новых почти не появляется… Но что-то я отвлекся…

Итак, что такое honeypot в двух словах — это приманка, в нашем случае какой-либо популярный порт на внешнем IP, любой запрос на этот порт от внешнего клиента отправляет src адрес в черный список. Все.

/ip firewall filter
add action=add-src-to-address-list address-list="Honeypot Hacker" \
    address-list-timeout=30d0h0m chain=input comment="block honeypot ssh rdp winbox" \
    connection-state=new dst-port=22,3389,8291 in-interface=\
    ether4-wan protocol=tcp
add action=add-src-to-address-list address-list="Honeypot Hacker" \
    address-list-timeout=30d0h0m chain=input comment=\
    "block honeypot asterisk" connection-state=new dst-port=5060 \
    in-interface=ether4-wan protocol=udp 
/ip firewall raw
add action=drop chain=prerouting in-interface=ether4-wan src-address-list=\
    "Honeypot Hacker"

Первое правило на популярных TCP портах 22, 3389, 8291 внешнего интерфейса ether4-wan отправляет IP «гостя» в список «Honeypot Hacker» (порты для ssh, rdp и winbox заблаговременно отключены или изменены на другие). Второе делает то же самое на популярном UDP 5060.

Третье правило на стадии прероутинга дропает пакеты «гостей» чей srs-address попал в «Honeypot Hacker».

Спустя две недели работы моего домашнего Mikrotik список «Honeypot Hacker» включил в себя около полутора тысяч IP адресов любителей «подержать за вымя» мои сетевые ресурсы (дома своя телефония, почта, nextcloud, rdp) Brute-force атаки прекратились, наступило блаженство.

На работе не все так просто оказалось, там rdp сервер продолжают ломать перебором паролей.

Судя по всему номер порта определили сканером за долго до включения honeypot, а во время карантина не так-то легко перенастроить более 100 пользователей, из которых 20% старше 65 лет. В случае когда порт менять нельзя, есть небольшой рабочий рецепт. Подобное в интернете встречал, но тут присутствует допил и тонкая настройка:

Правила для настройки Port Knocking
 /ip firewall filter
add action=add-src-to-address-list address-list=rdp_blacklist \
    address-list-timeout=15m chain=forward comment=rdp_to_blacklist \
    connection-state=new dst-port=3389 protocol=tcp src-address-list=\
    rdp_stage12
add action=add-src-to-address-list address-list=rdp_stage12 \
    address-list-timeout=4m chain=forward connection-state=new dst-port=3389 \
    protocol=tcp src-address-list=rdp_stage11
add action=add-src-to-address-list address-list=rdp_stage11 \
    address-list-timeout=4m chain=forward connection-state=new dst-port=3389 \
    protocol=tcp src-address-list=rdp_stage10
add action=add-src-to-address-list address-list=rdp_stage10 \
    address-list-timeout=4m chain=forward connection-state=new dst-port=3389 \
    protocol=tcp src-address-list=rdp_stage9
add action=add-src-to-address-list address-list=rdp_stage9 \
    address-list-timeout=4m chain=forward connection-state=new dst-port=3389 \
    protocol=tcp src-address-list=rdp_stage8
add action=add-src-to-address-list address-list=rdp_stage8 \
    address-list-timeout=4m chain=forward connection-state=new dst-port=3389 \
    protocol=tcp src-address-list=rdp_stage4
add action=add-src-to-address-list address-list=rdp_stage7 \
    address-list-timeout=4m chain=forward connection-state=new dst-port=3389 \
    protocol=tcp src-address-list=rdp_stage6
add action=add-src-to-address-list address-list=rdp_stage6 \
    address-list-timeout=4m chain=forward connection-state=new dst-port=3389 \
    protocol=tcp src-address-list=rdp_stage5
add action=add-src-to-address-list address-list=rdp_stage5 \
    address-list-timeout=2m chain=forward connection-state=new dst-port=\
    3389 protocol=tcp src-address-list=rdp_stage4
add action=add-src-to-address-list address-list=rdp_stage4 \
    address-list-timeout=2m chain=forward connection-state=new dst-port=\
    3389 protocol=tcp src-address-list=rdp_stage3
add action=add-src-to-address-list address-list=rdp_stage3 \
    address-list-timeout=2m chain=forward connection-state=new dst-port=3389 \
    protocol=tcp src-address-list=rdp_stage2
add action=add-src-to-address-list address-list=rdp_stage2 \
    address-list-timeout=2m chain=forward connection-state=new dst-port=3389 \
    protocol=tcp src-address-list=rdp_stage1
add action=add-src-to-address-list address-list=rdp_stage1 \
    address-list-timeout=2m chain=forward connection-state=new dst-port=3389 \
    protocol=tcp 
/ip firewall raw
add action=drop chain=prerouting in-interface=ether4-wan src-address-list=\
rdp_blacklist

За 4 минуты удаленному клиенту разрешается сделать только 12 новых «запросов» к RDP серверу. Одна попытка входа — это от 1 до 4 «запросов». При 12-ом «запросе» — блокировка на 15 минут. В моем случае злоумышленники сервер взламывать не перестали, подстроились под таймеры и теперь делают это очень медленно, такая скорость подбора сводит эффективность атаки к нулю. Сотрудники предприятия от принятых мер никаких неудобств в работе практически не испытывают.

Еще одна маленькая хитрость
Это правило включается по расписанию в час ночи и выключается в 5, когда живые люди точно спят, а автоматизированные подборщики продолжают бодрствовать.

/ip firewall filter 
add action=add-src-to-address-list address-list=rdp_blacklist \
    address-list-timeout=1w0d0h0m chain=forward comment=\
    "night_rdp_blacklist" connection-state=new disabled=\
    yes dst-port=3389 protocol=tcp src-address-list=rdp_stage8

Уже на 8ом по счету соединении IP злоумышленника отправляется в черный список на неделю. Красота!

Ну и в довесок к вышесказанному добавлю ссылку на Wiki статью, с рабочей настройкой защиты Микротика от сетевых сканеров. wiki.mikrotik.com/wiki/Drop_port_scanners

На моих устройствах эта настройка работает вместе с вышеописанными honeypot правилами, неплохо их дополняя.

UPD: Как подсказали в комментариях, правило дропа пакетов перемещено в RAW, для снижения нагрузки на роутер.

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

    +1
    А разве ботсети еще не научились со множества разных адресов долбиться?
      +2
      Главное, чтобы не долбились с ИП сотрудника.
      0
      Это правило включается по расписанию в час ночи и выключается в 5, когда живые люди точно спят, а автоматизированные подборщики продолжают бодрствовать.

      На земле уже ввели один часовой пояс и все люди на Земле спят в одни и те же часы?

        +7
        Статья банальная, но чего занудничать?
        Имеется ввиду активность реальных пользователей роутера, соответственно, их рабочего времени.
          –1

          Нет, имеются в виду «автоматизированные подборщики» или я что-то не то читаю?


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


          Открытие RDP и SIP наружу в организации в 100 человек это моветон. А где же нормальный VPN?


          Honey point непонятно для чего. Может чтобы побольше компов из ботнета стучались в него и жрали трафик?

            0
            Открытие RDP и SIP наружу в организации в 100 человек это моветон.


            Мало того, что моветон, но многие продолжают использовать правила от перебора RDP, хотя боты уже давно в рамках одной сессии это делают, не говоря уж об уязвимостях относительно недавних. Можно посмотреть в лог DROP правила, что бы посмотреть частые порты на которые стучаться машины. Ну и в RAW можно все убрать, что бы ip вообще потомдо firewall не доходили. Жаль только от кол-ва трафика это не избавит.
              +2
              организации в 100 человек это моветон


              Мне вот такое в наследство досталось. Причем, филиалы по всей стране. Поднять VPN — его настройка у всех затянется, и юзерам не объяснить, почему им теперь вместо запуска одного ярлыка надо запускать 2. Ну и плюс многие в возрасте.

              Поставил бесплатный RDP Defender, 10 неудачных попыток входа — и ip отправляется в черный список на заданное время путем создания правила в Windows firewall (где-то в сети видел скрипт на PowerShell, который делает то же самое).

              Все лучше, чем ничего.

              Пока наблюдаю. Когда смотрю в журнал RDP Defender, ужасаюсь.

              Но правильно — поднять VPN. Пока просто руки не доходят. На одном сервере сделал, а второй исторически торчит голым задом в интернет. Это плохая практика, не делайте так.
                0
                Мне вот такое в наследство досталось. Причем, филиалы по всей стране. Поднять VPN — его настройка у всех затянется, и юзерам не объяснить, почему им теперь вместо запуска одного ярлыка надо запускать 2. Ну и плюс многие в возрасте.

                Пожалуйста не выдумывайте. Мне на собственном опыте удалось убедится что это не так. Правильные руководства, установка через AD, удаленное администрирование и поддержка пользователей все эти проблемы сводит к нулю. Единственное что требуется: это воля руководства предприятия и грамотный админ.
                  0
                  AD нет, есть одинокий терминальный сервер в датацентре. На нем 1С. Все.

                  Остальное в локалке на другой площадке, домена тоже нет, но там хотя бы VPN.

                  Грамотным админом себя назвать тоже не могу. Скорее, эникей с опытом.

                  А пользователи есть за 60, механики по кранам. Их знания и опыт лежат несколько в другой области, и учатся они неохотно. По 5 минут объясняю, как TeamViewer запустить.

                  Хотя толковая инструкция может помочь, надо написать.
                    0

                    Ситуации разные бывают, не менять же работу каждый раз, когда не поддерживают твои стремления сделать всё идеально. Это у предыдущего комментатора всё идеально сложилось и все условия были, а у кучи других нет, это нормально.
                    Для удалённого доступа, если не куплена какая-то крутая корпоративная система, можно использовать vnc reverce connection. Один раз поставил, сделал ярлык и человек из любого места подключается к твоему ip без всяких id и паролей.

            0

            Так в офисе все в одном часовом поясе. Если кто пришел из другого часового пояса, то высока вероятность, что что-то не так. Конечно, применимо не везде, но вполне применимо.

              0
              Вы это бухгалтеру объясните, когда он попытается в нерабочее время по RDP зайти из дома и насчитать вам зарплату.
                +1
                Конечно, применимо не везде, но вполне применимо.

                так что вполне себе. да и каждом офисе свои порядки. моя мать бухгалтер, до текущих событий не ходила через rdp, а приезжала лично даже в выхи, потому что ей было так проще. Так что считаю что вполне применимо.
                да и не забываем, что безопасность часто вступает в конфликт с удобством. это как раз тот случай.
              0
              Возможно, речь об ограниченном подмножестве множества людей
              +2
              Решение, которое можно использовать, но лучше все таки белый список. Подключение по rdp все таки есть TSG, если не устраивает, то можно реализовать кучу впн используя в качестве впн сервера тот же микротик.
              Если «Мы не будем ставить впн», «Это слишком сложно для пользователя», «Зачем лишнее городить..», то вот такие костыли точно не хорошее решение. С торчащим наружу рдп и подключение разных пользователей (подбор пароля и т.п.) точно не лучшее решение, правильное дело, если в событиях аудита будут только случайные неудачные входы ваших пользователей, если же есть роботы и явная попытка подбора, то вы что то делаете не так.
              По sip, лучше рассмотреть возможность использования впн — вполне работает даже с 11 версией, главное правильно прописать правила NAT.
                0
                vpn это гемор. зачем он нужен? если можно без него, то лучше без него. в Акронисе, например, достаточно грамотный IT департамент был, чтобы настроить доступ через шлюз удаленных рабочих столов. Очень удобно. Нужно чтото исправить 31 января никуда не едешь, ничего на свой домашний комп не ставишь. Зашел по rdp и всё.
                  +2
                  Это все, что нужно знать об Acronis.
                    0
                    Ведь я написал «TSG»- terminal services gateway. Тут надо пользователю ставить на пк с которого идет подключение сгенерированный сертификат.
                  +2

                  Не рекламы ради, а чтобы дополнить, что про PortKnocking, микротик и RDP уже есть на хабре.

                    +1
                    если вдруг по какой-то причине невозможно открыть условный rdp по белому списку или использовать VPN — открываю RDG (грубо говоря rdp over https) на нестандартном порту + fail2ban на самом сервере.
                    списки в f2b пустые, но всё равно.
                    ну и конечно не забываем про обновления, потому что защита от брутфорса != защита от експлойтов. вспомним нашумевший BlueKeep, или недавний CVE-2020-0609 и компания.
                      +1

                      Есть ещё cyberarms intrusion detector
                      По сути — маленький фэйл2бан для винды, который нюхает фэйлы авторизации в журнале и банит источник после указанного количества фейлов штатным брэндмауэром. Работает весьма неплохо, однако если у вас есть пользователи, забывающие свои пароли, периодически придётся их разбанивать ручками.

                        0
                        Спасибо, добрый человек, за совет. То что надо, давно о такой думал, но руки не доходили!
                          0
                          Пробовали сами? Не наломает дров?
                            0
                            Используется сейчас. Максимальные проблемы которые были — пару раз останавливался сервис, то есть прекращал банить.
                          0
                          Комментарий тот же, что и у turone: маркировка пакетов осуществляется в mangle, а не filter. В mangle гораздо шире спектр возможностей маркировки во всех цепочках.
                            +1
                            Почитал внимательнее: есть 2 момента, которые очень серьезно бьют по вашей защите. Первый, это как только ботнет подберет интервал и количество попыток, то пиши пропало. Второй — при серьезной нагрузке порядка 5-10к IP-адресов вы будете слать ICMP отбивку? В цепочку RAW и просто дроп на прероутинге для минимизации процессорной нагрузки.
                            P.S.: правило reject у вас в самом низу списка, хотя должно быть сверху.
                              0

                              Кмк тут как с машинами и противоугонкой — на кой ботнету, если он не целенаправленно именно в эту контору хочет, адаптироваться под эти таймауты, если по соседству в интернетах ещё туева хуча хостов без таких наворотов?

                                +2

                                Моя VDS-ка нахрен никому кроме меня не уперлась, но при изменении таймингов на fail2ban подстраиваются в течение дня. Все это уже давно делается автоматически и супостаты умнее, чем хотелось бы.

                                  +1

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

                                    0
                                    Именно поэтому будет ходить по кругу, заодно вычисляя таймаут разбана. И в одну каску сможет окучивать тысячи серверов, планомерно подбирая пароли.
                                  0
                                  Название не соответствует содержимому. В статье нет ни слова о защите самого Mikrotik, только сервисов за ним.
                                    +1

                                    Перечитайте. Порт 8291 и chain=input — это и есть MikroTik. Да, я в курсе, что MikroTik — это компания-производитель, и на самом деле мы защищаем не её, а роутеры её производства.

                                    0
                                    1) уже давно и много описана практика применения и port knocking, и fail2ban на микротике — полезности в статье не увидел
                                    2) не использовать таблицу raw — признак непрофессионализма
                                      +2
                                      > Первое правило это конечно сменить порт 3389 на внешнем интерфейсе на другой.
                                      Первое правило — использовать Remote desktop gateway (желательно с многофакторкой и\или преаутентификацией) и ни в коем случае не выкидывать 3389 наружу даже под другим номером.

                                      >У Вас за Mikrotik спрятан asterisk, естественно не на 5060 udp порту, и через пару дней также начинается перебор паролей
                                      Второе правило — никогда не открывать корпоративную PBX наружу. А если делаете так — то настройте на нем хотя бы TLS.

                                      Ну и третье правило — не раздавайте вредные советы другим людям в Интернете.
                                        –1

                                        Хорошо, когда без проблем выделяют деньги, в большинстве неайтишных контор это не так. Не менять же работу каждый раз, когда требуют сделать быстрее и бесплатно.
                                        А блокировка на неделю всех, кто ломится на закрытые порты у меня отлично работает, брутфорса давно уже нет. И вашим "правилам", кстати, не мешает, в rds тоже уязвимости находят. И vpn тоже могут сломать в будущем, лучше чтоб ботнеты до него не добрались.

                                          0
                                          дело ВООБЩЕ не в деньгах. RDG ставится на тот же хост, где и крутится тс. Наружу можно вытащить его через хапрокси — оно фри. Астериск — фри, мануал по настройке TLS есть на офсайте. Сертификаты letsencrypt — фри.
                                          Количество уязвимостей в рдс и рдг несравнимо, а если рдс закрыть сертификатом или любой преаутентификацией (хоть AD FS, хоть бесплатный хапрокси) — вас вся NSA будет ломать и не сломает. При этом вся эта история есть даже в официальном майкрософтовском мануале по настройке рдс, её можно было хотя бы открыть и прочитать перед тем, как писать данную статью.
                                            0
                                            С виндой мало работаю, думал это именно отдельный сервер, а не роль. По количеству манипуляций проще один vpn сервер поднять, чем два сервиса перенастраивать.
                                            Ну и блокировка на уровне маршрутизатора всё равно работает и отсекает автоматические ботнеты ещё на уровне сканирования портов и независимо от используемых сервисов. У меня и vpn и ssh перестали брутфорсить, хоть там шансов и не было, но мало ли, вдруг завтра найдут новую уязвимость.
                                              0
                                              рдс нужно секурить не только ради брутфорсов, но и ради защиты от многочисленных CVE. Без NLA этот сервис не является защищенным — о чем Microsoft пишет везде и всюду. Развертывание RDS без RDS Gateway допустимо только в доверенной среде, коей интернет не является даже при наличии антибрутфорсилок и прочего.

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

                                                0

                                                Интересно насчёт нарушения лицензии, надо будет получить официальный ответ от авторизированных партнёров. Получается я даже погоду не имею права посмотреть через rdp из интернета?

                                                  0
                                                  В еуле четко написано —
                                                  In addition to a Windows Server 2016 CAL, you must acquire a Windows Server 2016 Remote Desktop Services CAL for each user or device that (i) directly or indirectly accesses the Remote Desktop Services functionality, (ii) directly or indirectly accesses the server software to host a graphical user interface (using the Windows Server 2016 Remote Desktop Services functionality or other technology), or (iii) accesses the Multipoint Services functionality. For more information about Windows Server 2016 Remote Desktop Services CALs, visit (aka.ms/windowsrds).


                                                  Your CALs permit access to your instances of earlier versions, but not later versions, of the server software. If you are accessing instances of an earlier version, you may also use CALs corresponding to that version. You do not need CALs for:
                                                  · any of your servers licensed to run instances of the server software;

                                                  · up to two devices or users to access your instances of the server software only to administer those instances;
                                        0

                                        Подскажите, при port knocking, как rdp должно простукивать, чтобы его пустил микротик? Где в rdp настраивается последовательность простукивания?

                                        0

                                        На самом деле я такое решение ввел еще года 2 назад… при этом все, кто попадал в ловушки сразу банились насовсем…
                                        А также ни одного стандартного порта, а также больше 5 подключений туда же.


                                        Так вот татья чрезмерно оптимистична — это все не работает, через некоторое время все равно Вы увидите еак к Вам на рдп порт ломятся раз в минуту, 2,5 идет пепебор паролей… Другое дело что перебирать их так придется лет 100…
                                        И да, "порт-кнокинг" имеет тот же эффект.

                                          0
                                          Я понимаю сие для SIP, но зачем городить этот огород для RDP если L2TP + IPSEC прекрасно справляются?
                                            0
                                            Давно уже баню на недельку все новые подключения, не попадающие под разрешающие правила, брутфорс пропал. В итоге каждый порт надо с нового ip сканировать, видимо нет у ботнетов такой роскоши. Даже параною периодически и проверяю fail2ban на работоспособность, потому что брутфорсеры до него не добираются и все списки пустые.
                                            Речь, конечно, о непубличных сервисах и пару раз в году приходится добавлять ip в белый список, но отсутствие брутфорса такие мелочи перекрывает.
                                              0
                                              Открыл статью в фоновой вкладке час назад и только сейчас дошёл к ней. Перед чтением рука рефлекторно нажал F5. В этот момент четыре правила превращаются в три. НЛО, что за магия вне Хогвартса?
                                                0
                                                Смешно получилось:) Статью действительно недавно поправил (в UPD прокомментировал). В предыдущем варианте правила drop были в /ip firewall filter для input и forward — 2 штуки, после переезда в /ip firewall raw стало одно правило на prerouting
                                                0
                                                Сначала не понял, почему многие так накинулись, вроде бы всё нормально.
                                                Но присмотрелся к конфигу — теперь понимаю.
                                                Почему не использовали такую старую фишку в порт кнокинге, как размер пакета?
                                                например:
                                                add action=jump chain=input comment="KnockKnockKnock icmp look" dst-address=\
                                                *.*.*.* in-interface=pppoe-out1 jump-target=KnockKnockKnock log=yes \
                                                log-prefix=RDP packet-size=41-49 protocol=icmp
                                                add action=add-src-to-address-list address-list=RDP_level_1 \
                                                address-list-timeout=5s chain=KnockKnockKnock comment=RDP-level-1 \
                                                dst-address=*.*.*.* in-interface=pppoe-out1 log=yes log-prefix=RDP \
                                                packet-size=48 protocol=icmp
                                                add action=add-src-to-address-list address-list=RDP_level_2 \
                                                address-list-timeout=5s chain=KnockKnockKnock comment=RDP-level-2 \
                                                dst-address=*.*.*.* in-interface=pppoe-out1 log=yes log-prefix=RDP \
                                                packet-size=44 protocol=icmp src-address-list=RDP_level_1
                                                add action=add-src-to-address-list address-list=RDP_level_3 \
                                                address-list-timeout=5s chain=KnockKnockKnock comment=RDP-level-3 \
                                                dst-address=*.*.*.* in-interface=pppoe-out1 log=yes log-prefix=RDP \
                                                packet-size=47 protocol=icmp src-address-list=RDP_level_2
                                                add action=add-src-to-address-list address-list=RDP_allow \
                                                address-list-timeout=10m chain=KnockKnockKnock comment=RDP-level-4 \
                                                dst-address=*.*.*.* in-interface=pppoe-out1 log=yes log-prefix=RDP \
                                                packet-size=42 protocol=icmp src-address-list=RDP_level_3
                                                add action=return chain=KnockKnockKnock log=yes log-prefix=RDP

                                                  +1

                                                  Что касается port knocking, ИМХО, лучше сделать по-другому. Сделайте условие: Если тип пакета ping и размер пакета Х, то занести src адрес в список доверенных на 1 минуту. У пользователя создайте ярлык "ping -n 1 — l X ip.address.server"


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

                                                    0
                                                    Спасибо, очень хорошая идея. Но применять на практике во время карантина не будем. Сотню человек на удалёнке обучить, даже такому простому действию, та еще задачка. Хотя бы обзвонить всех и застать каждого у компьютера уже не просто. Существующий конфиг работает, справляется. А если работает — не трожь )
                                                    Много комментариев про port knocking, он всего лишь в довесок, основная идея статьи honeypot.
                                                      0
                                                      На счет «идея статьи honeypot» — да как-бы мысль не нова, первое время отлично работает, но я уже с таким экспериментировал и результат повергает в размышления. С одной стороны схема отличная, но с другой списки только пухнут и наступит время когда оборудование 100% ляжет. Да и до этого времени уже начнутся вопросики «чего все так медленно при том что на роутере никого», а ответ простой ОЧЕНЬ длинные листы. Я сейчас делаю (решение не готово еще пока) «ежедневное упорядочивание листов» — т.е. анализ и группировка адресов с тем чтобы вырезать уже не отдельными адресами, а сетями.
                                                        –1

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

                                                          0

                                                          Ну не всегда руководство выбирает путь сокращения админа/зарплаты. Есть, конечно, придурки, но здравомыслящих больше

                                                          0
                                                          Списки пухнут, потому что подход неправильный. Сейчас многие ип адреса динамические.
                                                          Если это более менее профессиональный подход: атакующий купил их штук 100, недельку пароли подбирал и эти отдает обратно, покупает другие.
                                                          Если не проф подход: то это условный школьник из сети провайдера с динамическим внешним — у него каждый день новый ип.
                                                          Поэтому все меньше смысла в статичном списке — он устаревает и лишь бесполезно нагружает оборудование.

                                                          Вырезать сетями — занятие опасное. Что делать, если в сети домашнего провайдера одного из ваших пользователей завелось 3 школьника-хакера? Забанить их подсетью?
                                                            0

                                                            Ок. Вы забили гвоздь и срезали шляпку.
                                                            Да, я знаю, что ботовладельцы пользуются динамическими пулами и даже автоматом ребутают хосты чтобы сменился адрес, да я знаю, что резать сетями не есть совсем-совсем правильно и бла-бла-бла.
                                                            Вопрос в другом: вы не предложили альтернативу, но сказали, что "все плохо". А конструктив диалога где?
                                                            Я считаю, что сетями можно и нужно резать. Даю 100% вероятность, что по ssh или любому другому менеджмент протоколу к домашнему роутеру или роутеру компании не должно быть доступа из Кореи, Китая или любой другой страны кроме страны владельца.
                                                            И в-третьих, я читал, что правило "дропать" следует ставить для 100% направлений. В остальном я считаю, что выходом может служить лишь port-knocking.

                                                              0
                                                              Я в своем софте использую лишь пессимизацию, если нашлось несколько атакующих из той же подсети /24. Т.е. условно, для атакующих доступно намного меньше неудачных попыток входа до бана. По формуле:
                                                              Целое( 20 / (ЧислоЗаблокированныхРядом + 1) )
                                                              20 — базовое число неудачных попыток входа до бана.
                                                              ЧислоЗаблокированныхРядом — другие заблокированные ип адреса из той же подсети /24.

                                                              Т.е. если это первый атакующий — то у него 20 попыток. Если второй — то у него 10 попыток. Если третий — то 6 попыток. И т.д.
                                                                0
                                                                Кстати, мне нравится концепция порт-кнокинга. Правда, она древняя до невозможности. Я бы ее улучшил так:
                                                                Есть некий веб-интерфейс, туда заходит пользователь, авторизуется. Веб-интерфейс берет его ип адрес и разрешает соединение к сервисам.
                                                                Относительно порткнокинга — не имеем ложных срабатываний от скана портов, не нужно ставить «ярлыки» на комп пользователя, можно настроить персонально сервисы для каждого пользователя (не всем все открывать).
                                                                  0

                                                                  По порт-кнокингу:
                                                                  Да, у меня была такая схема "веб+авторизация", но я отказался в пользу "ярлык на рабочем столе".
                                                                  И вот почему: веб по-сути тоже дыра. Пользователь должен куда-то заходить, что-то делать. Сложные пароли на вебе — тоже фигня. Пароли нужно менять, пользователи у меня как и у вас все с амнезией. Короче ерунда.
                                                                  Ярлык — как бетон. Его можно настроить индивидуально, в правилах фаервол нет нагрузки и прочее, его можно высылать по почте и у пользователя хватает мозгов сохранить на рабочий стол и запустить. Порт-кнокинг считаю лучшая защита против скана портов.
                                                                  В общем как-то так.

                                                                    0
                                                                    И то, и другое дыра. Но в порт-кнокинге паролем является номер порта. Сейчас его не ломают лишь только потому, что он мало распространен. Будет распространение — будет легко ломаться, т.к. представляет всего 65к комбинаций.
                                                                    Да, технически можно сделать длинные цепочки порткнокинга — сначала на один порт, потом на другой, потом на третий, а потом уже к нормальному сервису. И это поднимет до адекватного уровня число комбинаций. Но сейчас на уровне фаервола о поддержке такого я не слышал, да и кроме того, встает вопрос «отладки», если что-то пошло не так.
                                                                    А веб-приложение, находясь выше по уровню модели OSI, позволяет:
                                                                    1) и пароль нормальной сложности задать
                                                                    2) и логин добавить, что не сильно усложняет пользователю, но сильно усложняет подбор пароля
                                                                    3) двухфакторную сделать (письмо с кодом на почту, например)
                                                                    4) нормально отладить, если что-то не работает
                                                                      0

                                                                      Вы не до конца поняли суть порт-кнокинга.
                                                                      Суть в том, что порт ВСЕГДА открыт, но только адресам из списка. Задача противника попасть в список. Представьте, что твы очно знаете, что работает 3389 порт, но как попасть в список валидных адресов?


                                                                      На счёт двуфактрности, логина, сложности и того и другого — это все не так просто и дёшево реализовать. Мы говорим о недорогом и стойком решении.

                                                                        0
                                                                        Как попасть, если я точно знаю, что на хосте порткнокинг? сейчас очень просто — взять nmap и всем портам послать syn. Потом соединяться с rdp. Я о том и говорю, что реальная стойкость у порткнокинга слабая. Он сейчас хорошо работает, потому что не распространен и поэтому хакеры под него не пишут софт.

                                                                        Я о том, что веб-интерфейс предлагает расширяемую схему. Она от простой до сложной меняется — какую хочешь, такую и делаешь.
                                                                          0

                                                                          Стоп стоп стоп. И что даст nmap?

                                                                            0
                                                                            Отправит на все порты первый пакет установки соединения TCP-SYN. Который поймает ваше правило порткнокинга и честно разрешит доступ к Rdp.
                                                                              0

                                                                              Нет. Такого не произойдет. Порт 3389 отвечает только адресам из списка. Вы не в списке и вам не ответит. Поэтому такой атакой (syn на все порты) вы ничего не добавьтесь. Будет или timeout или packet drop.

                                                                                0
                                                                                А что мешает к правилу «постучи на 31337 порт, потом на 666, потом коннекться своим ssh куда надо» добавить «постучался на 31336 — в бан на год»?
                                                                                  0
                                                                                  Ничего. Но мы уже переходим к тому, что порткнокинг тоже надо защищать, о чем я и говорю.
                                                                                  Вы предлагаете honeypot с портом 31336 (гарантированно неиспользующимся клиентами) — отличный способ.
                                                                                  Срок бана мне не нравится — повыше в обсуждениях я писал, что статичные (или долго действующие) баны бесполезно нагружают оборудование, а самого атакующего на заблокированном ип адресе скорее всего уже и нет.
                                                                        –1

                                                                        порт-кнокинг проще по мануалу — тут. Я себе в двух организациях настроил и ни один юзер (из 40) не переспросил как подключаться, один только спросил как мультимонитор отключить. Вначале за часик настроил, написал инструкцию, разослал юзерам и спишь спокойно и вообще никто не ломится в сеть кроме своих. Ляпота!

                                                                      0

                                                                      Просто для данных целей микротик не катит, никто же мне покупает велосипед чтобы привезти тонну песка. Почему бы не внедрить нормальный вариант ngfw? Вариантов на рынке куча, с полным спектром покрытия угроз.

                                                                    0
                                                                    С одной стороны схема отличная, но с другой списки только пухнут и наступит время когда оборудование 100% ляжет. Да и до этого времени уже начнутся вопросики «чего все так медленно при том что на роутере никого», а ответ простой ОЧЕНЬ длинные листы.

                                                                    На всякий случай, RB4011iGS влёгкую перенёс разбухание трёх чёрных списков до примерно 50000 адресов в каждом. Никакого особого увеличения нагрузки ЦП и замедления работы при этом не наблюдал. Это ж не циска какая-нибудь, которую NAT немедленно ставит на колени. Понятно, конечно, что приглядывать за списками надо, чтобы сильно не разрастались, но, чтобы забить ими память микротика до отказа, надо очень сильно постараться.
                                                                –1
                                                                Использовать tarpit вместо drop не думали для tcp?
                                                                  +1
                                                                  Бытует мнение, что tarpit больше подходит для противодействия SYN-flood. Оно замедляет атаку за счет удержания сессий.
                                                                  В случае сканирования drop подходит больше. Причем именно в таблице RAW, в цепочке prerouting. Это позволяет перехватывать соединения до их попадания в conn-track.
                                                                  Возможно имеет смысл комбинировать эти подходы.

                                                                  Хорошая статья про firewall в микротике

                                                                  +1
                                                                  Для винды и RDP(а также FTP, SMTP, etc) подойдет RdpGuard. Анализирует журнал, и на основании этого динамически обновляет правила файрвола.
                                                                    0
                                                                    Есть еще хороший вариант: проанализировать за месяцок логи успешных подключений и на их основе собрать примерный список подсетей провайдеров (обычно у них используется шлюз на уровне области и он имеет определенный пул адресов для динамической выдачи) и запихать этот список в белый лист, чтоб забугорские боты дропались еще задолго до fail2ban-а.
                                                                    Ведь тот же Яндекс по IP умеет определять расположение компа с точностью до области/крупного города
                                                                      0
                                                                      … и если будет легитимное подключение не из этого списка, админу на телегу сообщение.
                                                                      0
                                                                      Это все хорошо, конечно, и RdpGuard, и Cyberarms, и тут-тук-я-свой, но обычный VPN все эти меры сверху кроет. Если это изначально на микротике сделано — то контора небольшая, можно и на самом микротике IPSec поднять. А тем, кто в VPN попал — дать доступ только к RDP. Все на том же самом микротике, ничего докупать не придется.
                                                                        0
                                                                        В VPN есть только одна проблема — пользователи. Это дополнительная точка отказа, которая раскидана по всем конечным пользователям. У кого-то vpn клиент не установится, у кого-то провайдер блокирует vpn трафик (я такое встречал и не раз), а еще бывает кривое сетевое оборудование, которое часто рвет vpn сессию — все это для обслуживания и техподдержки пользователей требует постоянного админа.

                                                                        P.S. И почему-то часто забывают, что к впн также подбирают пароли. И также торгуют доступом в корпоративные сети, подобрав пароль. И его также нужно защищать — и примерно теми же мерами.
                                                                          0
                                                                          VPN можно сделать на клиентских сертификатах, как и SSH. Правда в этом случае всё становится ещё веселее со стороны пользователя.
                                                                            0
                                                                            Да, согласен. Решение — любая маааааленькая VPSка с OpenVPN сервером, на клиентах нет паролей, авторизация к VPN по ключам. Клиенты настроены типа:
                                                                            remote 1.1.1.1 1234

                                                                            route 2.2.2.2
                                                                            route-nopull
                                                                            где 2.2.2.2 — IP-адрес RDP-сервера

                                                                            При соединении с VPN (пароль, ключ, ключ/пароль) создается маршрут на клиентах, что в тоннель надо только для доступа к 2.2.2.2. OpenVPN клиент очень стабильный и всеядный в плане разных провайдеров, мобильных сетей и прочего. А на микротике разрешить к RDP только с IP 1.1.1.1. Все. Никаких проблем подбора паролей в принципе. Надо блокирнуть юзера — просто отзовите его сертификат на сервере OpenVPN, сам юзер может приехать в офис и работать.
                                                                          0

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

                                                                            0
                                                                            Отстрелить себе руку можно много чем и уж точно любой безопасностью.
                                                                            Проблема на самом деле редкая — я для себя использую 20 неудачных попыток в день. Этого более чем достаточно, чтобы отделить нормального пользователя от атакующего. За 4 мес было 1 ложное срабатывание: когда в офисе массово начали пароли менять (а весь офис за 1 ип конечно же).
                                                                            Но все довольно легко решается белыми списками. На ип адрес админа, на ип адрес офиса и т.д.
                                                                              0

                                                                              Я бы тоже топил за белые ip, но провайдеры все чаще домашних пользователей урезают и не дают постоянного белого адреса… Так что, наверное, туннели по типу IPsec с сертификатами реально выглядят все более и более привлекательными

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

                                                                          Самое читаемое