VPSにハニーポット(Glastopf) を入れてみた
夏休み頃からいろいろ立て込んでた事が終わって少し余裕ができたので、VPSにGlastopfをインストールしてみた。
Glastopfとは
Glastopfは、Webアプリケーション型のハニーポットで、Web系の攻撃に特化している。Glastopfを起動すると、デフォルトの設定では、ポート80番で待ち受け、Webアプリケーションサーバのように動く。
前に書いたDionaeaの記事でも紹介したが、IPAのドキュメントでも推奨されている。
VPSにハニーポット(Dionaea)を入れてみた - Tahoo!!
ちなみに、これを入れようと思ったきっかけは、Dionaeaに少し飽きた
Glastopfのインストール
インストールにあたって参考にしたサイトは以下の通り
- glastopf/glastopf · GitHub
- infinity is null: how to install glastopf on centos 6 in a couple of minutes, no hassle
- Glastopf at www.morihi-soc.net
1の公式のGithubのリポジトリのドキュメントには、BSD系やDebian系のインストール方法しか書いてなかったので、2のCentOS 6.2にインストールした人のサイトの情報を中心にインストールを進めた。
@k_morihisaさんのブログからはGlastopfがどんな感じなのかを参考にさせてもらった。
さて、本題。
Gastopf動かすのに必要なもののインストール
まず、yumで入れられるものから
# yum groupinstall "Development Tools" # yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel php-devel libxml2-devel libxslt-devel atlas atlas-devel gcc-gfortran g++ git php php-devel wget mysql mysql-server mysql-devel libevent-headers libffi-devel
Python2.7
Glastopfを動かすためにPython 2.7が必要なので、Python 2.7をインストールする。
# wget https://www.python.org/ftp/python/2.7.8/Python-2.7.8.tar.xz # tar Jxvf Python-2.7.8.tar.xz # cd Python-2.7.8 # ./configure --prefix=/usr/local # make # make altinstall
pipでいろいろインストール
pipは特に何もしなくても使えた。pup
# pip2.7 install --upgrade pymongo # pip2.7 install numpy # pip2.7 install chardet sqlalchemy lxml beautifulsoup pyOpenSSL requests MySQL-python # pip2.7 install scipy
antlr
# wget http://www.antlr3.org/download/antlr-3.1.3.tar.gz # tar xzf antlr-3.1.3.tar.gz # cd antlr-3.1.3/runtime/Python # python2.7 setup.py install
SKLearn
# git clone git://github.com/scikit-learn/scikit-learn.git # cd scikit-learn # python2.7 setup.py install
evnet
まず、evnetをインストールするのにlibevが必要なので、それからインストールする。
# wget http://dist.schmorp.de/libev/libev-4.19.tar.gz # tar xzvf libev-4.19.tar.gz # cd libev-4.19 # ./configure # make # make install
次にevnetをインストール
# git clone git://github.com/rep/evnet.git # cd evnet # python2.7 setup.py install
ちなみに、evnetをインストールするとき手元の環境では、以下のようなエラーが表示された。
error: libev.so.4: cannot open shared object file: No such file or directory
この場合、共有ライブラリにパスを通してあげることで解決できた。
# echo $LD_LIBRARY_PATH # export LD_LIBRARY_PATH=/usr/local/lib # echo $LD_LIBRARY_PATH /usr/local/lib
BFR
# git clone git://github.com/glastopf/BFR.git # cd BFR # phpize # ./configure --enable-bfr # make # make install
php.iniに1行を加える。
[php] zend_extension = /usr/lib64/php/modules/bfr.so
Glastopf本体のインストール
必要なものが揃ったので、Glastopfをインストール。
# git clone https://github.com/glastopf/glastopf.git # cd glastopf # python2.7 setup.py install
Glastopfを動かす
インストールが終わったら、glastopf用のディレクトリを作成(今回は/opt以下に作成)して、コマンドを実行する。
# mkdir /opt/glastopf/ # cd /opt/glastopf/ # glastopf-runner
ここで/opt/glastopf/に設定ファイルのglastopf.cfgとlogディレクトリ等が作成される。glastopf-runnerを動かすときはこの設定ファイルがあるディレクトリにcdして動かす。
また、CentOSだとエラーが出て停止する。これは、glastopf.cfgのuidとgidが存在しないものだとエラーが出るので、ここを存在するuidとgidに変更する。
今回はglastopf用のユーザを作成し、設定ファイルでそのユーザ、グループを指定した。
# groupadd glastopf # useradd -g glastopf -s /usr/sbin/nologin glastopf # chown -R glastopf:glastopf /opt/glastopf/ # vim /opt/glastopf/glastopf.cfg # cat /opt/glastopf/glastopf.cfg [webserver] host = 0.0.0.0 port = 80 uid = glastopf gid = glastopf proxy_enabled = False (以下省略)
設定を変えたら、今度はバックグラウンドで実行する。
# glastopf-runner &
起動したサーバにブラウザでアクセスするとこんな感じで表示される