Это старая версия документа.
Mikrotik: Блокировка брутфорса
В консоли:
/ip firewall filter add chain=input protocol=tcp dst-port=22 src-address-list=ssh_blacklist action=drop comment="drop ssh bruteforces" 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=1h 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=20s 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=20s add chain=input protocol=tcp dst-port=22 connection-state=new action=add-src-to-address-list address-list=ssh_stage1 address-list-timeout=20s src-address=!172.16.0.0/13
Скрипт работает в четыре стадии:
1-я стадия. Если есть созданное соединение и это не наша внутренняя сеть (src-address=!172.16.0.0/13), добавить IP в список ssh_stage1
на 20 секунд
2-я стадия. Если есть созданное соединение и адрес уже в списке ssh_stage1
, добавить в ssh_stage2
на 20 секунд
3-я стадия. Если есть созданное соединение и адрес уже в списке ssh_stage2
, добавить в ssh_stage3
на 20 секунд
4-я стадия. Если есть созданное соединение и адрес уже в списке ssh_stage3
, добавить в ssh_blacklist
на 1 час
Все пакеты с src-address, которые в списке ssh_blacklist
сбрасываются
Таким образом правильность ввода пароля не проверяется, а даётся 3 попытки ввести пароль (3 раза создать соединение на указаный порт) не чаще, чем раз в 20 с.