LINUX.ORG.RU

Суриката читает не весь трафик

 ,


0

2

Доброго времени суток. Имелась следующая схема: роутер Микротик, какой-то CCR, к нему в порт е1 входит провайдер, в порт е2 подключен сервер с сурикатой, в порт е3 подключена наша сеть. Весь, проходящий через микротик, трафик дублируется на сурикату. Перед сурикатой запущен trafr от микротика, он передаёт по трубе сурикате, суриката детектит, отсылает всё что видит в Logstash, всем счастье. Но захотелось нам поставить перед Микротиком свитч, сделать зеркалирование трафика с его помощью, убрать trafr из цепочки и запустить сурикату с cuda'ой. Теперь схема такова: шнурок от провайдера в свитч е1, к е2 свитча подключен сервер с сурикатой, е3 свитча идёт в Микротик.

И вот теперь какая-то непонятная фигня с сурикатой - nload показывает полную нагрузку на интерфейсе сурикаты, цифры совпадают с цифрами в Микротике, свитч всё исправно зеркалирует. Но теперь суриката почти ничего не детектит. Т.е. алерты пишутся, что-то детектится, но совершенно не в таких количествах как до изменений. Раньше лог был засран сообщениями о трояне Linux.Mirai, теперь же ни одного сообщения о нём. Вообще теперь осталось очень малое количество алертов с приоритетом 1, почти все они UDP, и просто мизерное количество сообщений от TCP.

Не меняя настроек подключили сурикату по старому - всё работает. Пока разбирались нашлась ещё странность - если tcpdump запустить на схеме через свитч и писать всё в stdout - он ловит малое количество пакетов. Очень много «kernel dropped» пакетов. Если запустить на первой схеме - пакеты сыпятся как из пулемёта. Но! - если запустить tcpdump по схеме через свитч и при этом писать в файл, а не в stdout, то он ловит все пакеты, как и при первой схеме.

Сурикату пробовали запускать и с cuda и без неё, и в режиме af-packet и pcap. Результата одинаковый. Подскажите, пожалуйста, какую настройку ей подкрутить что бы оно заработало?

P.S. Суриката 3.2.1 скомпилированная, сервер Ubuntu 16.04



Последнее исправление: Toten_Kopf (всего исправлений: 1)

eсли tcpdump запустить на схеме через свитч и писать всё в stdout - он ловит малое количество пакетов. Очень много «kernel dropped» пакетов

tcpdump запускается с "-n" ? Резолвинг может тормозить.

гм, а интерфейс с которого сурриката принимает данные как сконфигурирован ? Если не включен promisc, то не видать удачи.

vel ★★★★★
()
Ответ на: комментарий от vel

tcpdump запускается с -nn, так дроп не очень большой но всё равно есть. Интерфейс по умолчанию сама суриката переводит в promisc, но я пробовал и руками. Не помогло.

Сейчас заметил вообще интересную вещь. Запускаю вот таким способом:

tcpdump -nn -i enp2s0f1 tcp port 23 -w - | suricata -c /etc/suricata/suricata.yaml -r -
И в ответ в логах тишина. Если запустить один только tcpdump, без -w, то он прекрасно вываливает на консоль все попытки соединения по телнету, как раз от упомянутого трояна. Если запускать tcpdump с сурикатой, как я написал выше, но не указывать «tcp port 23», то суриката ловит и показывает ровно то же самое что и без tcpdump'а. Т.е. получается что эта нехорошая программа, по какой-то причине тупо игнорит все правила, где приоритет 1 и соединение TCP. При этом в конфиге правила конечно же прописаны.

Toten_Kopf
() автор топика
Ответ на: комментарий от Toten_Kopf

странный способ запуска суррикаты через tcpdump. Учти, что у tcpdump-a есть буферизация при "-w". Если отдельно записать трафик и потом скормить его суррикате, то все нормально?

