個人的に注目している徳丸先生のBadToDo。回答の解説記事が出たりもしています。
このアプリはローカル端末で試すことを前提に作られていると見受けられますが、
設定を変えると、別端末に導入してNW経由でアクセスすることも可能です。
公式インストール手順にほとんど書かれていますが、実際にやってみたところ、
Dockerの仕組みを勘違いしてて、ちょっとばかし詰まったのでメモ。
環境は3月27日に作ったAL2023環境を使います。
ていうか、本件がやりたかったためにこさえてました。
本件を行う際は、もちろん自己責任でお願いします。
- セキュリティグループやFWで、EC2へのインバウンド通信を徹底的に縛る(許可するのはアクセス元IPアドレスからの23128ポート通信とEC2メンテナンス用通信のみくらいの勢いでいい)
- 公式インストール手順の通りにソースコードを落とす。この時点ではdocker compose upは実行しないこと
- 付属のenv_exampleを .env にリネーム(あるいはコピー)して.envを作成する
- .envを編集して待ち受けIPアドレスを変更する
$ vi .env # APACHE_IP=0.0.0.0 ↓ APACHE_IP=0.0.0.0
- コンテナ群を作成する
$ sudo docker compose up -d
- 下記のような感じでApache Proxyが0.0.0.0で待ち受けしていることを確認する
$ sudo docker ps -a ・・・ xxxxxx badtodo-apache "/bin/sh -c /root/en…" xx minutes ago Up xx minutes 80/tcp, 0.0.0.0:23128->3128/tcp badtodo-apache ・・・
- Burp SuiteのUpstream proxy serversを設定する。このとき、Proxy hostをEC2のグローバルIPアドレスにする
- Burp Suiteの組込ブラウザから https://todo.example.jp/ にアクセスする
【Appendix】
Webサーバのコンテナに入りたい場合は、こんな感じにdocker execすると行ける模様。
$ sudo docker exec -it badtodo-apache /bin/bash root@badtodo-apache:/var/www#