Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
abills:docs:nas:mikrotik:fail2ban [2016/06/21 08:07] anton |
abills:docs:nas:mikrotik:fail2ban [2016/09/02 09:29] (текущий) anton [Mikrotik: Блокировка брутфорса] |
||
---|---|---|---|
Строка 12: | Строка 12: | ||
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 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.0.0.0/8 | + | 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 |
</code> | </code> | ||
Скрипт работает в четыре стадии: \\ | Скрипт работает в четыре стадии: \\ | ||
- | **1-я стадия.** Если есть созданное соединение и это не наша внутренняя сеть **(src-address=!172.0.0.0/8)**, добавить IP в список ''ssh_stage1'' на 20 секунд \\ | + | **1-я стадия.** Если есть созданное соединение и это не наша внутренняя сеть **(src-address=!172.16.0.0/13)**, добавить IP в список ''ssh_stage1'' на 20 секунд \\ |
**2-я стадия.** Если есть созданное соединение и адрес уже в списке ''ssh_stage1'', добавить в ''ssh_stage2'' на 20 секунд \\ | **2-я стадия.** Если есть созданное соединение и адрес уже в списке ''ssh_stage1'', добавить в ''ssh_stage2'' на 20 секунд \\ | ||
**3-я стадия.** Если есть созданное соединение и адрес уже в списке ''ssh_stage2'', добавить в ''ssh_stage3'' на 20 секунд \\ | **3-я стадия.** Если есть созданное соединение и адрес уже в списке ''ssh_stage2'', добавить в ''ssh_stage3'' на 20 секунд \\ | ||
**4-я стадия.** Если есть созданное соединение и адрес уже в списке ''ssh_stage3'', добавить в ''ssh_blacklist'' на 1 час \\ | **4-я стадия.** Если есть созданное соединение и адрес уже в списке ''ssh_stage3'', добавить в ''ssh_blacklist'' на 1 час \\ | ||
- | Все пакеты с src-address, которые в списке ''ssh_blacklist'' блокируются | + | Все пакеты с src-address, которые в списке ''ssh_blacklist'' сбрасываются |
+ | |||
+ | Таким образом правильность ввода пароля не проверяется, а даётся 3 попытки ввести пароль (3 раза создать соединение на указаный порт) не чаще, чем раз в 20 с. | ||
+ | |||
+ | ==== Ограничение количества соединений winbox ==== | ||
+ | <code> | ||
+ | /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-address=!172.16.0.0/13 | ||
+ | </code> | ||
- | Таким образом правильность ввода пароля не проверяется, а даётся 3 попытки ввести пароль (3 раза создать соединение на указаный порт) |