Fail2ban 0.10: Новые возможности. Тест открыт

в 13:50, , рубрики: fail2ban, IPv6, информационная безопасность, Настройка Linux, Серверное администрирование, системное администрирование

Это анонс новой версии fail2ban (пока тестовая альфа-ветка), в которой помимо многих других улучшений и вкусностей, хоть и с опозданием, все же появилась давно запланированная поддержка IPv6.
Время, будь оно не ладно — летит с бешеной скоростью.

Коротко перечень нового, уже вошедшего (и с большой вероятностью вольющегося в скором времени) в fail2ban версии 0.10:

  • конечно же поддержка IPv6 (пока только для iptables, iptables-ipset, firewallcmd, pf)
  • новый синтаксис для псевдо-условных разделов в файлах конфигурации, используется для условного замещения и интерполяции параметров для различных хост-типов, пример [Init?family=inet6] (в настоящее время пока используется только для поддержки IPv6)
  • существенное увеличение производительности fail2ban по сравнению с версией 0.9.x
  • предотвращение регрессии производительности с ростом числа IP адресов (failure и ban)
  • предотвращение ситуации out of memory, при большом количестве failure от многих IPs (maxEntries), а также оптимизация использования памяти в менеджере FailManager
  • (str2seconds) удобная настройки времени в конфигурации, т.е. возможно использование 1h вместо 3600 или 1d вместо 86400, и т.д.
  • (seekToTime) — быстрый старт, предотвращает долгое чтение больших файлов в первый раз после запуска службы
  • умное кэширование всего и вся (dnsToIp, ipToName, пре-интерполяции параметров вызова action и т.д.)
  • [cкоро] слияние с моей incremental версией (ветка ban-time-incr)
  • [cкоро] настраиваемый изменяемый бан-фактор (новая версия ban-time-incr), например гео-зависимость IP-адреса, ниже пример конфигурации, где IP-адрес в десять раз раньше будет считается "плохим", если страна не Россия)
    geo.country = RU:1 default:10
  • [cкоро] автоматическая настраиваемая блокировка под-сетей
  • [cкоро] полностью переписанный client-server (возможность исполнения в режиме foreground, покрытие тестами, новая команда «restart» в дополнение к «reload», изменяемый уровень детализации до heavydebug при старте и другие улучшения)

Существенный рост производительности в fail2ban версии 0.10 можно грубо оценить в следующих цифрах:

Оценка / Версия 0.9.4 0.10
Среднее время реакции (Задержка нахождения failure) 200 мс 15 мс
Среднее время до блокировки (Задержка блокировки) 150 мс 10 мс
Максимальное время реакции (Задержка нахождения failure) 500 мс 30 мс
Максимальное время до блокировки (Задержка блокировки) 1000 мс 20 мс
Средняя скорость блокировки 6 IP/сек 170 IP/сек
Рост задержки блокировки (Регрессия) 100 мс/1000 IPs 5 мс/1000 IPs

На оценку довольно сильно влияет множество параметров, таких как активность (паразитного) логгирования, качество (и количество) регулярных выражений (фильтр fail2ban), скорость вызова и тип banaction, lookups-параметры типа usedns и т.д. и т.п. Однако при прочих равных, в близком к идеалу случае, получаются примерно такие цифры.

Для тех кто-читал мою статью "Fail2ban [incremental]: Лучше, быстрее, надежнее" или пользуется этой "инкрементальной" версией — эти ветки пока к сожалению еще не слились (постараюсь закончить в ближайшее время).

Так же планируется автоматическая настраиваемая блокировка под-сетей (т.к. особенно актуально для IPv6-адресов). Просто ложить в бан по отдельности 216 (или 65.536) IPv6-адресов при наличии у злоумышленника под-сети X::/112 как-то не комильфо (умолчим уже про под-сети высшего порядка).
Надеюсь до релиза 0.10 этот функционал все-таки допилится.

Я повторюсь, 0.10 — это пока тестовая ветка. Все кто хочет принять участие в тестировании или доработать например поддержку других action — добро пожаловать.

Скачать:
https://github.com/fail2ban/fail2ban/archive/0.10.zip

Гит:
git clone -b 0.10 https://github.com/fail2ban/fail2ban.git

Автор: sebres

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js