Пытаюсь настроить условный fail2ban на Mikrotik CCR-1016, исходя из официальной документации
https://wiki.mikrotik.com/wiki/Bruteforce_login_pr... :
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
(помечаем любые попытки залогиниться в список ssh_stage1 на 1 минуту)
2) 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
(вторую попытку подключения c ip заносим со списка ssh_stage1 в список ssh_stage2 также на 1 минуту)
3) 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
(третью попытку подключения также заносим из ssh_stage2 в ssh_stage3 и также на 1 минуту)
4) 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
(четвертая и последующие попытки должны отправляться в банлист на 10 дней)
5) add chain=input protocol=tcp dst-port=22 src-address-list=ssh_blacklist action=drop \
comment="drop ssh brute forcers" disabled=no
(собственно, бан всех, кто в ssh_blacklist)
Проблема заключается в том, что даже при санкционированном подключении по ssh у меня вырисовывается картина - честный ip попадает во все списки, в т.ч. и в бан-лист (да, у меня не стандартный порт 22) :
Добавил даже пятое правило-костыль, аналог задержки, но толку ноль.
Думается, что тут надо как-то отслеживать факт цивильного подключения и пропускать дальнейшую обработку пакетов по адресным листам, но что прикажете делать, если даже копипаста с официальной документации не работает. Пробовал обновлять прошивку, не помогает.