ハニーポッターになりました(Glastopfデビュー)
以前の記事でもご紹介したのですが、今回Webアプリケーション型のハニーポットであるGlastopfをAWSのEC2にインストールしたので、手順を紹介したいと思います。
下記公式サイトで詳細な手順は記載されているので、あまりつまずくところはなかったのですが、pipコマンドでインストールしようとするとエラーになったので、今回はGithubから資材をダウンロードしてインストール形をとりました。
ちなみにOSはAWS側で用意されているUbuntu(Canonical, Ubuntu, 14.04 LTS, amd64 trusty image build on 2018-03-08)を使用しました。
各種インストール
上記のUbuntu版のインストール手順に従い、下記コマンドを実行します。
sudo apt-get install python2.7 python-openssl python-gevent libevent-dev python2.7-dev build-essential make sudo apt-get install python-chardet python-requests python-sqlalchemy python-lxml sudo apt-get install python-beautifulsoup mongodb python-pip python-dev python-setuptools sudo apt-get install g++ git php5 php5-dev liblapack-dev gfortran libmysqlclient-dev sudo apt-get install libxml2-dev libxslt-dev sudo pip install --upgrade distribute
PHP sandboxのインストールと設定
PHP sandboxというものをインストール、設定していきます。
cd /opt sudo git clone git://github.com/mushorg/BFR.git cd BFR sudo phpize sudo ./configure --enable-bfr sudo make && sudo make install
そして、PHP.iniファイル(/etc/php5/apache2/php.ini )を開いて、下記コードを追加します。
zend_extension = /usr/lib/php5/20090626+lfs/bfr.so
いよいよGlastopfのインストール
公式サイトでは下記コマンドが紹介されていましたが、僕の環境の場合エラーとなって上手くいきませんでした。
sudo pip install glastopf
エラー内容はこんな感じ。。。
urllib2.HTTPError: HTTP Error 403: SSL is required ---------------------------------------- Cleaning up... Command python setup.py egg_info failed with error code 1 in /tmp/pip_build_ubuntu/glastopf
調べるとセットアップツールのバージョンが疑わしかったのですが、煩雑だったので上記サイトで紹介されていた、もうひとつのコマンドを実行したところ、うまくいきました。
cd /opt sudo git clone https://github.com/mushorg/glastopf.git cd glastopf sudo python setup.py install
設定と起動
ここまでできれば、あとハニーポッターまでもう少しです。 Glastopf用のディレクトリを作って、そこでGlastopfを起動します。
cd /opt sudo mkdir myhoneypot cd myhoneypot sudo glastopf-runner
すると、こんな感じで各種ディレクトリやログファイルが作成されます。
drwxr-xr-x 5 root root 4096 Apr 15 10:01 ./ drwxr-xr-x 5 root root 4096 Apr 15 10:00 ../ drwxr-sr-x 12 nobody nogroup 4096 Apr 15 10:01 data/ drwxr-xr-x 2 nobody nogroup 4096 Apr 15 10:15 db/ -rw-r--r-- 1 nobody nogroup 1445 Apr 15 10:01 glastopf.cfg drwxr-xr-x 2 nobody nogroup 4096 Apr 15 10:01 log/
あとは、AWS側であらかじめ設定されているグローバルIPアドレスをブラウザで叩いてみて、ちゃんと接続できるか確認します。
うまく接続できればこんな感じの画面が表示されるはずです。
僕の場合、セキュリティグループの設定がSSHのみになっていたので、最初は表示されませんでしたが、とりあえず全てのポートを許可にして接続できることを確認しました。
Glastopf側のログにはこんな感じのログが表示されるはずです。
2013-03-14 08:34:08,129 (glastopf.glastopf) Initializing Glastopf using "/opt/myhoneypot" as work directory. 2013-03-14 08:34:08,130 (glastopf.glastopf) Connecting to main database with: sqlite:///db/glastopf.db 2013-03-14 08:34:08,152 (glastopf.modules.reporting.auxiliary.log_hpfeeds) Connecting to feed broker. 2013-03-14 08:34:08,227 (glastopf.modules.reporting.auxiliary.log_hpfeeds) Connected to hpfeed broker. 2013-03-14 08:34:11,265 (glastopf.glastopf) Glastopf started and privileges dropped. 2013-03-14 08:34:32,853 (glastopf.glastopf) 192.168.10.85 requested GET / on 192.168.10.102 2013-03-14 08:34:32,960 (glastopf.glastopf) 192.168.10.85 requested GET /style.css on 192.168.10.102 2013-03-14 08:34:33,021 (glastopf.glastopf) 192.168.10.85 requested GET /favicon.ico on 192.168.10.102
これで僕も晴れて新人ハニーポッターになることができたのですが、ハニーポッターとして一人前になるためにはまだまだ学ぶことがたくさんあると思うので、頑張ります!
とりあえず、
- インターネットからどんなアクセスが来ているのかを定期的に調査する
- Glastopsfのログの見方や使い方を習得する
ということを目標に活動したいと思います。