Защита Mikrotik от брутфорса. Mikrotik: Полезные советы по настройке Защита сервера от внешнего взлома через микротик

Маршрутизаторы от производителя Mikrotik приобретают все большую популярность благодаря привлекательной цене и богатому функционалу. Пожалуй, в SOHO сегмента Mikrotik является лидером. Сегодня хотим рассказать о полезных опциях настройки, которые помогут укрепить устойчивость к внешним атакам и обеспечить стабильную работу для вашего офисного Mikrotik.

Защита Mikrotik

1. Смена логина и пароля администратора

Начнем с первичной защиты нашего маршрутизатора – созданию стойкого к взломам логина и пароля администратора. По умолчанию, в Mikrotik используется логин admin и пустой пароль. Давайте исправим это: подключаемся через Winbox к нашему маршрутизатору и переходим в раздел настройки System Users . Видим пользователя admin , который настроен по умолчанию:

Добавим нового пользователя, который будет обладать более строгими к взлому реквизитами (логин/пароль). Для этого, нажмите на значок «+» в левом верхнем углу:


Обратите внимание, в поле Group необходимо выбрать full , чтобы предоставить администраторские привилегии для пользователя. После произведенных настроек удаляем пользователя admin и отныне используем только нового пользователя для подключения к интерфейса администрирования.

2. Сервисные порты

В маршрутизаторе Микротик «зашиты» некоторые службы, порты которых доступны для доступа из публичной сети интернет. Потенциально, это уязвимость для Вашего сетевого контура. Поэтому, мы предлагаем перейти в раздел настройки IP Services :


Если вы используете доступ к Mikrotik только по Winbox, то мы предлагаем Вам отключить все сервисы, за исключением winbox и ssh (на всякий случай оставить ssh), а именно:

  • api-ssl
  • www-ssl

Для отключения нажмите красный значок «х». Так как мы оставили SSH доступ к серверу, давайте «засекьюрим» его, сменив порт с 22 на 6022. Для этого, дважды нажмите на сервисный порт SSH и в открывшемся окне укажите настройку:


Нажимаем Apply и ОК .

3. Защита от брут – форса (перебора)

На официальном сайте Mikrotik существуют рекомендации о том, как защитить свой маршрутизатор от перебора паролей по FTP и SSH доступу. В предыдущем шаге мы закрыли FTP доступ, поэтому, если Вы строго следуете по данной инструкции, то используйте только код для защиты от SSH – атак. В противном случае, скопируйте оба. Итак, открываем терминал управления маршрутизатором. Для этого, в правом меню навигации нажмите New Terminal . Последовательно скопируйте указанный ниже код в консоль роутера:

/ip firewall filter #Блокируем атаки по FTP add chain=input protocol=tcp dst-port=21 src-address-list=ftp_blacklist action=drop \ comment="drop ftp brute forcers" add chain=output action=accept protocol=tcp content="530 Login incorrect" dst-limit=1/1m,9,dst-address/1m add chain=output action=add-dst-to-address-list protocol=tcp content="530 Login incorrect" \ address-list=ftp_blacklist address-list-timeout=3h #Блокируем атаки по SSH add chain=input protocol=tcp dst-port=22 src-address-list=ssh_blacklist action=drop \ comment="drop ssh brute forcers" disabled=no add chain=input protocol=tcp dst-port=22 connection-state=new \ src-address-list=ssh_stage3 action=add-src-to-address-list address-list=ssh_blacklist \ address-list-timeout=10d comment="" disabled=no add chain=input protocol=tcp dst-port=22 connection-state=new \ src-address-list=ssh_stage2 action=add-src-to-address-list address-list=ssh_stage3 \ address-list-timeout=1m comment="" disabled=no add chain=input protocol=tcp dst-port=22 connection-state=new src-address-list=ssh_stage1 \ action=add-src-to-address-list address-list=ssh_stage2 address-list-timeout=1m comment="" disabled=no add chain=input protocol=tcp dst-port=22 connection-state=new action=add-src-to-address-list \ address-list=ssh_stage1 address-list-timeout=1m comment="" disabled=no

