netflowd+logstash+splunk=недостает полей
-
Здравствуйте.
Решил поковырять netflowd+logstash+splunk.
После logstash'a вижу, что в записях отсутствует куча информации, например out_bytes (23) и flowid (148).
Это глюк самого netflowd? Сталкивался ли кто-нибудь с этим?
netflow.yaml для logstash имеется и там есть все описания.
Заранее спасибо. -
Проблема в самом softflowd который по заверению автора делит поток на 2 (in и out)
https://forum.netgate.com/topic/82132/softflowd-missing-fields-where-are-my-out_bytes/6 -
@borg
Привет
Можно в качестве Netflow сенсора использовать Netgraph ng_netflow
Судя по документации этот модуль поддерживает Netflow 5 и 9 версий
Для его использования в PF надо- Скомпилировать этот модуль для Вашей версии PF/Freebsd ( к сожалению, он не встроен в ядро PF , но это не проблема) и загрузить его в PF
2 . Создать простой скрипт , который весь трафик , проходящий через определенный интерфейс в одном из направлений , будет отправлять на коллектор для последующего анализа
Эту схему всегда можно усложнить , если предъявляются определенные требования к тому трафику , который требуется анализировать
Информации много в инете по этому поводу
Если надо помочь в написании скрипта для PF под Ваше ТЗ , то попробую помочь (это не сложно)https://www.freebsd.org/cgi/man.cgi?query=ng_netflow
https://yandex.ru/search/?text=netgraph%20ng_netflow&lr=213 - Скомпилировать этот модуль для Вашей версии PF/Freebsd ( к сожалению, он не встроен в ядро PF , но это не проблема) и загрузить его в PF
-
В общем, все оказалось проще чем есть. in_bytes и out_bytes определяются направлением соединения определяемое слева направо и по своей сути всегда пишется out_bytes
В моем случае я собираю весь исходящий трафик.
netflow.confoutput { if [netflow][src_locality] == "private" and [netflow][dst_locality] == "public" { stdout { } udp { host => "splunk.example.com" port => 2055 } } }
На данном этапе пытаюсь совместно с @Konstanti фильтровать поток уже на сенсоре а не на коллекторе используя ng_netflow