Comments 22
Можно было все два года юзать (я ветку постоянно держал стабильной, и регулярно сливал с критичными изменениями из 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
Ну как бы и в 9-й (соответственно в 10-й ветке) уже полгода как, см. https://github.com/fail2ban/fail2ban/pull/1292
Вопрос только, что вы имеете ввиду под словом "полноценно"? ;)
у меня знакомые сетевики говорят что в серверный продакшен — ещё раано
в прошлой версии был баг
Баг-репорт?
Debian — мажорная система для fail2ban. Начиная с того, что все тест-кейсы на нем бегают и заканчивая тем, что это primary-система более половины разрабов (включая меня).
Не нужно там было никогда "танцевать с бубном", от слова совсем. Ну а для тех у кого руки не оттуда растут у кого с "готовкой" проблемы (типа умею, но только из коробки в микроволновку если), yarikoptic делает готовые пакеты на neurodebian — http://neuro.debian.net/pkgs/fail2ban.html. Ставьте оттуда на здоровье.
Десятку он кстати тоже собирался там выложить альфой. Как появится отпишусь здесь.
На одном сервере установить получилось. На другом — с этим файлом fail2ban.init — нет. Сложно сказать, почему. Признаю проблемы с «готовкой», далёк я от администрирования никсов.
В любом случае спасибо за ваш труд и за ссылку на neurodebian тоже :)
Например — как идет навешивание правил на логи?
вот, допустим, у меня на один лог опача навешивается с десяток фильтров.
А если на хосте шаредхостинга тысячи виртуалок и на каждый лог навешивается по десятку фильтров?
т.е. то что апач пишет тысячу логов вас не смущает?.. На самом деле, оно не сильно страшно, пока те логи из системного кэша не вымываются или если backend типа systemd и подобных. Конечно качество фильтров и количество "паразитных" (для
f2b) строк в логе, т.е. тех что не failure, сильно влияет на скорость и нагрузку, поэтому f2b можно и нужно настраивать… например писать failure в отдельный лог, который скармливаем f2b. Да много чего можно сделать...
Кстати, как можно настроить логирование ф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, может и реализуется когда (в принципе ничего сложного не вижу).
Спешу сообщить, что только-что выкатил пре-релиз 0.10-ветки ...
Pre-release: ver. 0.10.0a1 (2016/07/14) — ipv6-support-etc
Fail2ban 0.10: Новые возможности. Тест открыт