NetFlow v.9 Logstash(ELK)を使用したCisco ASA分析

NetFlow v.9アナライザープログラムの検索に少なくとも一度戸惑った人々の多くは、 利用可能な無料のソリューションがそれほど多くないことを知っています 。 特に、それがオープンソースのソリューションである場合。 私の場合、NetFlow v.9 cisco ASA 5585トラフィックを受信、解析、視覚化する必要がありましたが、このためにELK(Elasticsearch + Logstash + Kibana)を使用しました。

画像

公式ウェブサイトへのリンクはこちらです。

ネタバレ
この製品はオープンソースのソリューションです。つまり、 幸運にも遭遇した多くの「バグ」があったことを意味します。 動作中のアセンブリを以下に示します。


1.このアセンブリはRed Hat Enterprise Linux 7にデプロイされました。

2.最初に、 Javaをインストールします サイトでの指示には以下が必要です。

#sudo yum install java

画像

3. Elasticsearchをインストールします(Apache Luceneの上に構築されたフルテキスト検索ソリューションですが、簡単なスケーリング、複製、その他の喜びなど、elasticsearchが大量のデータを伴う高負荷プロジェクトに非常に便利で優れたソリューションになりました)

#sudo yum install download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/rpm/elasticsearch/2.3.4/elasticsearch-2.3.4.rpm
#sudo service elasticsearch start

4. Logstashをインストールします(アセンブリ、フィルタリング、およびその後の最終データストアへのリダイレクト用)

#sudo yum install download.elastic.co/logstash/logstash/packages/centos/logstash-2.3.4-1.noarch.rpm
#sudo service logstash start

5. Kibanaをインストールします(elasticsearchでデータを検索して、多くの美しいグラフを作成できます)

#sudo yum install download.elastic.co/kibana/kibana/kibana-4.5.3-1.x86_64.rpm
#systemctl enable kibana.service
#sudo service kibana start

6.これで、ステータスタブでlocalhost :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
#nano 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では、ポート9996でリッスンするサーバーのIPアドレスにNetFlow v.9リセットを構成する必要があります(必要に応じて、独自に変更できます)。

設定例:
access-list global_mpc extended permit ip any any
IP 9996内のフローエクスポート先
クラスマップglobal_class
一致するアクセスリストglobal_mpc
ポリシーマップglobal_policy
クラスglobal_class
flow-export event-typeすべての宛先YOUR IP

11.これで、私たちの努力の結果を確認できます。 コマンドを使用して、作業が無駄になっていないことを確認します。

#/ opt / logstash / bin / logstash -e 'input {udp {port => 9996 codec => netflow}} output {stdout {codec => ruby​​debug}}'

最初は、これだけが表示されます。

 :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.次に、 localhostに移動します。5601データを受信したことを確認し、テーブルとグラフに必要な値を作成します。

PS


ですから、最後に言いたいことは...そもそも、自作のプラグインをインストールする必要があります。これは単純な問題ではありません(少なくとも私にとっては)、このようなパッケージが必要です(gemをマウントするには、 gemspec "):

#rubygem-bundlerのインストール

そして、これはgithub siteから自作のプラグインを入手するためのこのパッケージです。

#git install git

実際、私はこの問題の解決策を探すのに多くの時間を費やし、この記事を書くよう促しました(誰にも負担をかけたくありません)。 このマニュアルがお役に立てば幸いです。 頑張ってください!

Source: https://habr.com/ru/post/J307528/


All Articles