Возникла следующая проблема. Есть достаточно большое количество старых серверов SunFire X4100 (архитектура SPARC64), возникла мысль пустить их на IPS-шлюзы/IDS сенсоры.
В итеге решение выглядит так:
--на серверах Debian Wheezy (stable)
--в качестве IPS/IPS - Snort 2.9.7.x версии; установлен из исходников с snort.org
--для IPS режима установлена DAQ (тоже из исходников)
--установлена необходимая обвязка из pulledpork, barnyard2, mysql, snorby
--все это настроено в IPS режии (inline & DAQ nfq очереди) и оттестировано на виртуалке
Проблемы начались при настройке этой связки на SPARC.. Все скомпилировалось и поставилось без проблем, вспомогательные службы (pulledpork, barnyard2, mysql, snorby) работают как надо.
Но сам Snort, после прихода на него пакета для анализа, вылетает с ошибкой "bus error". И все. больше никаких логов и информации. Какая-то проблема с его препроцессорами, видимо. Активное гугление результатов не дало - такое случалось людей еще в далёких 2003-2006 - на багтрекере Debian'a написано, что проблема решена в новых версиях, так в wheezy её не должно быть. Изменение параметров IP_TWIDDLE в декодерах так же результатов не дало..
Может, кто-то сталкивался с таким же результатом? или сможет подсказать/помочь?
Попытался поправить положение.
Поставил из готовых .deb. В IDS режимах все (как и раньше) работает без проблем. Если включить IPS через DAQ nfq - снорт запускается, но, как только в него попадают пакеты, либо умирает сам, либо убивает всю систему. Так что не помогло.
Я уже начал думать на DAQ драйвер (т.к. проблемы возникают, как только начинаю его использовать). Пересобрал его с последними версиями библиотек, после этого пересобрал сам снорт. Все завелось, но снова "bus error", как только в снорт попадает пакет из nfq.
Вопрос открыт, может, кто что подскажет?)
P.S. Еще пару забавных фактов:
-- поведение snort'а в нулевой nfq-очереди немного стабильнее - успевает обработать пару пакетов
-- если не редактировать правила (т.е. оставить их все в "alert" режиме) и запустить snort в IPS/nfq, то он стабилен: но DAQ работает в одностороннем режиме - пакет от клиента обрабатывается в snort и уходит дальше. Ответные пакеты видны в snort, но к клиенту уже не попадают
Закрываю вопрос. Мое мнение - snort в качестве IPS на SPARC64 архитектуре работать не будет.. Как я не пытался его реанимировать - без толку. Так что проблему решил просто - перенес всё на x86 сервер.
Единственный момент - я не тестировал IPS в чистом briged режиме (на SPARC). Возможно, в нем и заработает, хотя я не уверен. Ощущение, что проблема во взаимодействии snort и DAQ драйверов именно на SPARC, так что если есть SPARC - то его можно использовать только как IDS сенсор.
Есть, но только в unstable ветке актуальная версия. Не уверен, что она заработает. Но для теста да, можно попробовать перейти на sid ветку и посмотреть.
В стандартном репе слишком древний и с текущим DAQ не встанет - api не совместимы.
Интересно, почему он после корректной сборки/установки не работает