URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 19989
[ Назад ]

Исходное сообщение
"OpenNews: Новая программа для блокирования попыток подбора паролей"

Отправлено opennews , 30-Июл-06 21:15 
Программа bruteblock (http://samm.kiev.ua/bruteblock/) позволяет блокировать попытки подбора паролей к сервисам FreeBSD.


Программа анализирует журнал запущенных служб и заносит
ip злоумышленников в таблицу firewall ipfw2. Через некоторое,
определённое пользователем, время программа удаляет их из этой таблицы.


Использование регулярных выражений позволяет использовать утилиту для
практически любой службы. Утилита написана на C и не использует вызова
внешних программ, работая с таблицами IPFW2 через RAW SOCKETS API.

URL: http://samm.kiev.ua/bruteblock/
Новость: http://www.opennet.me/opennews/art.shtml?num=7984


Содержание

Сообщения в этом обсуждении
"Новая программа для блокирования попыток подбора паролей"
Отправлено ZANSWER , 30-Июл-06 21:15 
МяФ!:) ну прямо как у меня в PF только механизм немного другой, да это хорошо что наконец и IPFW2 научился этому, полезная штука однако...:)))

"Новая программа для блокирования попыток подбора паролей"
Отправлено Аноним , 30-Июл-06 21:26 
ахха, основана на маленьком допуске: злоумышленник долбится с одного ip.

в гугле поискать что такое ботнет


"Новая программа для блокирования попыток подбора паролей"
Отправлено Samm , 30-Июл-06 21:45 
Очень редко (практически никогда) подбор попыток производится 1 попытка/1 IP. Даже если атакуют сервер ботенетом - это просто несколько сессий одновременно с разных ip, которые чудесно попадают в блек лист. Кроме того чаще всего брутофорс атаки делаются не сознательно на какой либо хост, а просто роботом - трояном, случайно переберающим IP адреса.

"Новая программа для блокирования попыток подбора паролей"
Отправлено AMDmi3 , 31-Июл-06 00:05 
Полезная софтина. Скоро быть порту :)

"Новая программа для блокирования попыток подбора паролей"
Отправлено Oleg , 31-Июл-06 08:09 
Софтина, конечно, полезная. Но я пользуюсь от подобных пионэров pam_abl. Он и настройки гибкие имеет. И не привязан к конкретному файрволлу. Хотя таки да - при распределённой и интенсивной атаке - bruteblock будет поэффективнее. Только вот в чём дело. А если "враг" влупит атаку от спуфленных IP, где в качестве источника будет значится IP вышестоящего роутера? О последствиях не подумали?

"Новая программа для блокирования попыток подбора паролей"
Отправлено Samm , 31-Июл-06 10:32 
>Софтина, конечно, полезная. Но я пользуюсь от подобных пионэров pam_abl. Он и
>настройки гибкие имеет. И не привязан к конкретному файрволлу. Хотя таки
>да - при распределённой и интенсивной атаке - bruteblock будет поэффективнее.
>Только вот в чём дело. А если "враг" влупит атаку от
>спуфленных IP, где в качестве источника будет значится IP вышестоящего роутера?
>О последствиях не подумали?
1) Я не думаю, что спуфленый IP при атаке из других сетей дойдёт до стадии auth. Это вам не icmp storm где ничего не проверяется.
2) программа работает через firewall. Т.е. никто не мешает (и даже наоборот) сделать до правила deny правило allow с таблицей в которой перечислены все trsuted ip адреса. Возможно, этот момент стоит отразить в доке,я  просто думал, что это совершенно очевидно.


"Новая программа для блокирования попыток подбора паролей"
Отправлено anonymous , 31-Июл-06 11:46 
http://mbsd.msk.ru/stas/pam_af.html  - гораздо лучше, гибче и безопаснее.

"Новая программа для блокирования попыток подбора паролей"
Отправлено Samm , 31-Июл-06 12:24 
Простите, можно узнать аргументацию? особенно по поводу гибче и безопаснее меня заинтересовало ;-)

"Новая программа для блокирования попыток подбора паролей"
Отправлено anonymous , 01-Авг-06 15:59 
1) Быстрее, так как не требует дополнительного сканирования логов и работает на уровне PAM
2) Как следствие лучше интегрируется в существующую модель безопасности, так как ничего дополнительного не запускается
3) Работает на любой POSIX-совместимой платформе, так как используются только стандартные
компоненты (ndbm для хранения таблиц и конфигов, например)
4) Lookup hostname'ов происходит на этапе конфигурирования и не требует дополнительных временных задержек впоследствии. Далее поиск правила происходит очень быстро по хешу.
5) Корректно работает с любыми адресами (не только IPv6 и Ipv4), правда маска поддерживается только для последних двух. Т.е. её можно использовать с любыми сетевыми протоколами (даже самопальными, если они корректно интегрированы в стек)
6) Может работать вообще без firewall и с firewall не поддерживающем таблиц
7) Работает с абсолютно любыми сервисами (т.к. через PAM).

