#author("2024-03-06T11:38:05+09:00","default:Exp3","Exp3")
#author("2024-03-06T11:42:01+09:00","default:Exp3","Exp3")
[[CAOS-04-H29]]

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

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

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

実験は,電算機演習室のPCでWindowsを起動して行う.

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

** 注意事項 [#c537ba85]

実験は,電算機演習室の&color(red){''左側3列''};に配置されているコンピュータの番号が,&color(red){''st001〜st007'', ''st017〜st023'', ''st033〜st039'', ''st048〜st054'', ''st064〜st070''};のものを使用すること.


[[ここをクリックしてコンピュータ番号を確認して使用すること.>CAOS-04_IP]]


** 準備するもの(希望者のみ) [#r47fb7f8]

&color(red){''4GB''以上の空き容量};のあるUSBメモリ

(実験で作成した仮想環境のデータは,Windowsを終了すると,全て消えてしまうため,バックアップを取りたい場合には準備すること)

** 実験内容 [#n2726020]

|1. 仮想コンピュータの作成|仮想マシンの格納場所の設定|
|~|ゲストOSの設定|
|~|ディスク容量の指定と仮想ディスクのファイル設定|
|~|ハードウェア(CD)のカスタマイズ|
|2. Linuxのインストール|パーティションの設定|
|~|ネットワークの設定|
|~|各種サービス名の調査|
|3. ソフトウェアのインストール|aptを用いた開発環境等(gcc他)のインストール|
|~|apacheソースコードの取得|
|~|apacheのコンパイル|
|~|(selinuxの停止)|
|~|ufwによるファイアウォールの設定|
|4. サーバの運用|ネットワーク接続形態の変更|

** 実験手順および課題 [#g6532567]

*** 1. 仮想コンピュータの作成 [#qc843acd]

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

- CドライブにVMフォルダを作成する(C:¥VM).

#ref(ICON2.png,around,40%,nolink) 
デスクトップにある「Oracle VM VirtualBox」のアイコンをクリックして起動する.

-「ファイル」-「環境設定」から「デフォルトの仮想マシンフォルダー」を「C:¥VM」と設定する.
&ref(VB101.png,right,50%);

-「新規」を選択して,新しい仮想マシンウィザードを起動する.

--&color(red){必ず,以下の2点の注意に従うこと.};設定に不安がある場合は,設定内容を変更後,確定する前に,教員やTAに確認してもらうこと.

--また,&color(red){下記の[課題1]に目を通し,適宜記録を行いながら実験を進める};こと.

|>|''注意1: 「名前とオペレーティングシステム」''|
|「名前」に「UbuntuServer」と入力する.&br;タイプは「Linux」,バージョンは,「Ubuntu(64-bit)」が選択されていることを確認すること.|#ref(VB102.png,left,nowrap,50%)|
|>|''注意2:「インストール用メディア」''|
|「設定」アイコンをクリックする.&br;左側のメニューから「ストレージ」を選択する.&br;&br;ストレージツリーの中から空のCDアイコンをクリックする.&br;光学ドライブのCDアイコンをクリックして,「仮想光学ディスクファイルを選択」をクリックする.&br;「仮想光学ディスクファイル」として「C:¥VM¥ubuntu-22.04.1-live-server-amd64.iso」を選択すること.|#ref(VB103.png,left,nowrap,35%)|
|「設定」アイコンをクリックする.&br;左側のメニューから「ストレージ」を選択する.&br;&br;ストレージツリーの中から空のCDアイコンをクリックする.&br;光学ドライブのCDアイコンをクリックして,「仮想光学ディスクファイルを選択」をクリックする.&br;「仮想光学ディスクファイル」として「¥¥nas01¥share_ro¥exp3¥ubuntu-16.04.2-server-amd64.iso」を選択すること.|#ref(VB103.png,left,nowrap,35%)|

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

Oracle VM VirtualBoxのウィンドウの左上に"UbuntuServer"が表示されたら実験1は終了である.&ref(VB104.png,right,35%);

#clear

''[課題1]'' 仮想コンピュータを作成する際に,ウィザードに指示を求められる.その際,
 - 指示を求められた内容とどのように項目を設定したか
 - 画面のキャプチャ([Alt]キーを押しながら[Print Screen]キー)または,撮影した映像
をレポートに記せ.

*** 2. Linuxのインストール [#rf6fce25]

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

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

//基本的には,第3回のLinuxのインストールと同様に作業する.

ただし,&color(red){必ず,以下の8点の注意に従うこと.};

また,&color(red){下記の[課題2]に目を通し,適宜記録を行いながら実験を進める};こと.
|>|''注意1: 「ネットワークの設定」''|
|ホスト名は,「sv-**」のように設定すること.「**」の部分は,使用しているコンピュータの番号とし,コンピュータ番号がst021の場合は,「sv-21」と設定する.|#ref(VB201.png,left,nowrap,35%)|
|>|''注意2: 「ユーザとパスワードのセットアップ」''|
|新しいユーザの本名として,「exp3」を入力すること.&br;ユーザ名は「exp3」,パスワード(8文字以上推奨)は「inf0bi03」とすること.&br;&br;ホームディレクトリの暗号化については,「いいえ」であることを確認すること.|#ref(VB202.png,left,nowrap,35%)|
|>|''注意3: 「時間の設定」''|
|Time zoneは,「Asia/Tokyo」であることを確認すること.|#ref(VB203.png,left,nowrap,35%)|
|>|''注意4: 「ディスクのパーティショニング」''|
|パーティショニングの方法は,上から2番目の「ガイド - ディスク全体を使いLVMをセットアップする」が選択されていることを確認すること.&br;「ガイドによるパーティショニングを利用するボリューム」は「8.1GB」のままでかまわない.|#ref(VB204.png,left,nowrap,35%)|
|>|''注意5: 「パッケージマネージャの設定」''|
|「HTTPプロキシ」は使用しない.|#ref(VB205.png,left,nowrap,35%)|
|>|''注意6: 「taskselを設定しています」''|
|システムのアップグレードは「自動的にアップデートしない」を選択する.|#ref(VB206.png,left,nowrap,35%)|
|>|''注意7: 「ソフトウェアの選択」''|
|インストールするソフトウェアの選択では「standard system utilities」を選択する.|#ref(VB207.png,left,nowrap,35%)|
|>|''注意8: 「ハードディスクへのGRUBブートローダのインストール」''|
|マスターブートレコードにGRUBブートローダをインストールすること.|#ref(VB208.png,left,nowrap,35%)|

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

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

''[課題2]'' インストールを行う間,何度かインストーラに指示を求められる.その際,
 - 指示を求められた内容とどのように項目を設定したか
 - 画面のキャプチャ([Alt]キーを押しながら[Print Screen]キーを押す)または,撮影した映像
をレポートに記せ.

//インストール終了後,再起動を行うと「Setup agent」が起動する.本実験ではSetup agentの起動画面では「Exit」を押して終了する.

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

*** 3. ソフトウェアのインストールおよび設定 [#f5001457]

%%''[課題3.1]'' ホストOSであるWindowsのIPアドレスを調べ,仮想コンピュータにインストールしたゲストOSであるLinuxが,ホストOSとネットワーク接続できるかを確認しなさい.%%

%%また,接続先として,学科のWebサーバであるinf(inf.ibe.kagoshima-u.ac.jp,163.209.132.2)や,学外のサーバ(任意のサーバ)に対しても接続テストを行いなさい.%%


%%''[実験3.1]'' パッケージ管理ソフトyumを用いて,C/C++言語のコンパイラであるgccをインストールしなさい.%%
%% # yum -y install gcc%%
~~
''[実験3.1]'' 管理者としてコマンドを実行するsudoコマンドを使用して,5つのパッケージ(build-essential, make, wget, libpcre3, libpcre3-dev)をaptコマンドでインストールしなさい.
 # sudo apt install build-essential make wget libpcre3 libpcre3-dev

''[課題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.5.2.tar.bz2
 # wget http://ftp.jaist.ac.jp/pub/apache/apr/apr-util-1.5.4.tar.bz2

2. 同様に,apache のソースコードもダウンロードする.
 # wget http://ftp.jaist.ac.jp/pub/apache/httpd/httpd-2.4.25.tar.bz2

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

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

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

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

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

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

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

10. configureコマンド,makeコマンドを用いて,apacheをコンパイルする.~
 configureコマンドでは、APRを有効にするため --with-included-apr オプションを付与する.

11. 管理者権限で make installコマンドを実行し,apacheをインストールする.

%%12. エディタ(vi)を用いて,設定ファイル(/usr/local/apache2/conf/httpd.conf)を編集する.設定すべき箇所は下記の通り.%%
%% [httpd.confの設定変更箇所の例]%%
%% ServerName sv-**.ibe.kagoshima-u.ac.jp%%
%% ServerAdmin  sc******@ibe.kagoshima-u.ac.jp(実験者のメールアドレス)%%
%% Include conf/extra/httpd-userdir.conf の先頭の#を削除%%

14. apacheをサービスとして起動する.一般的にはserviceコマンドを用いるが,本実験ではソースコードからインストールを行ったため,apachectlコマンドを用いる.
 # sudo /usr/local/apache2/bin/apachectl start

%%''[課題3.3]'' ファイアウォール(iptables)の設定を行い,サーバへのhttp通信を許可しなさい.ファイアウォールの設定ファイルは,/etc/sysconfig/iptablesである.http通信はTCP 80番ポートが使われるため,外部からサーバのTCP 80番への通信を許可すればよい.%%

%%編集後,「service iptables restart」と打つことで,設定内容を反映できる.%%



%%''[実験3.2]'' Webサーバを起動しているゲストOSのIPアドレスを確認して,ホストOSであるWindowsから,課題3.3で設定したWebサーバにアクセスできるかどうかを確認しなさい.%%

%%Webサーバにアクセスできない場合は,教員やTAと相談して原因を特定しなさい.%%

&aname(sec4);
*** 4. サーバの運用 [#sf94fa69]

''[実験4]'' 仮想コンピュータのネットワーク接続形態をBridge接続に変更し,電算機演習室のネットワーク(10.200.30.0)の他のコンピュータからWebサーバがアクセスできるように[[&color(red){固定IPアドレス};>CAOS-04_IP]]を設定しなさい.

1. 仮想コンピュータをシャットダウンして,「仮想コンピュータ設定の編集」からネットワークアダプタの設定をBridge接続に変更する.

#ref(VM401.png,left,nowrap,80%,添付ファイルの画像)

2. 仮想コンピュータを起動して,

 /etc/sysconfig/network-scripts/ifcfg-eth0

 /etc/resolv.conf

を適切に編集し,ネットワークの設定を下記のように変更する.
ただし、どのように編集するかは,「[[ifcfg-eth0>http://www.centos.org/docs/5/html/Deployment_Guide-en-US/s1-networkscripts-interfaces.html]]」や「resolv.conf」をキーワードとして各自調べなさい.

ネットワーク設定(ifcfg-eth0):
 IPアドレス: 10.200.30.**

上記の"**"は,[[&color(red){ここをクリックし,コンピュータの番号に対応したIPアドレス}; >CAOS-04_IP]]を指定しなさい.

 ゲートウェイ: 10.200.30.254
 ネットマスク: 255.255.255.0

DNS設定(resolv.conf):
 1番目のDNS: 10.200.2.11
 2番目のDNS: 10.200.2.12


3. ネットワークの設定を変更したら,
 service network restart
でネットワークを再起動した後,他のPCから設定したapacheサーバに接続できるか確認する.

&color(red){接続できない場合には,apacheサーバが起動しているか確認すること.};

''[課題4.1]'' 実験者のユーザアカウントを作成せよ.

''[課題4.2]'' 各ユーザのWebページを作成し,ホストOSから閲覧できることを確認せよ.作成するWebページは,下記のような非常に単純なものでよい.

各ユーザのWebページは,「/home/***(ユーザ名)/public_html/」ディレクトリに,index.htmlという名前で作成する.ホストOSから閲覧する際は,「http://10.200.30.xx/~***(ユーザ名)」と入力する.

例:

 <html>
  <head>Test</head>
  <body>
   This is a test Web page to check if our server works.
  </body>
 </html>

作成したWebページを閲覧できない場合は,各ユーザのディレクトリ(/home/***(ユーザ名))および各ユーザのpublic_htmlディレクトリのパーミッションを確認すること.ファイルおよびディレクトリの所有者だけでなく,全てのユーザに読み込み,実行の権限が与えられる必要がある.

''[課題4.3]'' 設定が終わったら,他のコンピュータから作成したWebページにアクセスできるか確認しなさい.

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

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS