LoginSignup
2
2

More than 3 years have passed since last update.

WOWHoneypotのDocker imageを作ったよ&使うよ

Posted at

概要

WOWHoneypotを簡単に植えられるように、Dockerimageを作りました。これの使い方等をここで説明します。

この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 pulldocker runするだけの子
      • 但し、ログ出力をDockerホスト側にするとかの設定入れてる。
  • start-wow.sh
    • Docker imageを作るときに、イメージ(コンテナ側)で使うスクリプト
      • wowhoneypot を起動するだけのお仕事

作業例

$ 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は歓迎です。対応できればするし、できなければしばらく放置します。

では、よいログ観察ライフを。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2