|
|
|
---
|
|
|
|
tags: devel, репост
|
|
|
|
title: Новый проект - f2b, легковесная замена fail2ban
|
|
|
|
---
|
|
|
|
|
|
|
|
Идея "переписать fail2ban" периодически приходила в голову.
|
|
|
|
Хоть они и пишут, что "кроме питона ничего не надо", но сам по себе питон тянет уже дохрена всего.
|
|
|
|
|
|
|
|
Кроме того, на типовой роутер fail2nan вкорячить конечно можно, но места под что-либо другое уже не хватит.
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
В типовом роутере с openwrt на его 4Мб ROM остаётся максимум 700кб свободного места (это без нифига),
|
|
|
|
и ~350 - с вебмордой и минимумом софта. Тулить туда "всего лишь питон" - затея изначально дикая.
|
|
|
|
|
|
|
|
Потребление памяти: RES - 8Mb, VIRT - 400Mb, а у роутера - всего 16-32Мб. "Точно-точно будет работать?"
|
|
|
|
|
|
|
|
**Возможности**:
|
|
|
|
|
|
|
|
Сейчас оно умеет 2 типа регекспов (posix/pcre), через подгружаемые модули и (пока) 1 backend -
|
|
|
|
exec (выполнение одной или нескольких произвольных команд на указанное действие).
|
|
|
|
|
|
|
|
Коллекция паттернов пока небогатая, но легко портируется.
|
|
|
|
|
|
|
|
Документации сейчас почти нет, ни отдельной, ни в виде doxygen'а, но будет.
|
|
|
|
|
|
|
|
Исходники брать тут: [f2b](http://linuxdv.org/git/?p=f2b.git;a=summary)
|
|
|
|
|
|
|
|
В планах: перечитывание конфига, backend для redis, backend для ipset (через библиотеку),
|
|
|
|
источник-данных-как-модуль (сейчас - только файлы), простенький клиент для конфигурации на лету, без рестарта.
|
|
|
|
|
|
|
|
Также есть мысль добавить своеобразный teaming на базе igmp.
|
|
|
|
Чтобы забаненный на одном хосте, также банился и на остальных.
|
|
|
|
Впринципе, этого можно добиться и через тот же redis.
|
|
|
|
|
|
|
|
Справедливости ради, упомяну ещё похожую софтину - [sshguard](http://sshguard.sourceforge.net).
|
|
|
|
С ней проблема в том, что там команды бана/разбана хардкодятся при компиляции,
|
|
|
|
а сама она ориентирована на "обнаружение атак" ))).
|
|
|
|
|
|
|
|
Причём сам "детектор" написан на yacc/lex, что-то там поправить - это просто верх удобства,
|
|
|
|
по сравнению с обычным файликом со списком регекспов.
|
|
|
|
Ну и опять же - работает только с файлами.
|