---------------------------------------------------------------
Пример настройки для FreeBSD:
# pam_af_tool ruleadd -h '*' -a 15 -t 4y
# pam_af_tool ruleadd -h localhost -a unlimited -t 0                          
# pam_af_tool ruleadd -h 124.45.34.2/21 -a 8 -t 16H23M12S                      
# pam_af_tool ruleadd -h 207.46.0.0/16 -a 5 -t 15H -l '/sbin/ipfw add          
            100 deny all from $PAM_RHOST to any'

И всё! Никаких демонов etc..


"Новая программа для блокирования попыток подбора паролей"
Отправлено Samm , 01-Авг-06 16:37 
>1) Быстрее, так как не требует дополнительного сканирования логов и работает на
>уровне PAM
Оно не сканирует логи, а слушает pipe в syslogd
>2) Как следствие лучше интегрируется в существующую модель безопасности, так как ничего
>дополнительного не запускается
Оч. спорный вопрос. Требует наличия PAM авторизации в используемом сервисе.
>3) Работает на любой POSIX-совместимой платформе, так как используются только стандартные
>компоненты (ndbm для хранения таблиц и конфигов, например)
Конфиги хранятся в текстовом файле, таблицы - в ipfw. Работа на любой posix (кстати, я не уверен, что pam описан в posix) мне просто не требовалась
>4) Lookup hostname'ов происходит на этапе конфигурирования и не требует дополнительных временных
>задержек впоследствии. Далее поиск правила происходит очень быстро по хешу.
Простите, какой lookup? никакая работа с dns не производится. скорость поиска во внутренних структурах настолько быстр, что делать хеш я не вижу смысла. Как и не вижу проблем его  сделать в случае необходимости.
>5) Корректно работает с любыми адресами (не только IPv6 и Ipv4), правда
>маска поддерживается только для последних двух. Т.е. её можно использовать с
>любыми сетевыми протоколами (даже самопальными, если они корректно интегрированы в стек)
Данная задача не была для меня актуальна. Да и что значит "корректно интегрированы в стек"?
>
>6) Может работать вообще без firewall и с firewall не поддерживающем таблиц
>
>7) Работает с абсолютно любыми сервисами (т.к. через PAM).
В случае если сервис обращается к PAM. Вот вам пример ситуаций при которых не происходит обращения к PAM:
http auth, подбор пользователей в rcpt-to, пользователи ssh которых нет в allow users... Уверен, что таких ситуаций превеликое множество
>
>---------------------------------------------------------------
>Пример настройки для FreeBSD:
> # pam_af_tool ruleadd -h '*' -a 15 -t 4y
> # pam_af_tool ruleadd -h localhost -a unlimited -t 0
> # pam_af_tool ruleadd -h 124.45.34.2/21 -a 8 -t 16H23M12S
> # pam_af_tool ruleadd -h 207.46.0.0/16 -a 5 -t 15H -l '/sbin/ipfw
>add
>            
>100 deny all from $PAM_RHOST to any'
>
>И всё! Никаких демонов etc..
Я не вижу каким образом правило с ipfw исчезнет через n минут. И кроме того, я считаю, что таблицы в данном случае много уместнее. Дополнительно я хотел бы подчеркнуть, что я совершенно не умаляю достоинст вышеописанной тулзы, просто я считаю, что у них несколько разная идеология, и как следствие - область применения.

"Новая программа для блокирования попыток подбора паролей"
Отправлено anonymous , 01-Авг-06 18:11 
>Я не вижу каким образом правило с ipfw исчезнет через n минут.
-t ;-)
>И кроме того, я считаю, что таблицы в данном случае много
>уместнее. Дополнительно я хотел бы подчеркнуть, что я совершенно не умаляю
>достоинст вышеописанной тулзы, просто я считаю, что у них несколько разная
>идеология, и как следствие - область применения.
Согласен.

PAM есть в X/Open,  что сейчас является POSIX 2004.

PS: мой первый ответ был по поводу pam_abl;-)


"Новая программа для блокирования попыток подбора паролей"
Отправлено Кубик , 31-Июл-06 09:01 
Не понятно зачем такое писать на С ...