Т.е. «suricata -c /etc/suricata/suricata.yaml -i enp2s0f1» у тебя нифига не детектит ? А статистику по принятым/обработанным пакетам есть способ посмотреть в суррикате? Или включить протоколирование на максимум?

Я несколько раз собирался попробовать surricata, но всегда останавливало практически полное отсутствие внятной документации. С документацией по снорту у меня не возникало таких проблем.

vel ★★★★★
()
Ответ на: комментарий от vel

Не, это не способ запуска. Это я пока пытаюсь разобраться - испытываю разные методы захвата трафика. Записать в файл из tcpdump'а и затем отдать его сурикате пробовал - результат тот же. Т.е. в файле, при просмотре его в wiresharke, видны все пакеты, и те самые, злополучные, на порт телнета. Но когда этот файл читает суриката - никаких предупреждений в логи не отдаёт.

При нормальном запуске детекты есть, но в лучшем случае 10% от того что должно быть. И по какой-то причине 99% из этих оставшихся детектов идет по UDP. А TCPшные куда-то пропали.

Статистику завтра посмотрю, но пока помню, что при запуске/остановке из консоли она показывала общее количество прочитанных и дропнутых пакетов. Так дропнутых там бывает от <1% до 8%, что вполне приемлемо.

Вообще тупая ситуация. Подключаю сервер через свитч, который перед роутером, захватываю трафик при помощи tcpdump'а в файл. Получаю обычный pcap файл. Wireshark явно видет все пакеты в этом файле. Скармливаю файл сурикате - фиг там, в логах только небольшое количество алертов.Подключаю сервер к микротику напрямую, со стороны моей сети, перенаправляю трафик с микротика при помощи мангла, захватываю трафик в файл тулзой trafr, получаю такой же файл pcap. Wireshark опять явно видит все пакеты, скармливаю файл сурикате - вуаля. В логах куча алертов, куча детектов, всё как надо. И спрашивается - как это понимать?

Toten_Kopf
() автор топика
Ответ на: комментарий от Toten_Kopf

сравни что выдают

tcpdump -nver file.pcap -xx -c 10

tcpdump -nevi enp2s0f1 -s128 -xx -c 10

trafr | tcpdump -nver - -xx -c 10

Смотри тип линка и заголовки до ip.

А вланов у тебя там нет или какой другой инкапсуляции?

vel ★★★★★
()
Ответ на: комментарий от vel

Что выдадут команды завтра гляну, а вланов и инкапсуляции нету. Хотя на свитче перепроверю. Но там ничего не должно быть, его как с дефолтом запустили, только зеркалирование сделали.

Toten_Kopf
() автор топика
Ответ на: комментарий от vel

Запустил все три команды. Оказалось на пакетах со стороны свитча в заголовках 802.1Q инкапсуляция. Правда всё в первом VLAN. Сейчас буду разбираться как на этом древнючем свитче (Quanta L6BM) убрать тегирование на портах.

09:20:49.482830 48:62:76:03:7c:c3 > 4c:5e:0c:15:48:47, ethertype 802.1Q (0x8100), length 1470: vlan 1, p 0, ethertype IPv4, (tos 0x0, ttl 59, id 13605, offset 0, flags [DF], proto TCP (6), length 1452)
    17.253.53.201.80 > 88.98.117.206.45255: Flags [.], seq 177503791:177505191, ack 2021021657, win 65, options [nop,nop,TS val 2875271927 ecr 1184694417], length 1400: HTTP

Toten_Kopf
() автор топика
Ответ на: комментарий от vel

Победил. Сделал зеркалирование только входящего трафика с порта подключённого к провайдеру и с порта подключённого к нашему роутеру. Теперь трафик идёт без инкапсуляции и суриката видет всё. Спасибо за помощь.

Toten_Kopf
() автор топика
Ответ на: комментарий от Toten_Kopf

Печально, что такие простые вещи в сурикате не решены :(

vel ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.