計算機アーキテクチャとOS

仮想コンピュータを用いたサーバのセットアップ

仮想環境を実現する代表的なソフトウェアの1つであるOracle VM VirtualBoxを用いて,サーバとして利用できる仮想コンピュータを構築する.

本実験では,Ubuntu Server 22.04.2 をゲストOSとしてインストールし,Webサーバの機能を持つサーバを構築する.

実験は,自宅のPCで行う.(本ページは,ホストOSをWindowsと仮定して説明するが,Macintosh,Linux等でもかまわない.適宜,読み替えて実験を進めること.)

仮想化ソフトであるOracle VM VirtualBoxの操作やLinuxのコマンドなどでわからない事は,Oracle社のHPにあるマニュアルを探して調べたり,インターネットで検索しながら実験を進めること.

準備するもの(希望者のみ)

3GB以上の空き容量のあるUSBメモリ

(実験で作成した仮想環境のデータのバックアップを取りたい場合には準備すること)

実験内容

1. 仮想コンピュータの作成仮想マシンの格納場所の設定
ゲストOSの設定
ディスク容量の指定と仮想ディスクのファイル設定
ハードウェア(CD)のカスタマイズ
2. Linuxのインストールネットワークの設定
パーティションの設定
ユーザ設定
3. ソフトウェアのインストールaptを用いた開発環境等(gcc他)のインストール
apacheソースコードの取得
apacheのコンパイルおよび起動
nmapによるポートスキャン
ufwによるファイアウォールの設定
 

実験手順および課題

1. 仮想コンピュータの作成

[実験1] 仮想コンピュータを作成しなさい.

  • CドライブにVMフォルダを作成する(C:¥VM). 指示通り指定されたフォルダに仮想コンピュータを作成しないと,失敗することがある.
    作成した仮想コンピュータをバックアップする場合には,C:\VMフォルダをUSB等に保存する.
    PCを再起動した後に再度作成した仮想コンピュータを起動する場合には,Cドライブにコピーした後,VirtualBoxマネージャの
    メニュー「仮想マシン」-「追加」でフォルダを指定する.
  • nolink「Oracle VM VirtualBox」のアイコンをクリックして起動する.
  • 「ファイル」-「環境設定」から「デフォルトの仮想マシンフォルダー」を「C:¥VM」と設定する.
  • 「C:¥VM」でなく,デフォルトのままでもかまいません.
    VB101.png
  • 「新規」を選択して,新しい仮想マシンウィザードを起動する.
  • 必ず,以下の2点の注意に従うこと.
  • また,先に下記の[実験課題1.1]に目を通し,適宜画面をキャプチャするなど記録を行いながら実験を進めること.
  • 「ガイド付きモード」で設定を行うこと.
    A4-1_0.png
注意1: 「名前とオペレーティングシステム」
「名前」に「UbuntuServer」と入力する.
タイプは「Linux」,バージョンは「Ubuntu(64-bit)」が選択されていることを確認すること.

その他の設定はデフォルトのままでかまわない.
A4-1_1.png
注意2:「インストール用メディア」
以下より Ubuntu Server のインストーラをダウンロードし,PC内に保存しておく.
バージョン22.04.2 https://jp.ubuntu.com/download

「設定」アイコンをクリックする.
左側のメニューから「ストレージ」を選択する.

ストレージツリーの中から空のCDアイコンをクリックする.
光学ドライブのCDアイコンをクリックして,「仮想光学ディスクファイルを選択」をクリックする.
「仮想光学ディスクファイル」として,保存したISOファイルを選択すること.
A4-1_2.png

上記の注意事項を守らなかった場合,仮想コンピュータは作成されるものの, この後の実験を進めることができないため,やり直しとなる.

Oracle VM VirtualBoxのウィンドウの左上に"UbuntuServer"が表示されたら実験1は終了である.
A4-1_N.png

[実験課題1.1] 仮想コンピュータを作成する際に,ウィザードに指示を求められる.その際,

- 指示を求められた内容とどのように項目を設定したか
- 画面のキャプチャ([Alt]キーを押しながら[Print Screen]キー)または,撮影した映像

をレポートに記せ.

 

実験内容に戻る


2. Linuxのインストール

[実験2] 実験1で作成した仮想コンピュータに,ゲストOSとしてLinux(Ubuntu)をインストールしなさい.

「起動」をクリックするとインストーラが起動する.

A4-2_0.png

ただし,必ず,以下の8点の注意に従うこと.

また,以下の[実験課題2.1]に目を通し,適宜記録を行いながら実験を進めること.

[実験課題2.1] インストールを行う間,何度かインストーラに指示を求められる.その際,

- 指示を求められた内容とどのように項目を設定したか
- 画面のキャプチャ([Alt]キーを押しながら[Print Screen]キーを押す)または,撮影した映像

をレポートに記せ.

注意1: 「言語設定」
日本語版のインストーラは用意されていないため,インストールは英語で行う.
A4-2_1.png
注意2: 「キーボード設定」
キーボードレイアウトは,日本語を選択する.
(Tabキーで移動、Spaceキーで選択)
A4-2_2.png
注意3: 「インストールの種類」
インストールの種類は,「Ubuntu Server」を選択する.
A4-2_3.png
注意4: 「ネットワークの設定」
ネットワークは自動設定とする.
A4-2_4.png
注意5: 「プロキシ設定」
プロキシは使用しない.
A4-2_5.png
注意6: 「ストレージ構成」
ディスク全体を使用し,LVMグループとしてセットアップする.
暗号化しない.
A4-2_6.png
A4-2_7.png
A4-2_8.png
注意7: 「プロファイルセットアップ」
ユーザの本名として,「exp3」,サーバ名として「exp3-a4」を入力すること.
ユーザ名は「exp3」とする.
パスワード(8文字以上推奨)は自由に設定してよい.(ログインに使用するので覚えておくこと.)
A4-2_9.png
注意8: 「ソフトウェアの選択」
インストールするソフトウェアの選択では何も選択しないこと.
A4-2_10.png

