VPSにDionaeaログ解析ツール、DionaeaFRを入れてみた
前回、ハニーポットDionaeaをVPSに入れた。
VPSにハニーポット(Dionaea)を入れてみた - Tahoo!!
Dionaeaのログは基本的に文字だけであるので、情報を可視化することでさらに見やすくなり、運用するのも楽しくなることを期待し、今回はDionaeaのログを可視化してくれるDionaeaFRを導入してみた。
DionaeaFRのインストール
構築環境は、前回DionaeaをインストールしたVPSなので、CentOS 6.5。
今回インストールにあたって参考にしたサイトはこちら
- ショなんとかドットねっと | 【きょうのITレポ】ハニーポット可視化ツール、DionaeaFRを導入してみた
- Visualizing Dionaea's results with DionaeaFR - BruteForce Lab's Blog
- DionaeaFR - Catches bugs
CentOSに入れて、ちょっとはまった点が何点かあるので、それも踏まえて以下で手順を説明する。
必要なものをインストール
Python 2.7
上記の3のサイトによると、使われてるテクノロジーがPython2.7.3らしいので、Python2.7.3以上のバージョンを別にインストールして使う。
CentOSに標準でインストールされているPythonは2.6系という罠があるので、入ってない人はいれましょう。yumでも入れられないぽいですし。
参考 - CentOS 6.4にPython 2.7.5をインストール(altinstall)し、さらに、デフォルトで2.6.6ではなく2.7.5が起動するようにする - コンピュータ/ソフトウェア関連Tips
# yum groupinstall "Development tools" # yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel # cd # wget http://www.python.org/ftp/python/2.7.6/Python-2.7.6.tar.xz # tar -Jxvf Python-2.7.6.tar.xz # cd Python-2.7.6 # ./configure --with-threads --enable-shared --prefix=/usr/local # make
SSLがインストールされてるディレクトリがデフォルトと違うので./Modules/Setupを以下のように編集。
# Socket module helper for SSL support; you must comment out the other # socket line above, and possibly edit the SSL variable: SSL=/usr _ssl _ssl.c \ -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \ -L$(SSL)/lib -lssl -lcrypto
編集が終わったら、インストール続行。make installではなくmake altinstallであることに注意。
# make altinstall # ln -s /usr/local/lib/libpython2.7.so.1.0 /lib64/
python2.7で動作確認。
# python2.7 Python 2.7.6 (default, Jun 1 2014, 14:01:44) [GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>>
pip
yumで入れるとデフォルトで入ってるPython 2.6対応のものになったので、easy_installから入れた。
参考 - CentOSにpython 2.7.3をインストールする手順 - memo.yomukaku.net
# wget http://pypi.python.org/packages/source/d/distribute/distribute-0.6.49.tar.gz # tar zxvf distribute-0.6.49.tar.gz # cd distribute-0.6.49 # python2.7 setup.py install # easy_install-2.7 pip
Django関連
django-tables2-simplefilter以外は、pipを使ってインストール
# pip2.7 install Django pygeoip django-pagination django-tables2 django-compressor django-htmlmin django-filter # cd /opt # wget https://github.com/benjiec/django-tables2-simplefilter/archive/master.zip -O django-tables2-simplefilter.zip # unzip django-tables2-simplefilter.zip # mv django-tables2-simplefilter-master/ django-tables2-simplefilter/ # cd django-tables2-simplefilter/ # python2.7 setup.py install
python-netaddr
上記の参考サイトだとapt-get、CentOSだとyumで入れることになるが、yumで入れるとデフォルトで入ってるPython 2.6のライブラリに入るのでこれもソースから。
# cd /opt # wget https://pypi.python.org/packages/source/n/netaddr/netaddr-0.7.11.tar.gz # tar xzvf netaddr-0.7.11.tar.gz # cd netaddr-0.7.11 # python2.7 setup.py install
PySubnetTree
# cd /opt/ # git clone git://git.bro-ids.org/pysubnettree.git # cd pysubnettree/ # python2.7 setup.py install
Node.js関連
# cd /opt/ # wget http://nodejs.org/dist/v0.8.16/node-v0.8.16.tar.gz # tar xzvf node-v0.8.16.tar.gz # cd node-v0.8.16 # ./configure # make # make install # npm install -g less
DionaeaFRのインストール
まず、DionaeaFRのコードをgithubからダウンロード。
# cd /opt/ # wget https://github.com/RootingPuntoEs/DionaeaFR/archive/master.zip -O DionaeaFR.zip # unzip DionaeaFR.zip # mv DionaeaFR-master/ DionaeaFR
次に、GeoIPとGeoLiteを落として、特定のディレクトリに入れる。
# cd /opt/ # wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz # wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz # gunzip GeoLiteCity.dat.gz # gunzip GeoIP.dat.gz # mv GeoIP.dat DionaeaFR/DionaeaFR/static # mv GeoLiteCity.dat DionaeaFR/DionaeaFR/static
Dionaeaの結果のSQLiteのデータベースファイルが、Dionaea公式に書いてあるpath(/opt/dionaea/var/dionaea/logsql.sqlite)通りに設定してない場合は、/opt/DionaeaFR/DionaeaFR/settings.py:17のpathを変更する。
最後に、以下のコマンドを実行。
collectstaticでSTATIC_ROOTが~って出てエラーを吐く場合は、上記のsettings.py:68で"STATIC_ROOT=/opt/DionaeaFR/DionaeaFR"を指定した。
実行すると、起動メッセージが表示される。
# cd /opt/DionaeaFR/ # python2.7 manage.py collectstatic #type yes when asked # python2.7 manage.py runserver 0.0.0.0:8000 Validating models... 0 errors found June 1, 2014 - xx:xx:xx Django version 1.6.5, using settings 'DionaeaFR.settings' Starting development server at http://0.0.0.0:8000/ Quit the server with CONTROL-C.
あとは、http://自分のIP:8000にアクセスすれば、以下のような画面が表示されるはず。(めっちゃ情報隠してますすみませんw)
DionaeaFRの機能
- GRAPHS
- MAPS
- Attackers:どの都市から攻撃されてきたか地図で表示
- Countries:どの国から攻撃されてきたか地図で表示
例えばMAPSのAttacker画面はこんな感じになる。
ここで注意しなければならないのが、Malwareの項目。
DionaeaでVirusTotalの連携機能を有効にして、logsqlに出力しないと表示されない。
有効にする方法は、前回のエントリに追記しておくので、そちらを参考に。
感想
インストールして全部の機能が使えるまで結構トラップ(笑)にハマってしましい時間がかかって大変だったけど、実際に使ってみるとログをグラフ等で表示することによって直感的に確認できるので非常に便利。(そのログの有用性は別としてw)
特に、MAP機能はどこから攻撃が多く来てるのかわかるので、非常に楽しい✌('ω'✌ )三✌('ω')✌三( ✌'ω')✌
Dioaneaを利用してる人はこれも併せて是非。