Обновить
Комментарии 22
[cкоро] слияние с моей incremental версией (ветка ban-time-incr)

Хорошие новости, всё жду когда уже дойдёт и до этой фичи. Два года, считай.

Можно было все два года юзать (я ветку постоянно держал стабильной, и регулярно сливал с критичными изменениями из master).

[done] Слил в этой ветке — https://github.com/sebres/fail2ban/tree/0.10-full


гит:


git clone -b 0.10-full https://github.com/sebres/fail2ban.git

гит для дебианов:


git clone -b 0.10-full-debian https://github.com/sebres/fail2ban.git

Если после установки python setup.py install вдруг не поставился /etc/init.d/fail2ban:


cp ./files/debian-initd /etc/init.d/fail2ban

Дальше просто включить "инкремент" в default или для конкретных jail:


# /etc/fail2ban/jail.local ...

[DEFAULT]
bantime.increment = true
...
[nginx]
enabled = true
...
[pam-generic]
enabled = true
Скажите, а nftables уже полноценно поддерживается?

Ну как бы и в 9-й (соответственно в 10-й ветке) уже полгода как, см. https://github.com/fail2ban/fail2ban/pull/1292
Вопрос только, что вы имеете ввиду под словом "полноценно"? ;)

О, похоже, этот мерж я упустил из виду. Спасибо.
Их уже можно в полноценный продакшен выпускать?
у меня знакомые сетевики говорят что в серверный продакшен — ещё раано
думаю в продакшн еще весьма рано, но уже есть много вкусностей которые хотелось бы ввести в бой.
Скажите, когда можно ожидать централизованное управление для большого количества серверов? Вроде недавно что-то мелькало про это на хабре.
а puppet вам чем не угодил?
Речь идет, например, о возможности иметь единую базу «плохих» IP без велосипедов и костылей.

Сразу так и не скажу, в планах есть. Пока, к сожалению — только костыли...

С Debian дружит? А то в прошлой версии был баг, нужно было танцевать с бубном. Я в первый раз вроде справился. Во-второй — не получилось :)
в прошлой версии был баг

Баг-репорт?


Debian — мажорная система для fail2ban. Начиная с того, что все тест-кейсы на нем бегают и заканчивая тем, что это primary-система более половины разрабов (включая меня).


Не нужно там было никогда "танцевать с бубном", от слова совсем. Ну а для тех у кого руки не оттуда растут у кого с "готовкой" проблемы (типа умею, но только из коробки в микроволновку если), yarikoptic делает готовые пакеты на neurodebian — http://neuro.debian.net/pkgs/fail2ban.html. Ставьте оттуда на здоровье.


Десятку он кстати тоже собирался там выложить альфой. Как появится отпишусь здесь.

Так в комментариях же к той статье было: https://habrahabr.ru/post/238303/#comment_8213663
На одном сервере установить получилось. На другом — с этим файлом fail2ban.init — нет. Сложно сказать, почему. Признаю проблемы с «готовкой», далёк я от администрирования никсов.
В любом случае спасибо за ваш труд и за ссылку на neurodebian тоже :)
Только могу добавить что для тех кто хочет получить наиболее гладкую инсталяцию я рекомендую устанавливать стабильную версию которая идёт с вашим дистрибутивом (например стабильным Debian) — может она будет немного старовата, но зато установка и использование должно быть гладким как по маслу. Я заливаю в NeuroDebian только после того как заливаю в Debian, но в Debian пакет проживает стабилизацию пока оказывается в стабильном релизе OS.
Кстати, а меня интересует внутренняя идеология работы ф2б.
Например — как идет навешивание правил на логи?
вот, допустим, у меня на один лог опача навешивается с десяток фильтров.
А если на хосте шаредхостинга тысячи виртуалок и на каждый лог навешивается по десятку фильтров?

т.е. то что апач пишет тысячу логов вас не смущает?.. На самом деле, оно не сильно страшно, пока те логи из системного кэша не вымываются или если backend типа systemd и подобных. Конечно качество фильтров и количество "паразитных" (для
f2b) строк в логе, т.е. тех что не failure, сильно влияет на скорость и нагрузку, поэтому f2b можно и нужно настраивать… например писать failure в отдельный лог, который скармливаем f2b. Да много чего можно сделать...

У меня апач пишет 4 лога — access+error на 80 + ssl раздельно.
Кстати, как можно настроить логирование ф2бан чтобы было видно из-за какого лога айпишник влетел в банилку?
grep $ip /var/log/apache/* когда в системе тысячи логов — может затянуться, а понять почему его банит — нужно и быстро.

Если вы пользуете fail2ban от 0.9 (с поддержкой sqlite) то могу предложить например такой велосипед — скрипт показывающий все failures с одного IP. Т.е. в этом случае в логи лезть практически не надо.


?sudo? sudo python -c "ip='1.2.3.4'; db='/var/lib/fail2ban/fail2ban.sqlite3';  import sys, logging; logging.basicConfig(stream=sys.stdout, level=logging.ERROR); from fail2ban.server.database import Fail2BanDb; db = Fail2BanDb(db); t = db.getBansMerged(ip=ip); print(('%d attempts, matches:\n  %s' % (t.getAttempt(), '\n  '.join(t.getMatches())) ) if t else 'NOT FOUND')"

Если без велосипедов или нет поддержки db, пока только либо разделив все логи по разным jail (с одним и тем же фильтром), соответственно сразу зная лог, откуда уши растут.


Либо используя какой-нибудь дополнительный action, например определив action = %(action_mwl)s после бана f2b вам отправит письмо с информацией чего наделал этот IP (см. action_mwl в jail.conf).
В принципе ничего не мешает создать свою action на примере того же action.d/blocklist_de.conf (искать тэг <matches> который содержит все это добро), что бы например дополнительно писать всю информацию банненых IP в один файл.


Вообще-то выглядит как новый FR, для чего-нибудь типа fail2ban-client status ..., как дополнительный flavor… Добавте FR-issue, может и реализуется когда (в принципе ничего сложного не вижу).

Добрый день! Хотелось бы узнать как там у вас состояние fail2ban 0.10. Когда можно ожидать на neurodebian альфа-пакетов? Учитывая сколько вы вкусного обещали хочется на ряде серверов на него перейти(хотя бы там, где IPv6 широко использую). Или пробовать самому пакетить и накатывать?
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.