logstashで不正アクセスのログを集める
grepでログを確認するのが面倒だ!!
そんなときに便利なログ収集ツールlogstashを使ってみました。
fluentdを使う方法もあるそうですが、今回はlogstash+elasticsearch+kibanaで構築します。
サーバ | 機能名 | 用途 |
---|---|---|
192.168.1.210 | logstash | elasticsearchにログを送る |
192.168.1.212 | elasticsearch | logstashから送られたログをdbに保存 |
kibana | elasticsearchからログを取得し画面に表示する |
elasticsearchのインストール(192.168.1.212)
javaのインストール
sudo yum install java-1.7.0-openjdk
elasticsearchのダウンロード
$ curl -O https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-1.1.1.tar.gz
$ tar zxvf elasticsearch-1.1.1.tar.gz
$ cd elasticsearch-1.1.1/
elasticsearchの実行
$ ./bin/elasticsearch
kibanaのインストール(192.168.1.212)
アパッチのインストール
kibanaのインストール
$ cd /var/www/html/
$ sudo curl -O https://download.elasticsearch.org/kibana/kibana/kibana-3.1.0.tar.gz
$ sudo tar zxvf kibana-3.1.0.tar.gz
アパッチのリスタート
$ sudo /etc/init.d/httpd restart
kibanaにアクセス
フィルターを作成
termsパネルを追加
logstashのインストール(192.168.1.210)
javaのインストール
logstashのダウンロード
$ wget https://download.elasticsearch.org/logstash/logstash/logstash-1.4.2.tar.gz --no-check-certificate
$ tar zxvf logstash-1.4.2.tar.gz
$ cd logstash-1.4.2
logstashの設定ファイルの作成
この形式のログを分解しelasticsearchに送ることにします
Sep 18 01:01:01localhosti sshd[1234]: Invalid user oracle from 123.456.789.012
vim mylogstash.conf
input { |
この辺りを参考にfilterを作る
logstashを起動
$ sudo bin/logstash -f mylogstash.conf -l log.txt
実験
192.168.1.210に不正アクセスをする
ssh hogeq@192.168.1.210
ssh hogeq@192.168.1.210
ssh hog2@192.168.1.210
ssh hog2@192.168.1.210
ssh test@192.168.1.210
kibnaにアクセスして確認
不正アクセスしたユーザをグラフ化できました。
実際はoracleとかnagiosとかで接続しに来ることが多いようです
おしまい。