19
ELK ででででででででででででででで urkr Network Programability Study #8 2016-03-01

ELK ではじめる自宅ネットワーク監視

  • Upload
    npsg

  • View
    1.903

  • Download
    4

Embed Size (px)

Citation preview

Page 1: ELK ではじめる自宅ネットワーク監視

ELK ではじめる自宅ネットワーク監視urkr

Network Programability Study #82016-03-01

Page 2: ELK ではじめる自宅ネットワーク監視

• NetFlow や Syslog を手軽に可視化してみたく、 Elasticsearch / Logstash / Kibana ( a.k.a ELK )を使ってコレクタを自作しました

• 話さないこと• ELK のセットアップ方法 • 主に以下を参考しました

• http://blogs.cisco.com/security/step-by-step-setup-of-elk-for-netflow-analytics

今日話すこと

Page 3: ELK ではじめる自宅ネットワーク監視

• ひょんなことから管理性に優れた UTM ( Unified Threat Management )を入手

• いろいろな機能を試していくうちに、 Inbound の Drop などのログが管理 GUI からは参照できないことに気付く… orz

• 勉強もかねて Syslog サーバ兼 NetFlow コレクタをたてることに

• Why ELK ?• Open Source • 勢いがある• Logstash 用 Syslog / NetFlow パーサーが github に落ちていた• 例えば Splunk 無償版は、ログ量が制限を越えた時に悲しい

背景

Page 4: ELK ではじめる自宅ネットワーク監視

• ログ収集、管理、検索システム

• イベントのリアルタイムな分析およびフォレンジックな分析を実現できる

• 機器を横断した分析ができる

ELK でできること

Page 5: ELK ではじめる自宅ネットワーク監視

Centos 7

構成概要

Elasticsearch

Kibana: 9200

: 5601

LogstashNetFlowSyslog

Internet

自宅

悪い人

Centos 7.2 on VMware FusionJava 1.8.0Elasticsearch 2.1.1Logstash 2.1.1Kibana 4.3.1

Page 6: ELK ではじめる自宅ネットワーク監視

• Logstash で NetFlow や Syslog を受け取り、各種処理(パースしたり、情報を追加したり、切り出したり)をする

• Elasticsearch に渡してインデックス化する

• Kibana 経由でインデックスにアクセスし、グラフを作ったり、検索したりする

動作概要

Centos 7

Elasticsearch

Kibana

Logstash

Page 7: ELK ではじめる自宅ネットワーク監視

• Elasticsearch• パフォーマンスに関する設定• curator / crontab による定期的なインデックスの close / delete

• Logstash  • 過去にパースした先人の叡智を求めてひたすらググる• filter の項目で geoip やパース不良ポイントの見直し

• Syslog メッセージが仕様変更• Netflow ベンダー独自フィールドへの対応

• Kibana• Dashboard の作り方 ( 途中 )

気をつけた点

Page 8: ELK ではじめる自宅ネットワーク監視

Logstash の設定は3つのパートからなる

• input :データの入力処理

• filter : input で読み込んだデータに対する操作など

• output :データの出力処理

Logstash

Page 9: ELK ではじめる自宅ネットワーク監視

input {        udp{         port => 9995                 

       codec => netflow{           definitions => "/etc/logstash/conf.d/codec/netflow.yaml"           versions => [9]         }       }     }  

 output {       stdout { codec => rubydebug}      elasticsearch      index => “logstash-netflow-%{+YYYY.MM.dd}"                                         host => 'localhost'                                                                     }      } 

Netflow を Logstash で受け取る conf 例 vi /etc/logstash/conf.d/1-netflow.conf

NetFlow をデコードするためのプラグインの設定含まれる各フィールドを読解する yaml 形式の定義ファイル受け取る NetFlow のバージョン (5 or 9) の指定

NetFlow を受け取るプロトコルとポートの設定

Logstash から Elasticsearch へ渡す設定

通常は input と output の間に filter を書いて高度な処理を挟むことが多い

Page 10: ELK ではじめる自宅ネットワーク監視

Flexible NetFlow の受け取り方

左 : Cisco - NetFlow Version 9 Field Type Definitionshttp://www.cisco.com/en/US/technologies/tk648/tk362/technologies_white_paper09186a00800a3db9.html右 : Github / logstash-plugins – NetFlow 用 yaml ファイルhttps://github.com/logstash-plugins/logstash-codec-netflow/blob/master/lib/logstash/codecs/netflow/netflow.yaml

• 各フィールドは RFC で TLV が定義されている• ベンダ拡張フィールドも存在する

・・・・・・

Page 11: ELK ではじめる自宅ネットワーク監視

• UTM が死活監視のために 8.8.8.8 へ定期的に ping を打つ仕様に気付けた

ダッシュボード作成例 ~NetFlow~

Page 12: ELK ではじめる自宅ネットワーク監視

• DNS サーバは OpenDNS を利用しています

ちなみに

Page 13: ELK ではじめる自宅ネットワーク監視

ダッシュボード作成例 ~syslog~

Page 14: ELK ではじめる自宅ネットワーク監視

ダッシュボード作成例 ~syslog~

[data table]Inbound でドロップしたトラフィックの

宛先ポート、プロトコル、国名

[histogram]Deny トラフィックの宛先ポート別推移

[ m etric]Inbound で Drop

した回数

[pie chart]Allow と Deny の

割合

[pie chart]Deny トラフィックのプロコトルおよび宛先

ポート割合

[pie chart]Deny トラフィックの

国 - 地域名割合

Page 15: ELK ではじめる自宅ネットワーク監視

• 少なからずスキャニングされしている痕跡がある

• 23, 80, 3389, 8080 といった well-known port 以外に53413/udp などが観測された

気付くことができた事案自宅グローバル IP address 宛のドロップ履歴 (2015/02/24 のとある 1時間 )

Page 16: ELK ではじめる自宅ネットワーク監視

流行にのったポート番号であることがわかる

参考: JPCERT TSUBAME インターネット定点観測レポート 2015年10-12月

https://www.jpcert.or.jp/tsubame/report/report201510-12.html

Page 17: ELK ではじめる自宅ネットワーク監視

• Alert 機能を無償で実装したい

• 社内検証をするときにも簡易な Syslog / NetFlow サーバが欲しい時があるため、容易に作って壊せる環境があると便利

• NP 勉強会的な応用として、 Vagrant Box 化や Docker による展開、 Ansible による package インストールの自動化などが思いついたが、そもそも yum を数回叩くとインストールできる ELK とは相性が悪いかもしれない… ?

今後の展望

Page 18: ELK ではじめる自宅ネットワーク監視

• Elastic Productshttps://www.elastic.co/products

• Step by step setup of elk for netflow analyticshttp://blogs.cisco.com/security/step-by-step-setup-of-elk-for-netflow-analytics

• How to install elasticsearch, logstash, and kibana on CentOs 7https://www.digitalocean.com/community/tutorials/how-to-install-elasticsearch-logstash-and-kibana-elk-stack-on-centos-7

• Netflow.yamlhttps://github.com/logstash-plugins/logstash-codec-netflow/blob/master/lib/logstash/codecs/netflow/netflow.yaml

• Elasticsearch sizing guidehttps://www.elastic.co/guide/en/elasticsearch/guide/current/heap-sizing.html

• A• A

参考

Page 19: ELK ではじめる自宅ネットワーク監視

ご清聴ありがとうございました。