技術部にてインフラ周りを担当している飯田です。
過去2回に引き続き「社内の誰もがPC内で完結する攻撃遮断くんの管理画面」を目指してローカル開発環境にDocker適用を行っていこうと思います。
・第01回: コンテナ型仮想化ソフトウェア”Docker”を使ってみよう〜ローカル適用編〜
・第02回: “Docker”を使ってみよう〜コンテナ稼動編〜
はじめに
前回まではDockerのバージョンは”1.12.1″でしたが、現在は”1.12.3″を使用して構築・確認をしています。
$ docker version Client: Version: 1.12.3 API version: 1.24 Go version: go1.6.3 Git commit: 6b644ec Built: Wed Oct 26 23:26:11 2016 OS/Arch: darwin/amd64 Server: Version: 1.12.3 API version: 1.24 Go version: go1.6.3 Git commit: 6b644ec Built: Wed Oct 26 23:26:11 2016 OS/Arch: linux/amd64 $
前回までにDockerのインストール、MySQL/ElasticsearchのDocker適用までを行ってきました。
1. MySQL
2. Elasticsearch
3. Ruby on Rails
4. 監視センター(攻撃遮断くん/攻撃見えるくん)
上記での2番までを終えています。今回は”Ruby on Rails”で開発されている攻撃遮断くんの管理画面をDocker適用しようと思います。
前述の通り、攻撃遮断くんの管理画面は”Ruby on Rails”で実装されています。“rails”コンテナもDockerHub上には存在するのですが、”DEPRECATED”の文字が確認できるので“ruby”コンテナを使用します。Rubyのバージョンを合わせてコンテナイメージを取得しました。
$ docker pull ruby:2.2
続いてRubyコンテナを起動しますが、ソースコードをコンテナ内で使用できるように”-v”オプションを使用して、ローカルに`git clone`しているディレクトリをコンテナにマウントさせます。下記コマンドはソースコードのあるディレクトリにて実行しています。
$ docker run -ti -v `pwd`:/src ruby:2.2 bash
この後はコンテナ内で作業を行います。まずは依存しているライブラリを取得します。
# cd /src # bundle install
一旦ここまでのコンテナを残しておきましょう。コンテナからデタッチし、コミットします。コンテナをコミットするにはコンテナのIDが必要なので事前に確認もしておきます。新規で作成するコンテナイメージの名称は”shadan-kun”としておきます。
$ docker ps -a CONTAINER ID IMAGE ... ee38b10bcd9e ruby:2.2 ... $ $ docker commit ee38b10bcd9e shadan-kun sha256:da137... $
コミットも正常にできたので、すでに稼動させているrubyコンテナは削除してしまいます。
$ docker stop ee38b10bcd9e $ docker rm ee38b10bcd9e
先ほどコミットしたコンテナイメージで再度コンテナを起動します。
$docker run -ti -v `pwd`:/src -p 3000:3000 shadan-kun bash
ローカルからのアクセスを許可する為に”-p 3000:3000″というオプションを追加しています。コンテナイメージは先ほど作成した”shadan-kun”に変更されています。
続いて、前回起動したMySQL, Elasticsearchのコンテナを使用するように設定を変更します。今回は各コンテナのIPを調べて設定をしてしまいました。設定ファイル等を書き換え、MySQLとElasticsearchに初期データを投入し、Railsサーバを起動します。
root@d50633be5e72:/src# rails server -b 0.0.0.0 => Booting WEBrick => Rails 4.2.1 application starting in development on http://0.0.0.0:3000 => Run `rails server -h` for more startup options => Ctrl-C to shutdown server [2016-11-30 09:16:19] INFO WEBrick 1.3.1 [2016-11-30 09:16:19] INFO ruby 2.2.6 (2016-11-15) [x86_64-linux] [2016-11-30 09:16:19] INFO WEBrick::HTTPServer#start: pid=7 port=3000
ブラウザから”localhost:3000″にアクセスすると下記のように正しく表示されました。
「攻撃遮断くんの管理画面の表示」まではできました。ですが「社内の誰もがPC内で」にはまだほど遠い状態です。
次回はこの手作業で構築し起動させているRailsサーバをコンテナイメージ化しようと思います。`docker run`しただけの状態でRailsサーバが起動するまで、をお届けする予定です。
CyberSecurityTIMESを運営している弊社サイバーセキュリティクラウドでは、Webセキュリティ対策のソフトウェア「攻撃遮断くん」を提供しております。専門家によるサポートも充実しております。お気軽にお問合せください。
「攻撃遮断くん」の詳細資料は、こちらからダウンロード頂けます。
この記事と一緒に読まれています
2016.10.27
セキュリティ対策
Apacheモジュール mod_dumpost をご紹介します!
2016.06.21
セキュリティ対策
WordPressの脆弱性による被害事例と今すぐできる対策とは?
2019.06.03
セキュリティ対策
2019.09.11
セキュリティ対策
Dockerで実践〜Macに”Metasploit”をインストールしてみよう!〜
2017.01.19
セキュリティ対策
Apache Struts2の脆弱性で広がるサイバー攻撃の被害
2017.03.30
セキュリティ対策