"Новая программа для блокирования попыток подбора паролей"
Отправлено Samm , 31-Июл-06 10:29 
Попробую обьяснить.
к данной утилите у меня перед написанием были такие требования:
1) По возможности не требовать дополнительного ПО - чтобы иметь возможность ставить его даже на бездисковые роутеры.
2) Чтобы утилита занимала минимум памяти и работала быстро. Часть серверов которые мне приходится администрировать сделаны из весьма и весьма старого железа и перегружать их дополнительно у меня нет желания.
3) Утилита не должна вызывать внешних программ. Собственно, по причине 2). А писать пол RAW_SOCKET на perl или python я бы  не рискнул. К тому же так я просто использовал немного модифицированный код ipfw2.c.
4) Утилита должна быть максимально безглючна и крайне проста в отладке. Так тот же security/sshit (perl) через 3-4 дня по невыясненным причинам просто переставал выносить плохие ip из конфигов. Подозреваю, что какой-то leak. В C подобное лично мне проще контролировать.
Собственно, кроме того я не вижу причин почемку подобное не может или не должно писаться на C :)

"Новая программа для блокирования попыток подбора паролей"
Отправлено Tyler , 31-Июл-06 09:13 
я вот такой штукой пользуюсь
http://denyhosts.sourceforge.net/index.html

"Новая программа для блокирования попыток подбора паролей"
Отправлено _KV_ , 31-Июл-06 10:16 
ыы, а ктото еще пароли в ssh юзает? по ключам логониться не судьба?

"Новая программа для блокирования попыток подбора паролей"
Отправлено Samm , 31-Июл-06 10:35 
>ыы, а ктото еще пароли в ssh юзает? по ключам логониться не
>судьба?

А почитать описание новости внимательнее - не судьба? Оно, совершенно не только для ssh.

Впрочем, я использую утилиту и на тех хостах, где примению key based auth. Как минимум мне не нравится наблюдать в логах постоянные попытки логинов, да и безполезного трафика/нагрузки на сервер это добавляет. Опять же иногда теже самые ip начинают долбить ftpd/smtpd.


"Новая программа для блокирования попыток подбора паролей"
Отправлено ErrSkin , 31-Июл-06 11:02 
Поставил, потестил. Работает замечательно. Автору спасибо % ))) Какая конкретно нужна помощь ?

"Новая программа для блокирования попыток подбора паролей"
Отправлено Samm , 31-Июл-06 11:12 
Спасибо и Вам за хороший отзыв :) Помощь требуется следующая:
1) доведение до ума howto и перевод их на английский.
2) Написание man`ов.

"Новая программа для блокирования попыток подбора паролей"
Отправлено ErrSkin , 01-Авг-06 12:46 
Ок. На выходных займусь ; ))))

"Новая программа для блокирования попыток подбора паролей"
Отправлено adil_18 , 31-Июл-06 11:08 
а чем вас sshlockout не устроил ?

"Новая программа для блокирования попыток подбора паролей"
Отправлено Samm , 31-Июл-06 11:18 
>а чем вас sshlockout не устроил ?
Ну честно говоря - всем.

1) ssh only. При этом regexp`ы не используются, а шаблоны вкомпилины в исходниках (как и прочие данные, btw).
2) Внешний запуск ipgw.
3) Утилита добавляет правила в firewall, а не адреса в таблицу.
4) При рестарте утилиты все блокировки удаляются.


"Новая программа для блокирования попыток подбора паролей"
Отправлено dvg_lab , 31-Июл-06 11:09 
решпект, надеюсь до стадии порта прога таки дойдет. После отпуска буду ставить/пробовать.

"Новая программа для блокирования попыток подбора паролей"
Отправлено dravor , 31-Июл-06 11:51 
в который раз изобретение велосипеда.

"Новая программа для блокирования попыток подбора паролей"
Отправлено ABorland , 31-Июл-06 13:09 
Вам бы только попИсать на форуме?
Да такие решения не новы
но данное решение, с точки зрения юзабилити гораздо лучше

"Новая программа для блокирования попыток подбора паролей"
Отправлено dravor , 31-Июл-06 13:23 
чем оно лучше того же sshit?
Грамотны разработчик перед написанием чего-то нового исследует уже созданное до него и задается вопросом "а чего не хватает? что я могу сделать лучше?" Вот и объясните мне что же здесь лучше: гибкая настройка под используемый фаерволл (pf, ipfw, ipfw2, ...)? возможность "налету" исправить/добавить/изменить регулярное выражение, простота исправления кода и отладки (в перловом скрипте достаточно перзапустить итерпретатор, в C - каждый раз компилировать, об отладке я уж молчу). А уж когда встает вопрос подвесить удаленно - неизвестно что подсоединять на авторизацию очень "нехочется".

