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



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



All Articles