ハッキングセミナー用にアプリの実行環境を作成するということで、今回はパワフルなESXi用の物理サーバを調達したのでDockerで用意しました。
それではインストールしていきます。
Docker + WordPress + CentOS7のインストール
SELinux無効化
1 2 3 4 5 |
# vi /etc/sysconfig/selinux SELINUX=enforcing ↓ SELINUX=disabled |
再起動
1 |
# reboot now |
ポート解放
1 2 |
firewall-cmd --permanent --zone public --add-port 80/tcp firewall-cmd --reload |
Dockerのインストール
1 2 3 4 5 6 7 |
yum install -y yum-utils device-mapper-persistent-data lvm2 yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo yum makecache fast yum install docker-ce-17.12.1.ce-1.el7.centos systemctl start docker systemctl enable docker |
docker-composeコマンドインストール
1 2 3 |
curl -L https://github.com/docker/compose/releases/download/1.12.0/docker-compose-`uname -s`-`uname -m` > docker-compose sudo mv docker-compose /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose |
WEBディレクトリの作成
1 2 |
# mkdir -p /var/www/dev/wordpress # cd /var/www/dev/wordpress |
Dockerfile作成
1 2 3 4 5 6 |
# vi Dockerfile FROM wordpress:latest RUN usermod -u 1000 www-data \ && groupmod -g 1000 www-data |
イメージ化
1 2 3 4 |
# docker build -t wordpress:auth . Successfully built 693daf0ce4e9 Successfully tagged wordpress:auth |
docker-compose.ymlの作成
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# vi docker-compose.yml version: '2' services: db: image: mysql:5.7 ports: - "3306:3306" volumes: - db_data:/var/lib/mysql restart: always environment: MYSQL_ROOT_PASSWORD: hoge MYSQL_DATABASE: hoge MYSQL_USER: hoge MYSQL_PASSWORD: hoge privileged: true restart: always wordpress: depends_on: - db image: wordpress:auth ports: - "80:80" restart: always working_dir: /var/www/html volumes: - /var/www/dev/wordpress:/var/www/html/ environment: WORDPRESS_DB_HOST: db:3306 WORDPRESS_DB_PASSWORD: hoge privileged: true restart: always volumes: db_data: |
ビルド
1 |
docker-compose up -d |
http://IPアドレス/
操作
プロセスの確認
1 2 3 4 |
# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES e7a62fc1693d wordpress:auth "docker-entrypoint.s…" 7 minutes ago Up 7 minutes 0.0.0.0:80->80/tcp wordpress_wordpress_1 026ed89ac43f mysql:5.7 "docker-entrypoint.s…" 7 minutes ago Up 7 minutes 0.0.0.0:3306->3306/tcp, 33060/tcp wordpress_db_1/tcp, 33060/tcp wordpress_db_1 |
すべてのコンテナを停止させる
1 |
docker stop $(docker ps -q) |
すべてのコンテナを削除する
1 |
docker rm $(docker ps -q -a) |
終了 クリーンアップ(データは残る)
1 |
docker-compose down |
DBデータも削除する場合
1 |
docker-compose down --volumes |
お疲れ様です。
セミナー用のサーバなのでここから脆弱性となる穴をしこしこと仕込んでいきます。