Создание резервной копии конфигурации

На случай выхода из строя или аварии роутера, необходимо иметь под рукой его конфиг для оперативного восстановления. Сделать его крайне просто: открываем терминал, нажав в меню навигации New Terminal и указываем следующую команду:

Export file=backup2020-02-10_01:01:07

Файл можно обнаружить нажав в меню навигации на раздел Files . Скачайте его себе на ПК, нажав правой кнопкой мыши и выбрав Download


Блокировка доступа к сайта

В рабочее время сотрудники должны работать. Поэтому, давайте заблокируем доступ к развлекательным ресурсам, таким как Youtube, Facebook и Вконтакте. Для этого, перейдите в раздел IP Firewall . Нажимаем на вкладку Layer 7 Protocol и затем нажимаем на значок «+» в левом верхнем углу:


Даем имя нашему правилу, которое будет оперировать на 7 уровне модели OSI, а в разделе Regexp добавляем:

^.+(youtube.com|facebook.com|vk.com).*$

Нажимаем OK и переходим к вкладке Filter Rules и нажимаем значок «+»:


В разделе Chain выбираем Forward. Переходим в том же окне во вкладку Advanced и в поле Layer 7 Protocol выбираем созданное нами правило блокировки:


Переходим во вкладку Action , и там выбираем Action = Drop:


По окончанию настроек нажимаем Apply и OK .

Полезна ли Вам эта статья?

Пожалуйста, расскажите почему?

Нам жаль, что статья не была полезна для вас:(Пожалуйста, если не затруднит, укажите по какой причине? Мы будем очень благодарны за подробный ответ. Спасибо, что помогаете нам стать лучше!

Впрочем, не стоит думать, что проблемы с безопасностью только у Mikrotik, они бывают и у Ubiquiti , не говоря о таких брендах как TP-Link и т.д. Совсем иное дело, что не все уязвимости в публичном доступе, да и не все компании быстро устраняют проблемы.

RouterOS 6.35.8 – Denial Of Service

A vulnerability in the network stack of MikroTik Version 6.38.5 released 2017-03-09 could allow an unauthenticated remote attacker to exhaust all available CPU via a flood of TCP RST packets, preventing the affected router from accepting new TCP connections.

Если Вы хотите научиться настраивать MikroTik, предлагаем пройти . Более подробную информацию Вы можете найти в конце данной публикации.


Суть уязвимости ROS 6.38.5 сводится к возможности удаленной загрузки маршрутизатора пакетами TCP RST (флуд), что влечет за собой загрузку ресурсов CPU до 100% и делает невозможным дальнейший прием пакетов, вызывая отказ в обслуживании – Denial Of Service (DoS).

> system resource monitor cpu-used: 100% cpu-used-per-cpu: 100% free-memory: 8480KiB

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

Способы защиты

В качестве временной меры можно сменить порт Winbox с 8291 на нестандартный. Сделать это можно в разделе в разделе IP – Services. Недостатком данного метода является то, что он никак не защищает от сканирования портов. К слову, в Mikrotik в базовых правилах Firewall вообще нет защиты от сканирования портов. Если вам попадется опытный пользователь, смена порта его не никак остановит.



Наиболее эффективной будет защита с использованием правил Firewall, путем ограничения доступа к порту Winbox только для IP администратора. Сделать это можно при помощи правила:

Ip firewall filter add chain=input action=accept protocol=tcp src-address=ADMIN_IP dst-port=8291 comment=Allow_Winbox

Где ADMIN_IP необходимо заменить на свой IP. При этом, не забудьте запретить доступ к Winbox всем остальным IP.

Для пользователей, использующих маршрутизаторы Mikrotik в домашних целях ничего страшного нет, ведь базовые правила файрволла запрещают доступ к Winbox из WAN (Internet). А вот для больших корпоративных сетей или провайдеров проблема куда более серьезная, ведь действия вредителя могут привести к отказу сети.

Пока уязвимость не устранена, не остается ничего, как ожидать выхода обновления для RouterOS.

Обновлено состоянием на 04-04-2014

На официальном форуме mikrotik продолжается обсуждение данной уязвимости .

Пользователь un1x0d повел тест эксплоита на RB751, hEX lite и CHR (8x Xeon), в результате все три устройства были загружены до 100%, что привело к отказу всех сетевых сервисов. Причем, как отметил un1x0d, уязвимость не зависит от порта и работает с другими портами.

Пользователь McSlash проверил уязвимость на RB951, RB2011, hAp Lite и CCR1036 - во всех услучаях эксплоит сработал. Никакие правила файрволла не помогают. Поддержка Mikrotik пока не признает факт уязвимости. Продолжаем отслеживать развитие событий.

Видеокурс «Настройка оборудования MikroTik» (аналог MTCNA)

Учитесь работать с MikroTik? Рекомендую видеокурс « ». В курсе разобраны все темы из официальной учебной программы MTCNA и много дополнительного материала. Курс сочетает теоретическую часть и практику – настройку маршрутизатора по техническому заданию. Консультации по заданиям курса ведет его автор Дмитрий Скоромнов. Подойдет и для первого знакомства с оборудованием MikroTik, и для систематизации знаний опытным специалистам.

Брутфорс - это когда кто-то пытается, порой долго и упорно, подобрать наш пароль к чему-угодно методом перебора. В Linux для защиты от этого успешно используется fail2ban. В микротике такого удовольствия нет, поэтому мы будем иметь удовольствие создавать защиту от brutforce своими руками.

Полный листинг команд, который вы наверняка видели в официальной wiki (http://wiki.mikrotik.com/wiki/Bruteforce_login_prevention):

add chain=input protocol=tcp dst-port=22 src-address-list=ssh_blacklist action=drop comment="drop ssh brute forcers" disabled=no
add chain=input protocol=tcp dst-port=22 connection-state=new src-address-list=ssh_stage3 action=add-src-to-address-list address-list=ssh_blacklist address-list-timeout=10d comment="" disabled=no
add chain=input protocol=tcp dst-port=22 connection-state=new src-address-list=ssh_stage2 action=add-src-to-address-list address-list=ssh_stage3 address-list-timeout=1m comment="" disabled=no
add chain=input protocol=tcp dst-port=22 connection-state=new src-address-list=ssh_stage1 action=add-src-to-address-list address-list=ssh_stage2 address-list-timeout=1m comment="" disabled=no
add chain=input protocol=tcp dst-port=22 connection-state=new action=add-src-to-address-list address-list=ssh_stage1 address-list-timeout=1m comment="" disabled=no

И в сети много где есть этот наборчик. Я просто чуть-чуть объясню, что он делает.

Идея такова: даем три легитимные попытки в течение короткого времени на коннект по ssh (22/tcp, если у вас другой порт - поставте свой). При четвертой попытке - баним на 10 дней. Имеем право. Итак, по шагам.

1. При установлении нового соединения (connection-state=new) с портом 22/tcp мы запоминаем ip источника и помещаем его в список "ssh_stage1" на 1 минуту:

add chain=input protocol=tcp dst-port=22 connection-state=new action=add-src-to-address-list address-list=ssh_stage1 address-list-timeout=1m comment="" disabled=no

2. Если в течение этой минуты этот "кто-то" (а его мы запомнили в "ssh_stage1") еще раз захочет установить новое соединение с 22/tcp, мы его добавим в список "ssh_stage2", и тоже на 1 минуту:

add chain=input protocol=tcp dst-port=22 connection-state=new src-address-list=ssh_stage1 action=add-src-to-address-list address-list=ssh_stage2 address-list-timeout=1m comment="" disabled=no

3. Если в течение этой минуты этот "кто-то" (теперь он в "ssh_stage2") опять захочет соединиться с 22/tcp, мы его добавляем в список "ssh_stage3" (да, вы угадали, опять на 1 минуту):

add chain=input protocol=tcp dst-port=22 connection-state=new src-address-list=ssh_stage2 action=add-src-to-address-list address-list=ssh_stage3 address-list-timeout=1m comment="" disabled=no

4. Если же он упорный, то что же, мы его на 10 дней добавим в наш "черный список" "ssh_blacklist", ибо нефиг.

add chain=input protocol=tcp dst-port=22 connection-state=new src-address-list=ssh_stage3 action=add-src-to-address-list address-list=ssh_blacklist address-list-timeout=10d comment="" disabled=no

5. А этой командой всех из списка "ssh_blacklist" баним без тени сомнения (обратите внимание, что правило по-умолчанию неактивно):

add chain=input protocol=tcp dst-port=22 src-address-list=ssh_blacklist action=drop comment="drop ssh brute forcers" disabled=yes

В реальности, когда я сделал такую схему и попробовал соединиться из консоли Linux к внешнему ip моего mikrotik, уже со второй попытки (а не с 3 или 4) ip "злоумышленника" попал в список " ssh_blacklist ". Я ssh к микротик не использую, поэтому в моем случае это не смертельно, но если вы в самом деле подключаетесь так удаленно, то сначала может быть неплохо не включать правило (disabled=yes), отвечающее за бан . В список пускай попадают, нет вопросов. Оцените на практике, сколько раз вам требуется подключаться подряд до попадания всписок бана. После проверок активируйте правило бана по списку " ssh_blacklist "! Прошу прощения, что команды длинные, но парсер съедает обратный слеш, так что приходится в одну строку.

Mikrotik - маршрутизатор, роутер, точка доступа.

Как настроить Mikrotik? Как защитить Mikrotik от вражеских вторжений из вне?
Первоначальная настройка Mikrotik — роутера (маршрутизатора). Первоначальная защита Mikrotik.

Для защиты Mikrotik маршрутизатора необходимо:
1. Сменить пароля администратора.
2. Отключить лишние, не востребованные сервисы.
3. Включить NAT
4. Настроить Firewall — организовать фильтрацию и прохождение пакетов.

P.S. после команды setup, R, — роутер сотрёт все настройки, но не пароли, к нему можно подключиться через WinBox по IP — 192.168.88.1

Настройка из консоли:
имя admin, пароль пустой.
Если вы забудете пароль — вас спасёт только полный резет — переустановка маршрутизатора!
Меняем пароль:
>user edit admin password
Открывается редактор, — вводим новый пароль. Для сохранения и ыхода жмём Ctrl+o (контрл и одновременно букву о)
Можно добавить нового пользователя, на всякий случай:
>use add name=mkt password=12345 group=full

Смотрим какие есть интерфейсы:
>interface print


0 X ;;; WAN
ether1 ether 1500 1600 1600
1 X ;;; LAN
ether2 ether 1500 1600 1600

Активируем нужные:
>interface enable 0
>interface enable 1
>interface print
Flags: D — dynamic, X — disabled, R — running, S — slave
# NAME TYPE MTU L2MTU MAX-L2MTU
0 R ;;; WAN
ether1 ether 1500 1600 1600
1 R ;;; LAN
ether2 ether 1500 1600 1600

Смотрим IP:
> ip address print
Для примера возьмём следующие параметры:
Провайдер(интернет) — 195.196.10.50
GW (шлюз) — 195.196.10.49
DNS server — 195.196.11.10, 195.196.12,10
Локальная сеть (внутренняя) — 192.168.18.0/24
Добавляем ip провайдера:
>ip address add address=195.196.10.10/30 interface=ether1
Добавляем локалку:
>ip address add address=192.168.18.0/24 interface=ether2
Смотрим что вышло:
> ip address print
Добавляем шлюз прова:
> ip route add gateway=195.196.10.49
Смотрим:
> ip route print

Добавляем DNS провайдера интернет:
> ip dns set servers=195.196.11.10,195.196.12,10 allow-remote-request=yes

Включить NAT (masquerade):
> ip firewall nat add chain=srcnat action=masquerade out-interface=ether1
После этих настроек у внутренней сети появится интернет.

Настроить Firewall, т.е. необходимо организовать фильтрацию пакетов (цепочки input), и естественно чтобы после защиты ваша сеть смогла работать — организовать прохождение пакетов — это цепочки forward:

P.S Для начала зайдите — через WinBox — IP -> Firewall -> Service Port — отключите всё Disable, оставьте то что необходимо, а именно в нашем случае pptp (VPN server), и если вы хотите задействовать встроенный FTP — ftp

Добавляем правила:
ip firewall filter add chain=input connection-state=invalid action=drop comment=»Drop Invalid connections»
ip firewall filter add chain=input connection-state=established action=accept comment=»Allow Established connections»
ip firewall filter add chain=input protocol=udp action=accept comment=»Allow UDP»
ip firewall filter add chain=input protocol=icmp action=accept comment=»Allow ICMP»
ip firewall filter add chain=input src-address=192.168.0.0/24 action=accept comment=»Allow access from local network»
Следующие два правила — если вы хотите настроить доступ через ваш Mikrotik, в вашу внутреннюю сеть по VPN (pptp server)
Первое — открывает порт 1723, второе разрешает протокол 47(GRE).
ip firewall filter add chain=input action=accept protocol=tcp dst-port=1723 comment=»Allow access to VPN»
ip firewall filter add chain=input action=accept protocol=gre comment=»If you have a VPN (pptp server)»
Следующее правило позволяет подключаться к вашему Mikrotik через WinBox (порт по умолчанию 8291)
P.S Естественно нужно настроить «IP Service LIST» IP -> Services -> IP Service List, щёлкнуть мышкой по строчке winbox, откроется окно редактирования данных -> изменить IP на тот, с которого вы будете подключаться, тоже самое необходимо проделать с SSH и WWW, все остальные сервисы отключить — disable. (ip_address_allow — ваш IP)
ip firewall filter add chain=input action=accept protocol=tcp src-address=ip_address_allow dst-port=8291 comment=»Allow access over WinBox»
ip firewall filter add chain=input action=accept protocol=tcp src-address=ip_address_allow dst-port=22 comment=»Allow access over SSH»
ip firewall filter add chain=input action=accept protocol=tcp src-address=ip_address_allow dst-port=80 comment=»Allow access over WWW»
Если вы хотите задействовать встроенный FTP:
ip firewall filter add chain=input action=accept protocol=tcp src-address=ip_address_allow dst-port=21 comment=»Allow access to FTP»
Всё остальное рубим:
ip firewall filter add chain=input action=drop comment=»Drop reject all other»

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

ip firewall filter add chain=forward protocol=tcp connection-state=invalid action=drop comment=»Drop invalid connections»
ip firewall filter add chain=forward connection-state=established action=accept comment=»Allow already established connections»
ip firewall filter add chain=forward connection-state=related action=accept comment=»Allow related connections»
На всякий случай разрешаем прохождение GRE протокола:
ip firewall filter add chain=forward protocol=gre action=accept comment=»Allow GRE»
Если у вас есть сервер VPN, для запуска RDP (удалённый рабочий стол) разрешить прохождение на порт 3389.
ip firewall filter add chain=forward protocol=tcp dst-port=3389 action=accept comment=»Allow 3389″

Блокируем IP адреса внутренних сетей.
ip firewall filter add chain=forward src-address=0.0.0.0/8 action=drop
ip firewall filter add chain=forward dst-address=0.0.0.0/8 action=drop
ip firewall filter add chain=forward src-address=127.0.0.0/8 action=drop
ip firewall filter add chain=forward dst-address=127.0.0.0/8 action=drop
ip firewall filter add chain=forward src-address=224.0.0.0/3 action=drop
ip firewall filter add chain=forward dst-address=224.0.0.0/3 action=drop

Либо:
ip firewall filter add chain forward protocol=udp action=accept comment=»Allow UDP»
ip firewall filter add chain forward protocol=icmp action=accept comment=»Allow ICMP Ping»
Либо:
Для icmp, udp и tcp трафика создадим цепочки, куда будем сбрасывать нежелательные пакеты:
Создадим переход в новые цепочки
ip firewall filter add chain=forward protocol=tcp action=jump jump-target=tcp
ip firewall filter add chain=forward protocol=udp action=jump jump-target=udp
ip firewall filter add chain=forward protocol=icmp action=jump jump-target=icmp

Создадим правила tcp для цепочке tcp и запретим некоторые порты:
ip firewall filter add chain=tcp protocol=tcp dst-port=69 action=drop comment=»Deny TFTP»
ip firewall filter add chain=tcp protocol=tcp dst-port=111 action=drop comment=»Deny RPC portmapper»
ip firewall filter add chain=tcp protocol=tcp dst-port=135 action=drop comment=»Deny RPC portmapper»
ip firewall filter add chain=tcp protocol=tcp dst-port=137-139 action=drop comment=»Deny NBT»
ip firewall filter add chain=tcp protocol=tcp dst-port=445 action=drop comment=»Deny Cifs»
ip firewall filter add chain=tcp protocol=tcp dst-port=2049 action=drop comment=»Deny NFS»
ip firewall filter add chain=tcp protocol=tcp dst-port=12345-12346 action=drop comment=»Deny NetBus»
ip firewall filter add chain=tcp protocol=tcp dst-port=20034 action=drop comment=»Deny NetBus»
ip firewall filter add chain=tcp protocol=tcp dst-port=3133 action=drop comment=»Deny BackOriffice»
ip firewall filter add chain=tcp protocol=tcp dst-port=67-68 action=drop comment=»Deny DHCP»

Запретим udp порты для цепочки udp:
ip firewall filter add chain=udp protocol=udp dst-port=69 action=drop comment=»Deny TFTP»
ip firewall filter add chain=udp protocol=udp dst-port=111 action=drop comment=»Deny PRC portmapper»
ip firewall filter add chain=udp protocol=udp dst-port=135 action=drop comment=»Deny PRC portmapper»
ip firewall filter add chain=udp protocol=udp dst-port=137-139 action=drop comment=»Deny NBT»
ip firewall filter add chain=udp protocol=udp dst-port=2049 action=drop comment=»Deny NFS»
ip firewall filter add chain=udp protocol=udp dst-port=3133 action=drop comment=»Deny BackOriffice»

Разрешим только необходимые icmp коды для icmp цепочки:
ip firewall filter add chain=icmp protocol=icmp icmp-options=0:0 action=accept comment=»Drop invalid connections»
ip firewall filter add chain=icmp protocol=icmp icmp-options=3:0 action=accept comment=»Dllow established connections»
ip firewall filter add chain=icmp protocol=icmp icmp-options=3:1 action=accept comment=»Allow already established connections»
ip firewall filter add chain=icmp protocol=icmp icmp-options=4:0 action=accept comment=»Allow source quench»
ip firewall filter add chain=icmp protocol=icmp icmp-options=8:0 action=accept comment=»Allow echo request»
ip firewall filter add chain=icmp protocol=icmp icmp-options=11:0 action=accept comment=»Allow time exceed»
ip firewall filter add chain=icmp protocol=icmp icmp-options=12:0 action=accept comment=»Allow parameter bad»
ip firewall filter add chain=icmp action=drop comment=»deny all other types»