とりあえずブログ

SEとして働く会社員の雑多なブログ

ハニーポッターになりました(Glastopfデビュー)

以前の記事でもご紹介したのですが、今回Webアプリケーション型のハニーポットであるGlastopfをAWSのEC2にインストールしたので、手順を紹介したいと思います。

saito.hatenadiary.com

下記公式サイトで詳細な手順は記載されているので、あまりつまずくところはなかったのですが、pipコマンドでインストールしようとするとエラーになったので、今回はGithubから資材をダウンロードしてインストール形をとりました。

github.com

ちなみにOSはAWS側で用意されているUbuntuCanonical, 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アドレスをブラウザで叩いてみて、ちゃんと接続できるか確認します。

うまく接続できればこんな感じの画面が表示されるはずです。

f:id:tkm03:20180415213102p:plain

僕の場合、セキュリティグループの設定が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のログの見方や使い方を習得する

ということを目標に活動したいと思います。