概要
WOWHoneypotを簡単に植えられるように、Dockerimageを作りました。これの使い方等をここで説明します。
- https://github.com/hogehuga/wowhoneydocker
-
https://cloud.docker.com/u/hogehuga/repository/docker/hogehuga/wowhoney
- as "hogehuga/wowhoney" docker image
このdocker imageのコンセプトは「なるべく手を加えていない環境とする」です。
その為、ログ分析に必要なものは一切入れていません。今後、自動でまとめたものをSlackに投げる、などのスクリプト等を仕込んだイメージを用意するかもしれません。
確認はある程度したけど、 バグってたら、すまんな 。
免責事項
本WOWHoneypot docker imageやgithubの情報を基にいかなる損害が八死した場合でも、当方は関知しません。
WOWHoneypot起因の脆弱性による不正侵入などが発生しても、当方は一切関知しません。
自己責任の下で利用ください。
Quick start
分かっている人は、docker pull hogehuga/wowhoney
でイメージをを取得して、 docker run
してください。
そうでなければ、当該githubリポジトリをcloneして、setup-wow.sh
をたたくと、起動します。
利用方法説明
おおよそ、以下の様に利用されることを想定しています。
- githubの
hogehuga/wowhoney
をcloneする - その中に含まれている
setup-wow.sh
を必要に応じて編集する -
setup-wow.sh
をたたき、初回起動する - 以降は、
docker [stop|start]
で適宜利用する
1. githubのclone
主に setup-wow.sh
を使うためにpullします。
構成は以下の様になっています。
- LICENSE
- ライセンスファイル。WOWHoneypotに合わせてBSDv3にしてある
- README.md
- 使い方説明。面倒だから英語だけで置いた。
- Dockerfile
-
hogehuga/wowhoney
なdocker imageの元。 - 配置したイメージが信用ならん、という場合はこちらで
docker build
してたもれ
-
- setup-wow.sh
- 初回設置時にたたけば、WOWHoneypotのコンテナが起動するまでをやってくれるスクリプト
-
docker pull
とdocker run
するだけの子 - 但し、ログ出力をDockerホスト側にするとかの設定入れてる。
-
- 初回設置時にたたけば、WOWHoneypotのコンテナが起動するまでをやってくれるスクリプト
- start-wow.sh
- Docker imageを作るときに、イメージ(コンテナ側)で使うスクリプト
- wowhoneypot を起動するだけのお仕事
- Docker imageを作るときに、イメージ(コンテナ側)で使うスクリプト
作業例
$ pwd
/home/hogehuga
$ git clone https://github.com/hogehuga/wowhoneydocker.git
Cloning into 'wowhoneydocker'...
remote: Enumerating objects: 9, done.
remote: Counting objects: 100% (9/9), done.
remote: Compressing objects: 100% (8/8), done.
remote: Total 9 (delta 0), reused 6 (delta 0), pack-reused 0
Unpacking objects: 100% (9/9), done.
$
2. 必要に合わせて設定変更する
setup-wow.sh
にはdocker run
時のオプションが含まれています。以下の設定が可能です。
- NATPORT: ポートフォワーディングするポート
- コンテナでは8080でwowhoneypotが起動しているが、これをホスト側喉のポートに割り当てるかを決める。
- デフォルトは8080
- LOGDIR: ホスト側へのログ保存先
- wowhoneypotのログディレクトリは、Dockerホストのディレクトリとbindします。これにより、ログデータはコンテナ上ではなく、Dockerホスト上に配置されます。
- デフォルトでは、
setup-wow.sh
をたたくユーザのホームディレクトリ上の logsに置きます。(ユーザhogehugaなら、/home/hogehuga/logs/
) - サービス的に起動する等の場合は、
/var/log/
配下等、適宜変えてください- 本来は staticなパス に流すべき
- CONTAINERNAME: コンテナの名前
-
docker run
で作るコンテナの名称。 - デフォルトはwowhoney。
- 必要ならホスト名も買えたらいいよ。
-
作業例
$ cd ~/wowhoneydocker
$ vi setup-wow.sh (変更の必要が無ければ、そのままで)
$
3. 起動する
wowhoneypotのdocker imageを使って起動します。
-
setup-wow.sh
をたたくだけ
先ほど設定変更の際に見た通り、docker pull
してdocker run
するだけ。
作業例
$ ./setup-wow.sh
Using default tag: latest
latest: Pulling from hogehuga/wowhoney
Digest: sha256:b0dc2f8793bef7dc09b1295e18d6caa958058c85028f48c4fb520e165947a953
Status: Image is up to date for hogehuga/wowhoney:latest
docker.io/hogehuga/wowhoney:latest
c7ece94f60c84aee633840c53a1adf75a41501f06412439491a3ed3fe5cb7ceb
$
4. 確認する
setup-wow.sh
が正常に動けば、コンテナが動いてるはずです。
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c7ece94f60c8 hogehuga/wowhoney "/opt/wowhoney/start…" About a minute ago Up About a minute 0.0.0.0:8080->8080/tcp wowhoney
$
後は通常のコンテナ同様に扱ってください。オーケストレーションは、知らん。こんなもんをk8s使う意味ない。
作業例
$ docker stop wowhoney
wowhoney
$ docker start wowhoney
wowhoney
$ ls ~/logs
access_log wowhoneypot.log
$
4. そのほか
完全に削除したいよ
- 以下を削除する
rm -rf ~/wowhoneydocker
docker rm wowhoney
dokcer rmi hogehuga/wohoney
docker imageの主な仕様
- wowhoneyユーザで起動してます
- sudo権限はないので、比較的安全かもしれない
- `/opt/wowhoney がhome dirにしてある。その下にwowhoneypotをgit cloneしてる。
- 8080ポートで起動している
- 一般ユーザじゃ特権ポートを使えないので。そもそも、ポートフォワード前提だし。
- OSは Ubuntu:latest
- これに、python3とgitとvimを入れてる
- アップデートは各自でヨロ
終わりに
ここまで作ってあれば、実験的にハニポを動かすのは楽だと思います。社内やテスト環境での利用想定です。
- インターネットにこのまま公開する場合、作りを理解してからにしましょう
-
大いなる力には大いなる責任が伴う
という格言があるので。
-
後は、Dockerホスト側にたまったログをいかに楽しむかに注力する、というコンセプトですね。
書きながら一部ミス等を見つけたりしているので、githubでのpull request/issueは歓迎です。対応できればするし、できなければしばらく放置します。
では、よいログ観察ライフを。