LINUX.ORG.RU
ФорумAdmin

Бесконечная игра в кошки мышки fail2ban'a

 


1

1

Здравствуйте!

Собственно, может это и не проблема особо, но тем не менее... У меня стоит Postfix на компьютере. Почти уже год назад, я установил себе fail2ban после множества неудачных попыток ботов залогиниться. В принципе, fail2ban работает. Но как то странно (в моем понимании). Он сначала банит IP, потом через неско часов разбанивает. Через пол-часа опять банит тот же IP и т.д. и т.д. и т.д. Некоторые боты пытаются залогиниться каждые 20 минут, чтобы избежать бана.

Load average сервера, вроде бы, отличный. В районе 0,20

Мой вопрос состоит в том... Насколько всё это нормально или мне нужно что-то с этим обязательно делать? Или же попытки бота залогиниться каждые 20 минут для сервака настолько непринципиальны, что мне лучше это просто игнорировать?

Ответ на: комментарий от targitaj

В принципе, можно всё. Но вопрос был не в том, как это исправить, а в том, стоит ли заморачиваться.

Бог с ним, пусть банит как ему вздумается. Меня лишь немного напрягает, то что он вообще не банит то, что реже пытается залогиниться. Иногда вообще не банит. По настроению. Было штук 20 попыток за одну минуту. Бота не забанил fail2ban, а было написано too many errors.

papakota
() автор топика

Можешь сам оценить насколько быстро бот сможет подобрать пароль при темпе 1 пароль в 20 минут. Я бы забил.

KivApple ★★★★★
()
Ответ на: комментарий от papakota

Это не «по настроению» - у fail2ban есть параметры, которые отвечают за то, через сколько неудачных попыток логина банить (параметр maxretry), сколько времени должно пройти между попытками чтоб они считались именно «попыткой взлома» (параметр findtime) и на какое время банить (параметр bantime). Настройте это по своему вкусу.

И к вопросу из стартпоста:

Или же попытки бота залогиниться каждые 20 минут для сервака настолько непринципиальны, что мне лучше это просто игнорировать?

Вам решать. Мне было бы стремно знать что кто-то там перебирает пароли, я бы блокировал. Да, выше правильно сказали что нормальный пароль (а не «password») будет подбираться такими темпами очень и очень долго, но оно вам надо?

alozovskoy ★★★★★
()
Последнее исправление: alozovskoy (всего исправлений: 2)
Ответ на: комментарий от alozovskoy

Спасибо за советы!

Я мог бы установить findtime на уровне двух часов, так чтобы четвертая попытка была бы где-то в течении полутора часов и бан бы заработал. Но не знаю, умно ли ставить большой параметр для findtime?

papakota
() автор топика
Ответ на: комментарий от papakota

Почему нет? По большому счету то серверу все равно, сколько там время стоит (имею ввиду с точки зрения нагрузки и утилизации ресурсов).

Вообще стоит смотреть на то, что у вас там за трафик, идеального совета нет - вот у меня есть vps, на которой bantime стоит сутки, и никому не мешает - пароли подбирают боты из Китая, пользователям этой страны мой сервис не нужен, да и вообще у меня тут ничего коммерческого, just for fun, если кто-то из лгитимных пользователей не получит доступа то в целом ничего страшного. Если вы выставляете аналогичные параметры и к вашему серверу подключаются сто человек с одного адреса (ну какая-нибудь организация, все равно, пример абстрактный) и кто-то из них вдруг забудет пароль (или специально будет досить сервер) - все остальные 99 человек тоже потеряют доступ к сервису.

alozovskoy ★★★★★
()
Последнее исправление: alozovskoy (всего исправлений: 1)

Он сначала банит IP, потом через неско часов разбанивает. Через пол-часа опять банит тот же IP

Это простой и примитивный алгоритм. [здесь=https://habrahabr.ru/post/238303/]здесь кто-то писал патч, чтобы приделать ему инкрементальные баны, но попало ли оно в апстрим - хз.

Вот здесь - точно есть. См. опции incr_findtime/incr_bantime.

anonymous
()
Ответ на: комментарий от alozovskoy

Я поставил так в файле /etc/fail2ban/jail.local

2016-10-11 05:48:09,056 fail2ban.filter : INFO Set maxRetry = 2
2016-10-11 05:48:09,057 fail2ban.filter : INFO Set findtime = 5400
2016-10-11 05:48:09,057 fail2ban.actions: INFO Set banTime = 86400

Я так понимаю, что теперь те боты, что пытаются раз в 20 минут тоже будут забанены на каком то этапе. А те, что часто пытаются, будут баниться, как и раньше, когда findtime был 600, а maxRetry был 4. Так?

papakota
() автор топика
Ответ на: комментарий от alchemist

Спасибо за информацию!

Но я просто хочу поймать тех, что редко пытаются. И хотя, может, от них нет особо и ущерба системе, но тем не менее.

papakota
() автор топика
Ответ на: комментарий от KivApple

Точно, простая арифметика подсказывает, что если пароль сложнее чем «123123123», то подберет он его не раньше, чем столкнутся Млечный Путь и Андромеда, а после сего события пароль ему уже нужен не будет.

slon
()

есть форк f2b который умеет увеличивать время повторного бана.

vel ★★★★★
()
Ответ на: комментарий от slon

Плюсую. Иногда интересно бывает посмотреть, что подбирают, да это на 99.9999999% словарь. Я вообще обычный connlimit пользую, без всяких сабжей, и только по итогам запредельных значений добавляю в пожизненный бан самописным скриптом.

anc ★★★★★
()
Ответ на: комментарий от slon

Меня не взлом сервера беспокоит, а лишняя нагрузка и грязные логи. Чисто психологически это неприятно. Зачем это надо?

papakota
() автор топика
18 марта 2018 г.

Я использую вот это решение: http://blog.shanock.com/fail2ban-increased-ban-times-for-repeat-offenders/ Там фильтр читает ЛОГ самого fail2ban'a и методом перебора увеличивает время БАНа для особо «талантливых№ ... Чем чаще IP появляется в БАНе, тем дольше ему там жить. Сначала день, потом неделя, месяц, пол года, год, ну или потом можно настроить и навсегда... bantime = -1

Ну в общем, я использую, мне помогает.

OlegKor
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.