Возник вопрос защиты микротика от попыток подбора пароля.
Поиск на просторах интернета принес много вариантов.
Основная идея в них - добавить ip адрес в blacklist после некоторого количества неудачных попыток.
Вот примеры таких конфигураций:
http://matthewsiemens.com/blocking-ssh-brute-force-attacks-in-mikrotik-routeros/
http://www.helpset.ru/как-настроить-и-защитить-mikrotik-от-перебора
Как видим, конфигурация достаточно "многословна".
Хотелось чего-то попроще, желательно без работы с address-list.
Придумался следующий вариант:
Первое правило разрешает устанавливать не более одного нового соединения (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). Но это уже совсем другая история.
Поиск на просторах интернета принес много вариантов.
Основная идея в них - добавить 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). Но это уже совсем другая история.
Комментариев нет:
Отправить комментарий