仮想コンピュータを用いたサーバのセットアップ †仮想環境を実現する代表的なソフトウェアの1つであるOracle VM VirtualBoxを用いて,サーバとして利用できる仮想コンピュータを構築する. 本実験では,Ubuntu Server 16.10 をゲストOSとしてインストールし,Webサーバの機能を持つサーバを構築する. 実験は,自宅のPCで行う.(本ページは,ホストOSをWindowsと仮定して説明するが,Macintosh,Linux等でもかまわない.適宜,読み替えて実験を進めること.) 仮想化ソフトであるOracle VM VirtualBoxの操作やLinuxのコマンドなどでわからない事は,Oracle社のHPにあるマニュアルを探して調べたり,インターネットで検索しながら実験を進めること. 準備するもの(希望者のみ) †3GB以上の空き容量のあるUSBメモリ (実験で作成した仮想環境のデータのバックアップを取りたい場合には準備すること) 実験内容 †
実験手順および課題 †1. 仮想コンピュータの作成 †[実験1] 仮想コンピュータを作成しなさい.
上記の注意事項を守らなかった場合,仮想コンピュータは作成されるものの, この後の実験を進めることができないため,やり直しとなる. Oracle VM VirtualBoxのウィンドウの左上に"UbuntuServer"が表示されたら実験1は終了である. [実験課題1.1] 仮想コンピュータを作成する際に,ウィザードに指示を求められる.その際, - 指示を求められた内容とどのように項目を設定したか - 画面のキャプチャ([Alt]キーを押しながら[Print Screen]キー)または,撮影した映像 をレポートに記せ. 2. Linuxのインストール †[実験2] 実験1で作成した仮想コンピュータに,ゲストOSとしてLinux(Ubuntu)をインストールしなさい. 「起動」をクリックするとインストーラが起動する. ただし,必ず,以下の8点の注意に従うこと. また,以下の[実験課題2.1]に目を通し,適宜記録を行いながら実験を進めること. [実験課題2.1] インストールを行う間,何度かインストーラに指示を求められる.その際, - 指示を求められた内容とどのように項目を設定したか - 画面のキャプチャ([Alt]キーを押しながら[Print Screen]キーを押す)または,撮影した映像 をレポートに記せ.
上記の注意事項を守らなかった場合,Linuxは正常にインストールされるものの, この後の実験を進めることができなくなるためやり直しとなる. 再起動を行うよう指示を受けた時点で,実験2は終了である. 再起動したのち,ログイン画面が表示されたら,login: プロンプトの後ろにユーザ名「exp3」を入力し,先ほど設定したパスワードを入力する.(パスワードは、入力の際に表示されない) 3. ソフトウェアのインストールおよび設定 †
$ LANG=C bash [実験3.1] 管理者としてコマンドを実行するsudoコマンドを使用して,8つのパッケージ(build-essential, make, wget, libpcre3, libpcre3-dev libexpat1-dev nmap w3m)をaptコマンドでインストールしなさい. $ sudo apt install build-essential make wget libpcre3 libpcre3-dev libexpat1-dev nmap w3m [実験課題3.1] ホストOSであるWindowsのIPアドレスを調べ,仮想コンピュータにインストールしたゲストOSであるLinuxが,ホストOSとネットワーク接続できるかをpingを使用して確認しなさい. また,テキストベースのWebブラウザである w3m を使用して,http://www.eng.kagoshima-u.ac.jp/english/ にアクセスできることを確認しなさい. $ w3m http://www.eng.kagoshima-u.ac.jp/english/ 「q」または「Q」でw3mを終了する. 最後に,「nmap localhost」でゲストOSのポートをスキャンし,その状態を確認しなさい. [実験3.2] /tmpディレクトリに移動し,Webサーバソフトapacheを,ソースコードからインストールしなさい. 1. apache2.4ではAPR(Apache Portable Runtime)のインストールが必要である.wgetコマンドで,apr, apr-util のソースコードをミラーサイトからダウンロードする. $ wget http://ftp.jaist.ac.jp/pub/apache/apr/apr-1.6.5.tar.bz2 $ wget http://ftp.jaist.ac.jp/pub/apache/apr/apr-util-1.6.1.tar.bz2 2. 同様に,apache のソースコードもダウンロードする. $ wget http://ftp.jaist.ac.jp/pub/apache/httpd/httpd-2.4.53.tar.bz2 3. ls コマンドで,3つのファイルがダウンロードされていることを確認する. 4. 取得したファイルが正規のものであることを確認する. $ wget http://www.apache.org/dist/httpd/httpd-2.4.53.tar.bz2.sha256 $ cat httpd-2.4.53.tar.bz2 | openssl sha256 $ cat httpd-2.4.53.tar.bz2.sha256 5. 同様に,apr と apr-util についても改竄されていないかを確認する.
URL: http://www.apache.org/dist/apr/apr-1.6.5.tar.bz2.sha256 URL: http://www.apache.org/dist/apr/apr-util-1.6.1.tar.bz2.sha256 6. tarコマンドで,圧縮されたファイルhttpd-2.4.53.tar.bz2を展開する. $ tar jxvf httpd-2.4.53.tar.bz2 7. 同様に,apr-1.6.5.tar.bz2, apr-util-1.6.1.tar.bz2も展開する. 8. lsコマンドで,apr-1.6.5 と apr-util-1.6.1の2つのフォルダが存在することを確認した後,フォルダ名をそれぞれ apr と apr-util に変更して httpd-2.4.53/srclib/に保存する. $ mv apr-1.6.5 httpd-2.4.53/srclib/apr $ mv apr-util-1.6.1 httpd-2.4.53/srclib/apr-util 9. cdコマンドで,httpd-2.4.53 へ移動する. 10. configureコマンドを実行し,Makefileの作成を行う. $ ./configure --with-included-apr 11. makeコマンドを実行し,apache(httpd)のコンパイルを行う. 12. sudoコマンドを使用し管理者権限で make installコマンドを実行し,apacheをインストールする. $ sudo make install 13. エディタ(vi)を用いて,設定ファイル(/usr/local/apache2/conf/httpd.conf)を管理者権限で編集する.設定すべき箇所は下記の通り. [httpd.confの設定変更箇所の例] LoadModule userdir_module modules/mod_userdir.so(先頭の#を削除) ServerAdmin sc******@ibe.kagoshima-u.ac.jp(実験者のメールアドレス) ServerName expIII-A4.ibe.kagoshima-u.ac.jp(先頭の#を削除し,ホスト名を書く) Include conf/extra/httpd-userdir.conf(先頭の#を削除) 14. apacheをサービスとして起動する.一般的にはserviceコマンドを用いるが,本実験ではソースコードからインストールを行ったため,apachectlコマンドを用いる. $ sudo /usr/local/apache2/bin/apachectl start 15. w3m で localhost にアクセスして, apacheが起動していることを確認する. [実験3.3] ポートフォワーディングの設定して,ホストOSからゲストOS上で稼働するWebサーバにアクセスできるように設定する. 1. 仮想コンピュータのネットワーク設定にあるポートフォワーディングを設定する.
[実験課題3.2] ホストOSであるWindowsから,実験3.2で設定したWebサーバにアクセスできるかどうかを確認しなさい.ホストOSから閲覧する際は,「http://127.0.0.1/」と入力する.
[実験3.4] ファイアウォール(ufw)を有効にして,外部からのすべてのネットワーク接続を遮断する. 1. /etc/default/ufw で,IPV6によるすべての通信を遮断する設定を行う. $ sudo vi /etc/default/ufw IPV6=yes を IPV6=no に修正する. 2. ファイアウォールの状態を確認する. $ sudo ufw status Status: inactive と表示される 3. ファイアウォールのサービスを開始する. $ sudo ufw enable $ sudo ufw status を再度実行し,状態を確認する. Status: active に変更された 4. すべての通信を遮断する設定を行う. $ sudo ufw default DENY 5. ホストOSであるWindowsから,実験3.2で設定したWebサーバにアクセスできるかどうかを確認する.(アクセスできないことを確認する.) [実験課題3.3] ファイアウォール(ufw)の設定を行い,サーバへのhttp通信を許可しなさい.アクセスの許可は,「allow」コマンドを使用する.http通信はTCP 80番ポートが使われるため,外部からサーバのTCP 80番への通信を許可すればよい. 上記の設定は,コマンド「sudo ufw reload」を打つことで,設定内容を反映できる.設定が反映され,Webサーバにアクセスできるようになったことを確認する. 調査課題 †[調査課題3.1] Apache以外のサーバソフトについて調べ,Apacheも含めた特徴の比較表を作成せよ. [調査課題3.2] 仮想コンピュータのネットワーク接続形態にはどのようなものがあるか,また,それぞれの接続形態の特長を調べてレポートに書きなさい.
|