Winbox — самое популярное средство управления устройствами Mikrotik. Оно привлекает внимание злоумышленников. Поэтому важно уметь распознавать попытки ввода неправильного пароля и ограничивать доступ после определённого количества неудачных попыток.Мы считаем, что для легального пользователя допустимо предоставить три попытки входа в систему в течение одной минуты. Это соответствует ожидаемому поведению обычного пользователя, который после неудачной попытки проверяет раскладку клавиатуры или обращается к записи пароля. Однако если попытки входа повторяются слишком часто, это может указывать на возможную атаку.

Обнаружить неверный ввод пароля довольно легко. Маршрутизатор явно указывает в ответном пакете: «Invalid user name or password» («Неверное имя пользователя или пароль»).

invalid user name or password

Получатели таких пакетов немедленно становятся объектами нашего пристального внимания. Перед тем как начать действовать, нужно зафиксировать инцидент. Для этого следует открыть IP – Firewall – Mangle и создать правило: Chain – output, Protocol – tcp, Src.Port – 8291.

Затем на вкладке Advanced добавить условие: Content – invalid user name or password. На вкладке Action указать действие jump и в поле Jump Target задать имя пользовательской цепочки, в нашем случае FB-WB (Fail2Ban Winbox).

А на закладке Action укажем действие jump и в поле Jump Target укажем имя пользовательской цепочки, в нашем случае Fail2Ban_Winbox.

/ip firewall mangle
add action=jump chain=output content="invalid user name or password" jump-target=Fail2Ban_Winbox protocol=tcp src-port=8291

Это правило добавляет в таблицу mangle новое правило для перенаправления пакетов, содержащих сообщение об ошибке «invalid user name or password» (неверное имя пользователя или пароль), в цепочку Fail2Ban_Winbox. Если пакет соответствует этому правилу, он перенаправляется в данную цепочку..

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

Также в IP — Firewall — Mangle создадим правило: Chain — Fail2Ban_Winbox. На вкладке Advanced укажем Dst. Address List — connection3, а в Action — add dst to address list, Address List — bruteforce_blacklist, Timeout — 1d 00:00:00.

Mikrotik-brute-force-004.pngВ терминале:

/ip firewall mangle
add action=add-dst-to-address-list address-list=bruteforce_blacklist address-list-timeout=1d chain=Fail2Ban_Winbox dst-address-list=connection3

Этим правилом мы анализируем адрес назначения ответного пакета роутера. Если он присутствует в списке connection3, то есть если пользователь уже трижды пытался ввести неверный пароль, то мы отправляем этот пакет в список bruteforce_blacklist сроком на одни сутки.

Затем аналогичным образом создадим правила для заполнения остальных списков. Если адрес находится в списке connection2, то добавляем его в список connection3 на одну минуту. Если же адрес присутствует в connection1, то добавим его на минуту в connection2. Если адреса нет ни в одном из этих списков, то поместим его в connection1 тоже на одну минуту.

/ip firewall mangle
add action=add-dst-to-address-list address-list=connection3 address-list-timeout=1m chain= Fail2Ban_Winbox dst-address-list=connection2
add action=add-dst-to-address-list address-list=connection2 address-list-timeout=1m chain= Fail2Ban_Winbox dst-address-list=connection1
add action=add-dst-to-address-list address-list=connection1 address-list-timeout=1m chain= Fail2Ban_Winbox

Для проверки правильности работы несколько раз пытаемся указать неверные учетные данные и наблюдаем как адрес атакующего последовательно заполняет списки от connection1 до bruteforce_blacklist

Осталось только заблокировать атакующих. Перейдем в IP — Firewall — Raw и создадим правило: Chain — Prerouting. Затем на вкладке Advanced добавим Src. Address List — bruteforce_blacklist и на вкладке Action укажем действие drop.

 

/ip firewall raw
add action=drop chain=prerouting src-address-list=bruteforce_blacklist

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

От root

Один комментарий к “Защита Winbox от BruteForce-атак”

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *