Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Elastic StackでWebサーバのログ解析を始めた件について / Web server...

takahoyo
December 02, 2017

Elastic StackでWebサーバのログ解析を始めた件について / Web server access log analysis using Elastic Stack

元祖濱せっく#1 のLTで発表した資料です #HamaSec

takahoyo

December 02, 2017
Tweet

More Decks by takahoyo

Other Decks in Technology

Transcript

  1. モチベーション  学生の頃にWebサーバをVPS上に立てた  勉強がてらWebページ作ってみよう  Webアプリケーション作ってみよう  ログは時々アクセスログをgrepで眺めるくらい 

    社会人になって…  Webサーバにどんな攻撃来てるのか気になる  社会人力を使って自宅サーバを買ったので何かで きないかな  そうだ ログ解析基盤、作ろう  最近Elastic Stack流行ってるし、やってみよう
  2. VPS HOME ログ解析基盤 の構成 VPN USER Log Server ログ収集・解析に使用するソフトウェア •

    filebeat:access logをサーバからESへ転送する • elasticsearch:log dataを保存 • kibana:elasticsearchのデータを参照・可視化 ログ転送に使用するネットワーク • VPNを使ってVPSとHOMEを接続 – 認証・暗号化を実施 – FWで必要なホスト・ポートのみアクセスを許可 Firewall Web Server (nginx)
  3. ログ解析基盤 への転送設定  filebeatのnginx moduleを使用  意外と簡単にelasticsearchへ取り込みが出来た  さらに、GeoIP情報やUser-Agent解析も自動で行う 

    通常、Logをparseする処理が必要  デフォルトではDashboardも自動生成  設定ファイルは以下の通り filebeat.modules: - module: nginx access: enabled: true var.pipeline: with_plugins var.paths: - /var/log/nginx/access.log error: enabled: true var.paths: - /var/log/nginx/error.log filebeat.prospectors: output.elasticsearch: enabled: true hosts: [“elasticsearch:9200"] filebeat.yml
  4. ログを見る  しょうがないので生ログを見る  User-Agentは、"curl/7.17.1 (mips-unknown-linux-gnu) libcurl/7.17.1 OpenSSL/0.9.8i zlib/1.2.3” 

    mips ってことは組み込み系? 168.0.xxx.yyy - - [01/Dec/2017:23:37:23 +0900] "GET / HTTP/1.1" 200 612 "-" "curl/7.17.1 (mips-unknown- linux-gnu) libcurl/7.17.1 OpenSSL/0.9.8i zlib/1.2.3” 177.101.xxx.yyy - - [01/Dec/2017:23:00:59 +0900] "GET / HTTP/1.1" 200 612 "-" "curl/7.17.1 (mips-unknown- linux-gnu) libcurl/7.17.1 OpenSSL/0.9.8i zlib/1.2.3” 168.0.xxx.yyy - - [01/Dec/2017:22:54:08 +0900] "GET / HTTP/1.1" 200 612 "-" "curl/7.17.1 (mips-unknown- linux-gnu) libcurl/7.17.1 OpenSSL/0.9.8i zlib/1.2.3” 187.120.xxx.y - - [01/Dec/2017:22:44:37 +0900] "GET / HTTP/1.1" 200 612 "-" "curl/7.17.1 (mips-unknown- linux-gnu) libcurl/7.17.1 OpenSSL/0.9.8i zlib/1.2.3” 168.0.xx.yyy - - [01/Dec/2017:22:38:39 +0900] "GET / HTTP/1.1" 200 612 "-" "curl/7.17.1 (mips-unknown- linux-gnu) libcurl/7.17.1 OpenSSL/0.9.8i zlib/1.2.3"