Анализ Netflow V.9 Cisco Asa С Использованием Logstash (Elk)

Пожалуй, многие из тех, кто хотя бы раз озадачивался поиском программы-анализатора NetFlow v.9, знают, что бесплатных решений не так уж и много.

Особенно, если это решение с открытым исходным кодом.

В моем случае мне нужно было получить, проанализировать и визуализировать трафик NetFlow v.9 cisco ASA 5585. Для этого я использовал ELK (Elasticsearch+Logstash+Kibana):

Анализ NetFlow v.9 Cisco ASA с использованием Logstash (ELK)

Вот ссылка на официальный сайт .

Спойлер Этот продукт представляет собой решение с открытым исходным кодом, а это значит, что в нем было и будет много «багов», с которыми мне посчастливилось столкнуться.

Ниже представлена рабочая сборка.

1. Эта сборка была развернута на ОС Red Hat Enterprise Linux 7 .

2. Сначала давайте установим Джава , как того требует их инструкция на сайте: # sudo yum установить Java

Анализ NetFlow v.9 Cisco ASA с использованием Logstash (ELK)

3. Установить Эластичный поиск (решение для полнотекстового поиска, построенное на базе Apache Lucene, но с дополнительными удобствами, такими как простое масштабирование, репликация и другие радости, которые сделали elasticsearch очень удобным и хорошим решением для высоконагруженных проектов с большими объемами данных) : # sudo yum установить download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/rpm/elasticsearch/2.3.4/elasticsearch-2.3.4.rpm # запуск службы sudo elasticsearch 4. Установить Логсташ (для сборки, фильтрации и последующего перенаправления в итоговое хранилище данных) : # sudo yum установить download.elastic.co/logstash/logstash/packages/centos/logstash-2.3.4-1.noarch.rpm # запуск службы logstash sudo 5. Установить Кибана (позволяет брать\искать данные с помощью elasticsearch и строить множество красивых графиков) : # sudo yum установить download.elastic.co/kibana/kibana/kibana-4.5.3-1.x86_64.rpm # systemctl включить kibana.service # запуск службы sudo kibana 6. Теперь у вас должен быть доступ к сайту по адресу локальный хост :5601 во вкладке статуса вы можете проверить, все ли модули у вас подключены.

7. Теперь нам нужно установить плагин logstash-codec-netflow: # /opt/logstash/bin/logstash-plugin install logstash-codec-netflow 8. Теперь, после успешной установки, сверху установите новую рабочую версию 2.1.1 logstash-codec-netflow: # /opt/logstash/bin/logstash-plugin install --version 2.1.1 logstash-codec-netflow 9. Готовый! После установки можем настроить конфиг (/etc/logstash/conf.d): # cd /etc/logstash/conf.d # нано netflow.conf

  
   

input { udp { port => 9996 type => "netflow" codec => netflow { versions => [5,9,10] } } } output { if [type] == "netflow" { elasticsearch { hosts => localhost index => "netflow-%{+YYYY.MM.dd}" } } }

10. Из нашего конфига следует, что на Cisco ASA нужно настроить сброс NetFlow v.9 на IP-адрес нашего сервера, слушающего порт 9996 (при желании его можно изменить на свой).

Пример настройки: список доступа global_mpc расширенное разрешение ip любой любой пункт назначения потока-экспорта внутри ВАШ IP 9996 карта классов global_class совпадение со списком доступа global_mpc карта политики global_policy класс global_class тип события flow-export все назначения ВАШ IP 11. Итак, теперь мы можем проверить результат наших усилий.

Воспользуемся командой и проверим, что наши усилия не прошли даром: # /opt/logstash/bin/logstash -e 'input { udp { порт => кодек 9996 => netflow }} вывод { stdout { codec => Rubydebug }}' Сначала мы увидим только это:

:message=>"No matching template for flow id 265", :level=>:warn} :message=>"No matching template for flow id 263", :level=>:warn} :message=>"No matching template for flow id 256", :level=>:warn} :message=>"No matching template for flow id 265", :level=>:warn} :message=>"No matching template for flow id 263", :level=>:warn} :message=>"No matching template for flow id 260", :level=>:warn}

Это может занять пару минут, не волнуйтесь, запись изменится и мы получим желаемый результат. 12. Далее мы идем локальный хост :5601 проверяем, что вы получили данные и оформляем нужные вам значения в таблицы и графики.



P.S.

Итак, что хотелось бы сказать напоследок.

Начнем с того, что вам, скорее всего, придется устанавливать самописные плагины, а это непростая задача (по крайней мере для меня), для этого вам придется нужен такой пакет (чтобы смонтировать ваш «gem», «gemspec»): # ням устанавливаем RubyGem-Bundler И вот этот пакет для получения некоторых пользовательских плагинов.

сайт GitHub .

# ням, установи git На самом деле, я потратил много времени на поиск решения этого вопроса, что и побудило меня написать эту статью (не хочу, чтобы кто-то еще тоже напрягался).

Я надеюсь, что это руководство было полезным.

Удачи в ваших начинаниях! Теги: #cisco #cisco #хранилище данных #конфигурация Linux #logstash-codec-netflow #анализатор netflow cisco ASA.

Вместе с данным постом часто просматривают: