воскресенье, 2 августа 2015 г.

Mikrotik защита от buteforce в 2 строчки

Возник вопрос защиты микротика от попыток подбора пароля.
Поиск на просторах интернета принес много вариантов.
Основная идея в них - добавить ip адрес в blacklist после некоторого количества неудачных попыток.

Вот примеры таких конфигураций:
http://matthewsiemens.com/blocking-ssh-brute-force-attacks-in-mikrotik-routeros/
http://www.helpset.ru/как-настроить-и-защитить-mikrotik-от-перебора

Как видим, конфигурация достаточно "многословна".
Хотелось чего-то попроще, желательно без работы с address-list.

Придумался следующий вариант:

/ip firewall filter
add chain=input comment="prevent bruteforce ssh and winbox" connection-state=new dst-limit=1/1m,0,src-address/5m dst-port=22,8291 per-connection-classifier=src-address:1/0 protocol=tcp

add action=reject chain=input comment="prevent bruteforce ssh and winbox" connection-state=new dst-port=22,8291 protocol=tcp reject-with=tcp-reset

Первое правило разрешает устанавливать не более одного нового соединения (connection-state=new) с уникального ip адреса в минуту. Т.е. после неудачной попытки аутентификации сервер (ssh или winbox) закрывает соединение. Следующая попытка соединения попадает в правило №2 и клиент получает reject. Через минуту после первой попытки начнет работать правило №1. И опять разрешит попытку подключиться по ssh или winbox.

Приведенные выше правила действуют не столь радикально, как блокировки через address-list. Однако, они позволяют сильно замедлить брутфорс.

Давайте проверим это на практике.
Для тестового bruteforce используем классический Intercepter NG.
Проверяем ssh. Дефолтная настройка 5 потоков.
На микротик разрешен доступ по ssh.
За 5 минут Intercepter проверил 1600 паролей.

Добавляем правила в firewall и повторяем тест.
За те же 5 минут удалось проверить 30 паролей.


P.S. Эти правила не помогут против распределенного bruteforce (с разных ip). Но это уже совсем другая история.