Вот вы, господин эксперт, и объяните в каких пунктах я не прав.


"Новая программа для блокирования попыток подбора паролей"
Отправлено Samm , 31-Июл-06 14:21 
Давайте попробую ответить. И так, перед написанием этой программы я достаточно долго исследовал уже написанное. В том числе и 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 код на порядок улобнее в отладке чем код на интерпретируемых языках.А что ставить на сервер решать только админу, прекрасно помня что автор не несёт ответственности за любые последствия использования утилиты.


"Новая программа для блокирования попыток подбора паролей"
Отправлено Аноним , 31-Июл-06 16:36 
>Вот вы, господин эксперт, и объяните в каких пунктах я не прав.
Ну вот блин, в в соседней теме флейм на 90 сообщений php vs *, теперь предлагают от C отказаться. Приехали. Аргумент меня просто убил - `каждый раз компилировать'.

"Новая программа для блокирования попыток подбора паролей"
Отправлено dravor , 31-Июл-06 17:05 
а слова "Bourne Shell" наверное вообще в кому вгоняют

"Новая программа для блокирования попыток подбора паролей"
Отправлено Vital , 31-Июл-06 13:23 
Хочу пожелать автору удачи и сил довести дело до порта! Хорошая штука!

"Новая программа для блокирования попыток подбора паролей"
Отправлено Samm , 31-Июл-06 14:31 
>Хочу пожелать автору удачи и сил довести дело до порта! Хорошая штука!
>

спасибо )


"Новая программа для блокирования попыток подбора паролей"
Отправлено Hammer , 31-Июл-06 18:22 
Создается впечатление, что самые кульные программеры живут на Украине!

"Новая программа для блокирования попыток подбора паролей"
Отправлено Аноним , 01-Авг-06 11:03 
а fail2ban не пробовали?
http://fail2ban.sourceforge.net/

"Новая программа для блокирования попыток подбора паролей"
Отправлено Samm , 01-Авг-06 12:07 
Нет. Меня огорчило требование питона и, кроме того, показалось, что он более для linux.

"Новая программа для блокирования попыток подбора паролей"
Отправлено ErrSkin , 01-Авг-06 13:05 
To Samm: На выходных займусь : ))
fail2ban медленнее.

"OpenNews: Новая программа для блокирования попыток подбора п..."
Отправлено mmisteras , 20-Авг-07 13:19 
>[оверквотинг удален]
>ip злоумышленников в таблицу firewall ipfw2. Через некоторое,
>определённое пользователем, время программа удаляет их из этой таблицы.
>
>
>Использование регулярных выражений позволяет использовать утилиту для
>практически любой службы. Утилита написана на C и не использует вызова
>внешних программ, работая с таблицами IPFW2 через RAW SOCKETS API.
>
>URL: http://samm.kiev.ua/bruteblock/
>Новость: http://www.opennet.me/opennews/art.shtml?num=7984

поставил на freebsd 6.2 для proftpd - не пашет (ставил из портов)
конфиги не правил, добавил правило в фаер. table\(1\) ниразу не заполнилась


"OpenNews: Новая программа для блокирования попыток подбора п..."
Отправлено Samm , 21-Авг-07 09:32 
>[оверквотинг удален]
>>Использование регулярных выражений позволяет использовать утилиту для
>>практически любой службы. Утилита написана на C и не использует вызова
>>внешних программ, работая с таблицами IPFW2 через RAW SOCKETS API.
>>
>>URL: http://samm.kiev.ua/bruteblock/
>>Новость: http://www.opennet.me/opennews/art.shtml?num=7984
>
>поставил на freebsd 6.2 для proftpd - не пашет (ставил из портов)
>
>конфиги не правил, добавил правило в фаер. table\(1\) ниразу не заполнилась

Поздравляю. Программа отлично работет на 6.2, как и на других версиях BSD


"Новая программа для блокирования попыток подбора паролей"
Отправлено Аноним , 21-Июл-08 15:00 
mmisteras, у меня была такая же ситуация, обратился к автору, он указал направление поисков проблемы. В итоге всё просто - было два одинаковых селектора в syslog.conf с разными action'ами :)
(см. забавы ради патч http://lists.freebsd.org/pipermail/freebsd-ports-bugs/2006-O...)

Всё заработало, как обещано, но возник такой вопрос: если subj ищет сообщения определённого вида, то бишь соответствующие регулярным выражениям в конфиге, куда деваются остальные? Те, что писались раньше в auth.log теперь просто отбрасываются что ли?..


"Новая программа для блокирования попыток подбора паролей"
Отправлено Yuri , 25-Окт-10 23:08 
поставил из портов на 8.1
отличная штука. автору - спасибо