Разбираю сам настройку Fail2Ban для Mikrotik

Posted by

Что если в локальной сети разрешены подключения к Вашему (v6.40.5 on RB2011UiAS-2HnD) не только с авторизованных IP адресов: winbox — IP — Services колонка: Available From – указывает, для какого ip адреса или подсети разрешен доступ. 0.0.0.0/0 разрешает доступ с любого IP адреса, а из всей сети в общем, то как ограничить несанкционированные попытки доступа? Правильнее пойти путем правильной настройки, все запрещено кроме явного разрешенного и настроить защиту.

Вот к примеру на официальном сайте Mikrotik присутствуют примеры, как сделать что-то подобие утилиты средствами самого Mikrotik.

К примеру, данными правилами обозначается, что если производилось 10 ошибочных ответов в течении одной минуты на FTP подключение к Mikrotik, то блокировка IP совершаемого неравноправные действия на 3 часа: (3h,3d,3w)

[admin@MikroTik] > ip firewall filter add chain=input protocol=tcp dst-port=21 src-address-list=ftp_blacklist action=drop comment="Drop FTP Brute forces"

[admin@MikroTik] > ip firewall filter add chain=output action=accept protocol=tcp content="530 Login incorrect" dst-limit=1/1m,9,dst-address/1m

[admin@MikroTik] > ip firewall filter add chain=output action=add-dst-to-address-list

[admin@MikroTik] > ip firewall filter add chain=output action=add-dst-to-address-list protocol=tcp content="530 Login incorrect" address-list=ftp_blacklist address-list-timeout=3h

Когда кто-то подключается с неправильной связкой логина и пароля, то в на консоль выдаются сообщения:

[admin@MikroTik] > 11:24:05 echo: system,error,critical login failure for user aollo from 10.7.8.108 via ftp

[admin@MikroTik] > 11:24:14 echo: system,error,critical login failure for user f from 10.7.8.108 via ftp

[admin@MikroTik] > 11:24:22 echo: system,error,critical login failure for user s from 10.7.8.108 via ftp

А теперь если автоматизировать BruteForce атаку на Mikrotik к протоколу FTP:

aollo@work:~$ sudo apt-get install hydra -y

aollo@work:~$ cd Documents/test/

aollo@work:~/Documents/test$ hydra -R

aollo@work:~/Documents/test$ hydra -l admin -P hak5.txt ftp://10.7.9.165

файлы паролей можно составить самим где каждый пароль с новой строки или же скачать по ссылке: https://downloads.skullsecurity.org/passwords/

если подбор пароля был прерван, то чтобы начать с того же места следует просто использовать ключ «-R», но для этого обязательно в каталоге где запускаем утилиту hydra должен быть файл hydra.restore:

aollo@work:~/Documents/test$ file hydra.restore

hydra.restore: FoxPro FPT, blocks size 0, next free block index 1215915122

В итоге на Mikrotik сработают добавленные правила и появиться запись о блокировке IP адреса атакующего на 3 часа:

Нарушитель заблокирован через Fail2Ban on MikrotikЯ для себя выработал правило, всегда тестировать все на себе и оформлять как заметки и они являются пошаговыми и действующими.

Так что с SSH подключением? Если попытки повторяются то блокировка на 10дней

[admin@MikroTik] > ip firewall filter add chain=input protocol=tcp dst-port=22 src-address-list=ssh_blacklist action=drop comment="drop ssh brute forcers" disabled=no

[admin@MikroTik] > ip firewall filter 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

[admin@MikroTik] > ip firewall filter 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

[admin@MikroTik] > ip firewall filter add chain=input protocol=tcp dst-port connection-state=new src-address-list=ssh_stage1 action=add-src-to-address-liss-list=ssh_stage2 address-list-timeout=1m comment="" disabled=no

[admin@MikroTik] > ip firewall filter 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

Что делают команды выше:

Происходит первое соединение (connection-state=new) с портом 22/tcp, я его запоминаю и помещаю в список «ssh_stage1» на 1 минуту, Если в течение этой минуты кто-то еще раз хочет установить новое соединение с 22/tcp, то добавляем его в список «ssh_stage2» также на 1 минуту. И еще раз так то в список «ssh_stage3» и так же на одну минуту. Если данный кто пытался все еще настаивает то блокирую его на 10 дней.

aollo@work:~/Documents/test$ hydra -l admin -P hak5.txt ssh://10.7.9.165

Подбираешь пароль - блокируюТак а что с подключением через WinBOX:

/ip firewall filter add action=drop chain=input comment="Bruteforce login prevention(Winbox: droop Winbox brute forcers)" dst-port=8291 protocol=tcp src-address-list=winbox_blacklist

/ip firewall filter add action=add-src-to-address-list address-list=winbox_blacklist address-list-timeout=15d chain=input comment="Bruteforce login prevention(Winbox: stage3 to winbox_blacklist)" connection-state=new dst-port=8291 protocol=tcp src-address-list=winbox_stage_3

/ip firewall filter add action=add-src-to-address-list address-list=winbox_stage_3 address-list-timeout=1m chain=input comment="Bruteforce login prevention(Winbox: stage2 to stage3)" connection-state=new dst-port=8291 protocol=tcp src-address-list=winbox_stage_2

/ip firewall filter add action=add-src-to-address-list address-list=winbox_stage_2 address-list-timeout=6h chain=input comment="Bruteforce login prevention(Winbox: stage1 to stage2)" connection-state=new dst-port=8291 protocol=tcp src-address-list=winbox_stage_1

/ip firewall filter add action=add-src-to-address-list address-list=winbox_stage_1 address-list-timeout=12h chain=input comment="Bruteforce login prevention(Winbox: stage1)" connection-state=new dst-port=8291 protocol=tcp

На заметку: если в правилах выше заменить/добавить порт 8291 на 1723, то можно защитить и PPTP подключение. Проверено работает. Пробую с мобильника организовать PPTP соединение и не получается, мой внешний IP занес в бан лист на указанное в правилах время, но если попытаться с мобильника организовать L2TP/IPSEC соединение, то оно пройдет, т. к. правило на его счет нет.

Подключение через Winbox также блокируются если пытаютсяиз скриншота выше видно, что IP адрес пытавшего подключиться заблокирован на 14 дней.

Все проверено и работает. Важно правила потом передвинуть в самый верх где размещаются все разрешенные подключения, а после все запрещенные. Но выставлять порт 8291 неправильно, правильнее сменить его, настроить L2TP или PPTP сервис и подключаться к сети за Mikrotik только через VPN и не использовать проброс порта до конкретных машин.

На этом у меня всё, с уважением автор блога Олло Александр aka ekzorchik.