Давайте попробую ответить. И так, перед написанием этой программы я достаточно долго исследовал уже написанное. В том числе и security/sshit. Более того, именно утилита security/sshit наиболее точно подходила под мои нужды и явилась прототипом bruteblock. После установки security/sshit на нагруженный и постоянно атакуемый сервер через некоторое, причём весьма небольшое, время в системе закончились семафоры! При этом, естетственно, sshit перестал нормально работать угрожая другим сервисам. Через некоторое время я нашёл причину leak`а о чём написал автору и оформил PR - http://www.freebsd.org/cgi/query-pr.cgi?pr=ports/100726 . Автор мне так и не ответил, причём автор патча писал ему и ранее с тем же успехом. Но и это не всё. После данного патча sshit перестал кушать семафоры, но ~ через 3 дня процесс janitor перестал удалять ip из блеклиста.
Причину я так и не понял, полагаю, что проблемы ipc между демоном и сервисом syslog. Учитывая недоступность автора и глюки в работе - я решил отказаться от данной утилиты.
Теперь по поводу сравнения sshit/bruteblock - давайте я попробую его сделать:
недостатки bruteblock vs sshit:
* работает только с ipfw2 (в будущем также планирую поддержку pf).
преимущества bruteblock vs sshit:
* не требует IPC демона и основного процесса так как время жизни правила хранится непосредственно в таблице ipfw.
* Регулярное выражение хранится в конфигурационном файле, что позволяет быстро его менять и запускать несколько процессов работающих с логами при одном демоне.
* Не запускает внешних скриптов или программ.
* кушает совсем мало памяти, не жрёт разделяемые ресурсы.
* в любой момент можно посмотреть список заблокированых хостов, время жизни блокировки, удалить или добавить блокировку руками.
* просто нормально работает ;-)
По поводу отладки C кода - совершенно не вижу в этом никаких проблем, на мой взгляд при системном програмировании как раз C код на порядок улобнее в отладке чем код на интерпретируемых языках.А что ставить на сервер решать только админу, прекрасно помня что автор не несёт ответственности за любые последствия использования утилиты.