Skip to end of metadata
Go to start of metadata

В консоли:

/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 с.

Ограничение количества соединений winbox

/ip firewall filter

add chain=input protocol=tcp dst-port=8291 src-address-list=winbox_blacklist action=drop comment="drop winbox bruteforces"

add chain=input protocol=tcp dst-port=8291 connection-state=new src-address-list=winbox_stage3 action=add-src-to-address-list address-list=winbox_blacklist address-list-timeout=1h

add chain=input protocol=tcp dst-port=8291 connection-state=new src-address-list=winbox_stage2 action=add-src-to-address-list address-list=winbox_stage3 address-list-timeout=20s

add chain=input protocol=tcp dst-port=8291 connection-state=new src-address-list=winbox_stage1 action=add-src-to-address-list address-list=winbox_stage2 address-list-timeout=20s

add chain=input protocol=tcp dst-port=8291 connection-state=new action=add-src-to-address-list address-list=winbox_stage1 address-list-timeout=20s src-add
  • No labels