Что если в локальной сети разрешены подключения к Вашему Mikrotik (v6.40.5 on RB2011UiAS-2HnD) не только с авторизованных IP адресов: winbox — IP — Services колонка: Available From – указывает, для какого ip адреса или подсети разрешен доступ. 0.0.0.0/0 разрешает доступ с любого IP адреса, а из всей сети в общем, то как ограничить несанкционированные попытки доступа? Правильнее пойти путем правильной настройки, все запрещено кроме явного разрешенного и настроить защиту.
Вот к примеру на официальном сайте Mikrotik присутствуют примеры, как сделать что-то подобие утилиты Fail2Ban средствами самого 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 часа:
Я для себя выработал правило, всегда тестировать все на себе и оформлять как заметки и они являются пошаговыми и действующими.
Так что с 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 соединение, то оно пройдет, т. к. правило на его счет нет.
из скриншота выше видно, что IP адрес пытавшего подключиться заблокирован на 14 дней.
Все проверено и работает. Важно правила потом передвинуть в самый верх где размещаются все разрешенные подключения, а после все запрещенные. Но выставлять порт 8291 неправильно, правильнее сменить его, настроить L2TP или PPTP сервис и подключаться к сети за Mikrotik только через VPN и не использовать проброс порта до конкретных машин.
На этом у меня всё, с уважением автор блога Олло Александр aka ekzorchik.