上記の注意事項を守らなかった場合,Linuxは正常にインストールされるものの, この後の実験を進めることができなくなるためやり直しとなる.

再起動を行うよう指示を受けた時点で,実験2は終了である.

A4-2_11.png


再起動したのち,ログイン画面が表示されたら,login: プロンプトの後ろにユーザ名「exp3」を入力し,先ほど設定したパスワードを入力する.(パスワードは、入力の際に表示されない)

A4-2_N.png

 

実験内容に戻る


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 を使用して,https://www.eng.kagoshima-u.ac.jp/english/ にアクセスできることを確認しなさい.

$ w3m https://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 https://ftp.jaist.ac.jp/pub/apache/apr/apr-1.7.4.tar.bz2
$ wget https://ftp.jaist.ac.jp/pub/apache/apr/apr-util-1.6.3.tar.bz2

2. 同様に,apache のソースコードもダウンロードする.

$ wget https://ftp.jaist.ac.jp/pub/apache/httpd/httpd-2.4.58.tar.bz2

3. ls コマンドで,3つのファイルがダウンロードされていることを確認する.

4. 取得したファイルが正規のものであることを確認する.
 ダウンロードファイルの配布元 https://www.apache.org/ から, sha256ファイルをダウンロードし,ファイルが改竄されていないかをコマンド ”cat 検査対象ファイル名 | openssl sha256” で表示されるものと,ダウンロードした”検査対象ファイル名.sha256” のファイル内の文字列が一致するかで確認する.

$ wget https://www.apache.org/dist/httpd/httpd-2.4.58.tar.bz2.sha256
$ cat httpd-2.4.58.tar.bz2 | openssl sha256
$ cat httpd-2.4.58.tar.bz2.sha256

5. 同様に,apr と apr-util についても改竄されていないかを確認する.

  • ダウンロードした "apr-1.7.4.tar.bz2" と "apr-util-1.6.3.tar.bz2"のハッシュ値は,以下のURLに示したそれぞれのファイルに記載されている.
URL: https://www.apache.org/dist/apr/apr-1.7.4.tar.bz2.sha256
URL: https://www.apache.org/dist/apr/apr-util-1.6.3.tar.bz2.sha256

6. tarコマンドで,圧縮されたファイルhttpd-2.4.58.tar.bz2を展開する.

$ tar jxvf httpd-2.4.58.tar.bz2

7. 同様に,apr-1.7.4.tar.bz2, apr-util-1.6.3.tar.bz2も展開する.

8. lsコマンドで,apr-1.7.4 と apr-util-1.6.3の2つのフォルダが存在することを確認した後,フォルダ名をそれぞれ apr と apr-util に変更して httpd-2.4.58/srclib/に保存する.

$ mv apr-1.7.4 httpd-2.4.58/srclib/apr
$ mv apr-util-1.6.3 httpd-2.4.58/srclib/apr-util

9. cdコマンドで,httpd-2.4.58 へ移動する.

10. configureコマンドを実行し,Makefileの作成を行う.
 configureコマンドは,APRを有効にするため --with-included-apr オプションを付与する.

$ ./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. 仮想コンピュータのネットワーク設定にあるポートフォワーディングを設定する.

添付ファイルの画像
  • プロトコル,ホストポート,ゲストIP,ゲストポートを以下のように設定し,適切な名前を付けて設定を保存する.
添付ファイルの画像

[実験課題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番への通信を許可すればよい.
(Macの場合,80番でうまくいかないときは,TCP 8080番をallowしてください.)

上記の設定は,コマンド「sudo ufw reload」を打つことで,設定内容を反映できる.設定が反映され,Webサーバにアクセスできるようになったことを確認する.

調査課題

[調査課題3.1] Apache以外のサーバソフトについて調べ,Apacheも含めた特徴の比較表を作成せよ.

[調査課題3.2] 仮想コンピュータのネットワーク接続形態にはどのようなものがあるか,また,それぞれの接続形態の特長を調べてレポートに書きなさい.

 

添付ファイル: fileA4-2_N.png 106件 [詳細] fileA4-2_3.png 118件 [詳細] fileA4-3_1.png 46件 [詳細] fileA4-2_11.png 141件 [詳細] fileA4-2_10.png 122件 [詳細] fileA4-2_9.png 125件 [詳細] fileA4-2_8.png 123件 [詳細] fileA4-2_7.png 154件 [詳細] fileA4-2_6.png 138件 [詳細] fileA4-2_5.png 113件 [詳細] fileA4-2_4.png 124件 [詳細] fileA4-2_2.png 108件 [詳細] fileA4-2_1.png 115件 [詳細] fileA4-2_0.png 99件 [詳細] fileA4-1_N.png 106件 [詳細] fileA4-1_2.png 107件 [詳細] fileA4-1_1.png 112件 [詳細] fileA4-1_0.png 94件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2024-01-12 (金) 10:56:44 (114d)